微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 急求助:一个关于单片机遥控开关的问题

急求助:一个关于单片机遥控开关的问题

时间:10-02 整理:3721RD 点击:
想实现一个遥控开关系统,做到当发射源发出一个信号时,接收器接受信号,解码并且当匹配时对某个IO口实现输出高电平。
我的接线和程序是这样的:
发射——————

  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit dataout  = P2^0;

  5. void delay(uint t)
  6. {
  7. uchar i;
  8. while(t--)
  9.    {for(i = 0;i<100;i++);}
  10. }

  11. void timerinit()
  12. {
  13. PCON &= 0x7f;
  14. SCON = 0x50;
  15. TMOD |= 0x20;
  16. TL1 = 0xe8;
  17. TH1 = 0xe8;
  18. TR1 = 1;
  19. EA = 1;
  20. ES =1;
  21. ET1 = 0;
  22. }

  23. void main(){
  24. uint i;
  25. timerinit();
  26. while(1)
  27.      {
  28.          delay(1000);
  29.          for(i =0;i<5;i++)
  30.              {
  31.                  SBUF = 0xf0;
  32.                  while(TI ==0);
  33.                  TI = 0;
  34.                  }
  35.          }
  36. }

复制代码


接收————————

  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit ring = P2^0;

  5. void timerinit()
  6. {
  7. PCON &= 0x7f;
  8. SCON = 0x50;
  9. TMOD &= 0x0f;
  10. TMOD |= 0x20;
  11. TL1 = 0xe8;
  12. TH1 = 0xe8;
  13. TR1 = 1;
  14. EA =1;
  15. ES =1;
  16. ET1 =0;
  17. }

  18. void delay(uint t)
  19. {
  20. uchar i;
  21. while(t--)
  22.     {for(i=0;i<100;i++);}
  23. }

  24. void main()
  25. {
  26. timerinit();
  27. while(1){};
  28. }

  29. void ser() interrupt 4
  30. {
  31. static uchar dat;
  32. if(RI)
  33.   {
  34.   RI = 0;
  35.   dat = SBUF;
  36.   }
  37. if(dat ==0xf0)
  38.   {
  39.   REN =0;
  40.   delay(200);
  41.   ring = ~ring;
  42.   dat = 0;
  43.   REN =1;
  44.   }
  45. }

复制代码





但是测试的时候接通接受电路,蜂鸣器没有断断续续地响而是一直响,要不然就不响。
求助:这是怎么回事啊?是不是我线接错了?!
后天交稿急求!感谢指导!

自己用完美的20字符华丽地顶上起- -

收到之后没有保持?~

你这程序看着是串口通讯的啊?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top