完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我现在想实现单片机双机通讯用单片机A的按键去控制单片机B的LED,下面分别是发送和接受机的程序。
发送机: #include #define u8 unsigned char #define u16 unsigned int ***it r1=P3^3; ***it c1=P3^4; ***it c2=P3^5; ***it c3=P3^6; ***it c4=P3^7; void delayms (u16 xms) { u16 i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void send(u8 a) { SBUF=a; while(!ti); TI=0; } void keyscan() { u16 a; if(c1==0) { delayms(10); if(c1==0) { a=1; while(!c1); send(a); a=0; } } if(c2==0) { delayms(10); if(c2==0) { a=2; while(!c2); send(a); a=0; } } if(c3==0) { delayms(10); if(c3==0) {a=3; while(!c3); send(a); a=0; } } if(c4==0) { delayms(10); if(c4==0) {a=4; while(!c4); send(a); a=0; } } } void main() { r1=0; c1=1; c2=1; c3=1; c4=1; TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; while(1) { keyscan(); } } 接受机: #include #define u8 unsigned char #define u16 unsigned int ***it led1=P0^0; ***it led2=P0^1; ***it led3=P0^2; ***it led4=P0^3; void ledscan() { u8 a; if(a==1) { led1=~led1; a=0; } if(a==2) { led2=~led2; a=0; } if(a==3) { led3=~led3; a=0; } if(a==4) { led4=~led4; a=0; } } void main() { TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; while(1); } void ser() interrupt 4 { u8 a; RI=0; a=SBUF; ledscan(); } |
|
相关推荐
3个回答
|
|
老弟啊 这样问问题不会有人回答的
|
|
|
|
没有问题没有问题
|
|
|
|
在接收机程序里的ledscan里的a定义取消,把a定义改成全局定义
|
|
|
|
只有小组成员才能发言,加入小组>>
2976 浏览 9 评论
2692 浏览 16 评论
3214 浏览 1 评论
8445 浏览 16 评论
3782 浏览 18 评论
6962浏览 6评论
求助,请问MS51FB9AE带隙电压能作为侦测的基准电压吗?
7457浏览 3评论
6959浏览 3评论
支持UART-to-BLE透传的新唐NuTool – BLE ATCMD开发工具推荐
5805浏览 3评论
9375浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-25 00:39 , Processed in 0.728005 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号