Chihson
Chihson
关注数: 1
粉丝数: 6
发帖数: 101
关注贴吧数: 17
串口通信问题,求帮助!!!!! 原本设定了通过串口助手发送信息之后才会响蜂鸣器,但是一旦下载完它就响了,而且按了复位键之后就没有响,功能恢复正常,请问为什么会这样子呢?我看到郭天祥视频里面也会遇到这个情况,但是视频没有说明清楚是为什么. 代码如下: #include<reg52.h> unsigned char flag=0,num=0,a,beep; sbit FM=P2^3; main() { TMOD=0x21; TH1=0xfd; TL1=0xfd; TH0=0x4c; TL0=0x00; TR1=1; SM0=0; SM1=1; REN=1; ET0=1; EA=1; ES=1; while(1) { if(flag==1) { flag=0; EA=0; TR0=1; if(a==*1*) beep=8; if(a==*2*) beep=4; if(a==*3*) beep=2; if(a==*4*) { TR0=0; FM=1; } EA=1; } } } void ser() interrupt 4 { RI=0; a=SBUF; flag=1; } void fm() interrupt 1 { TH0=0x4c; TL0=0x00; num++; if(num>=beep) { num=0; FM=~FM; } }
急!!串口通信问题, 在串口调试助手发送1,2,3时分别以不同频率响,但是经调试发现,a=SBUF接收了信息之后,执行完一遍之后,a的值就改变了,通过返回给上机的值也发生了变化,导致蜂鸣器程序只执行了一遍就没有再执行了,本来想截图串口助手,无奈怎么样都是上传失败。求解 代码如下: #include<reg52.h> unsigned char a; sbit FM=P2^3; void delayms(unsigned int t) { unsigned char y; for(;t>0;t--) for(y=110;y>0;y--); } void fm(unsigned int hz) { FM=1; delayms(hz); FM=0; delayms(hz); } mian() { //EA=1; //ES=1; unsigned char flag; REN=1; TR1=1; TH1=0xfd; TL1=0xfd; TMOD=0x20; SM0=0; SM1=1; while(1) { if(RI==1) { flag=1; RI=0; a=SBUF; } if(a==*1*) fm(400); if(a==*2*) fm(200); if(a==*3*) fm(100); if(flag==1) { flag=0; SBUF=a; while(!TI); TI=0; } }
银行卡开户银行填珠海华润银行还是珠海华润银行香洲支行呢? 银行卡开户银行填珠海华润银行还是珠海华润银行香洲支行呢? 还有,其他学校需要兵役证的,那我们需不需要呢?求湿胸湿解解答!
广东理科512,报了这里第一志愿,,,,,,求祝福吧! 还听说今年缩招,心里还忐忑着 ,,,,,,,
1
下一页