完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
今天刚刚看完郭天祥的中断视频,然后试着用低电平的触发方式去运行数码管,然后用蜂鸣器响作为中断事件,用普中的开发板,P3^4接蜂鸣器,数码管2 4 6 8亮循环0到9,写完程序烧录进去后,把P3^2接地后蜂鸣器响起,数码管数字没有暂停,而是以很慢的速度继续循环,这是为什么?我的意图是P3^2接地后蜂鸣器响,数码管暂停循环,P3^2接高后数码管继续循环。
#include #define uint unsigned int ***it fmq=P3^4; void delay(uint z); uint code duanxuan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07}; uint code weixuan[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void xianshi(); uint i; void main() { while(1) { EA=1; EX0=1; IT0=0; xianshi(); } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void zhongduan() interrupt 1 { fmq=~fmq; } void xianshi() { for(i=0;i<8;i++) { P2=0x55; P0=duanxuan[i]; delay(1000); } } |
|
相关推荐
4个回答
|
|
你这个外部中断压根就没有控制数码管的暂停与启动啊,数码管在while(1)不停的循环显示。
|
|
|
|
定义一个标志,在中断中改变这个标志,在while(1)中查询这个标志,来执行和暂停数码管刷新
|
|
|
|
本帖最后由 joinking 于 2015-3-13 14:54 编辑
又是中断问题,按键不要用外部中断就没问题了,不是标志位问题,是单片机本身的问题,有些单片机这样写没问题的,就是进出中断时的那一刻单片机需要执行一条指令后才能再次就如中断,导致while(1)里面的程序还在走一步再执行一个中断又执行一个指令又进入中断,所以出现数码管变慢,声音还是响的。 |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
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积木平台
11780 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 10:57 , Processed in 0.713905 second(s), Total 82, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号