完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
51串口通讯,单片机本该不断接收串口调试助手的指令,动态改变数码管和LED显示内容的,可是下面的程序只能接收一次指令,再发送就没反应了,该怎么修改才能实现不断自动接收指令呢?
代码如下: #include #define uchar unsigned char #define uint unsigned int uchar SEG7[16]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; uchar ACT[4]={0xf7,0xfb,0xfd,0xfe}; /***************************************************/ ***it D0=P2^0; ***it D1=P2^1; ***it D2=P2^2; ***it D3=P2^3; ***it D4=P2^4; ***it D5=P2^5; ***it D6=P2^6; ***it D7=P2^7; #define ON 0 #define OFF 1 uchar a[5]; bit outflag=0; uint len=0; /***************************************************/ void delay(uint k) { uint i,j; for(i=0;i { for(j=0;j<121;j++) { ; } } } /***************************************************/ void init(void) { TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; SCON=0x50; EA=1; ES=1; } /***************************************************/ void main(void) { init(); while(1) { P0=SEG7[a[1]]; P1=ACT[1]; delay(1); P0=SEG7[a[3]]; P1=ACT[0]; delay(1); if(outflag==1) { switch(a[1]) { case 1:if(a[3]==1)D0=ON;else D0=OFF;break; case 2:if(a[3]==1)D1=ON;else D1=OFF;break; case 3:if(a[3]==1)D2=ON;else D2=OFF;break; case 4:if(a[3]==1)D3=ON;else D3=OFF;break; case 5:if(a[3]==1)D4=ON;else D4=OFF;break; case 6:if(a[3]==1)D5=ON;else D5=OFF;break; case 7:if(a[3]==1)D6=ON;else D6=OFF;break; case 8:if(a[3]==1)D7=ON;else D7=OFF;break; default:break; } outflag=0; } } } /***************************************************/ void serial_serve(void) interrupt 4 { if(RI==1) { RI=0; if(!outflag) { if((SBUF=='#')&&(len==0)) { a[0]=SBUF; } else { len=len+1; a[len]=SBUF; if(len==4) { a[1]=a[1]-0x30; a[3]=a[3]-0x30; len=0; outflag=1; } } } } } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
644 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1819 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1262 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1136 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1357 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12029 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 13:28 , Processed in 0.667727 second(s), Total 68, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号