完善资料让更多小伙伴认识你,还能领取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--); } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
464 浏览 0 评论
478 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
439 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
994 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1056 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11793 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 21:18 , Processed in 0.650655 second(s), Total 84, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号