1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
***it key_1 = P3^7;//按键对应这个口 ***it count = P3^3;//外部中断触发端口是这个 unsigned int i,z; char code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//流水灯对应这个的位操作 void delay(uint); void main() { count = key_1; P2 = table[i]; EA = 1; EX1 = 1;外部中断1 IT1 = 0;低电平触发 while(1); } void int1_int()interrupt 2 { i++;//按一次键,i加一次,数组对应的位数变化一次, if(i >= 8)i =0; } void delay(z) { unsigned int x,y; for(x = z;x>0;x--) for(y = 110;y>0;y--); } |
|
相关推荐
7个回答
|
|
|
|
|
|
你没有接外部中断的触发口,所以不能触发 要接P30
|
|
|
|
按键不需要另外定义口了!直接接到3-3就可以了
|
|
|
|
对应的程序对么,特别是中断号
|
|
|
|
明显的程序不对啊。
|
|
|
|
按键直接接中断口就可以的
|
|
|
|
修改好的程序如下,我语法不规范。明显,应用程序写到了初始化的前面,其实 i 在中断里面确实自加,但是, count = key_1; P2 = table[i];实际上就执行了一次,后面都是while(1);自己在玩。小结:这里修改之后,按一次按键,灯有时候跳了多次,而不是一个个的亮。。所以还要加一个按键消抖才好。
#include ***it key_1 = P3^7;//按键对应这个口 ***it count = P3^3;//外部中断触发端口是这个 unsigned int i,z; char code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//流水灯对应这个的位操作 void delay(uint); void main() { EA = 1; EX1 = 1;外部中断1 IT1 = 0;低电平触发 while(1) { count = key_1; P2 = table[i]; } } void int1_int()interrupt 2 { i++;//按一次键,i加一次,数组对应的位数变化一次, if(i >= 8)i =0; } void delay(z) { unsigned int x,y; for(x = z;x>0;x--) for(y = 110;y>0;y--); } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
503 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1756 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1183 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1053 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1287 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12022 浏览 31 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 23:58 , Processed in 0.626690 second(s), Total 81, Slave 65 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号