想实现一个遥控开关系统,做到当发射源发出一个信号时,接收器接受信号,解码并且当匹配时对某个IO口实现输出高电平。
我的接线和程序是这样的:
发射——————
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit dataout = P2^0;
- void delay(uint t)
- {
- uchar i;
- while(t--)
- {for(i = 0;i<100;i++);}
- }
- void timerinit()
- {
- PCON &= 0x7f;
- SCON = 0x50;
- TMOD |= 0x20;
- TL1 = 0xe8;
- TH1 = 0xe8;
- TR1 = 1;
- EA = 1;
- ES =1;
- ET1 = 0;
- }
- void main(){
- uint i;
- timerinit();
- while(1)
- {
- delay(1000);
- for(i =0;i<5;i++)
- {
- SBUF = 0xf0;
- while(TI ==0);
- TI = 0;
- }
- }
- }
复制代码
接收————————
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit ring = P2^0;
- void timerinit()
- {
- PCON &= 0x7f;
- SCON = 0x50;
- TMOD &= 0x0f;
- TMOD |= 0x20;
- TL1 = 0xe8;
- TH1 = 0xe8;
- TR1 = 1;
- EA =1;
- ES =1;
- ET1 =0;
- }
- void delay(uint t)
- {
- uchar i;
- while(t--)
- {for(i=0;i<100;i++);}
- }
- void main()
- {
- timerinit();
- while(1){};
- }
- void ser() interrupt 4
- {
- static uchar dat;
- if(RI)
- {
- RI = 0;
- dat = SBUF;
- }
- if(dat ==0xf0)
- {
- REN =0;
- delay(200);
- ring = ~ring;
- dat = 0;
- REN =1;
- }
- }
复制代码
但是测试的时候接通接受电路,蜂鸣器没有断断续续地响而是一直响,要不然就不响。
求助:这是怎么回事啊?是不是我线接错了??!!
后天交稿急求!!!!!!!感谢指导!!!!!!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>