完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#define uchar unsigned char ***it b=P2^2; uchar flag; void init() { TMOD=0x20; SCON=0x50; TH1=0xfd; TL1=0xfd; TR1=1; EA=1; ES=1; } main() { init(); P3=0x0f; while(1) { if(b==0&&flag==1) { ES=0; flag=0; SBUF=P3; while(!ti) TI=0; ES=1; b=1; } } } void ver() interrupt 4 { RI=0; flag=1; } |
|
相关推荐
9个回答
|
|
你的程序里while(!TI);这里缺一个分号,加上就能正常发送,但必须有回传信号触发中断,置位 flag=1,才能被允许再次发送!,
最佳答案
|
|
|
|
flag没有归零,b=P2^2为外接引脚,如果外部接地了,那b=1是没意义的,所以如果flag没有归零,P2^2外部接地,那if(b==0&&flag==1)就成立,就会不停的发送数据了
|
|
|
|
用按键程序对P2.2信号处理,控制变量b,就可以控制串口发送。
#include #define uchar unsigned char ***it key=P2^2; bit flag=1; bit b=0; uchar x; void init() { TMOD=0x20; SCON=0x50; TH1=0xfd; TL1=0xfd; TR1=1; EA=1; ES=1; } void keyscan() //按键识别子程序 { static bit key_sign=0; //按键有效标志 static uchar count=0; //计数变量 if(key==0) //检测按键如果为0 { count++; //消抖计数 if(count>=100) //100次检测按键如果为0 { count=100; //最大数限制 if(key_sign==0) //按键有效标志为0 { key_sign=1; //按键有效标志置1 b=1; //允许发送 } } } else { key_sign=0; //按键有效标志清0 count=0; //消抖计数清0 } } void main() { init(); P3=0x0f; while(1) { keyscan(); if(b==1&&flag==1) { ES=0; flag=0; SBUF=P3; while(!TI) TI=0; ES=1; b=0; } } } void ver() interrupt 4 { RI=0; flag=1; } 补充内容 (2017-7-22 07:17): while(!TI);这里缺一个分号 这个程序必须有回传信号触发中断,置位 flag=1,才能被允许再次发送! |
|
|
|
人中狼 发表于 2017-7-21 19:06 大哥,方法在哪里 |
|
|
|
|
|
|
|
大哥辛苦了,我要做的是检测P2^2,变成低电平就发送1个信号给PC,这个不是我需要的 |
|
|
|
白扯,还是不好使我再试试其他方法 |
|
|
|
我换个方法,但是这把也发不出去信号了 |
|
|
|
不知道你想要的什么具体功能,如果只是为了P2.2每一个低电平触发发送一个数据,根本不需要开中断,程序极为简单。你自己对照电路改P端口,以经串口助手验证无误。 #include #include #define uchar unsigned char ***it b=P2^2; uchar flag=0; void init() { TMOD=0x20; SCON=0x50; TH1=0xfd; TL1=0xfd; TR1=1; } void main() { init(); P1=0xfe; //LED显示1111 1110 while(1) { if(b==0) { if(flag==0) { flag=1; P1=_crol_(P1,1);//LED显示左移一位 SBUF=P1; //发送到串口 while(!TI); TI=0; } } else flag=0; } } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
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积木平台
12023 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 00:49 , Processed in 0.763684 second(s), Total 87, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号