完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#define uint unsigned int #define uchar unsigned char ***it dx=P2^6; ***it wx=P2^7; ***it d1=P1^0; //定义小灯 uchar aa; uchar code numtable[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delayms(uint); void main() { EA=1; //开总中断 EX0=1; //开外部中断0 while(1) { if (aa==16) aa=0; //当加到16时,从新加 wx=1; //开位选 P0=0xea; //开135位 wx=0; //关位选 dx=1; //开段选 P0=numtable[aa]; //0~F dx=0; //关段选 aa++; delayms(500); d1=1; } } void delayms(uint z) { uint i,j; for (i=z;i>0;i--) for(j=114;j>0;j--); } void exter0() interrupt 0 { d1=0; // 灯亮 } 而且当P3.2和gnd接通时,只是变化的速度变慢而已, 程序没有真正停下! 为什么!!? 求解!! |
|
相关推荐
5个回答
|
|
回帖奖励 +2 分积分
你应该好好看看书 学学外部中断 以及中断的触发方式 和中断响应的过程和执行过程!
|
|
1 条评论
|
|
|
|
1 条评论
|
|
你这个实验的具体情况是什么的。。包括数码管的 |
|
|
|
因为当你选用低电平触发是 必须保证低电平时间是2个系统周期才会被识别。。因此 。。。当你把那个接到gnd时。。。读到低电平和下一次在采集到低电平的时间是两个系统中期。。在此期间又跳到主函数中。。所以你才会看到那种现象
|
|
1 条评论
|
|
嗯。。我补充下。。如果你中断函数里面程序运行的时间大于两系统周期。。。那就不会跳回主函数
|
|
1 条评论
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
298 浏览 1 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
309 浏览 0 评论
826 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1911 浏览 2 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1427 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12031 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 22:03 , Processed in 1.063318 second(s), Total 111, Slave 82 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号