1.卡顿的流水灯
我们用一个实验现象来再一次理解中断函数。
在主函数里我们使八盏灯不停地左右快速流水,此时若是被外部因素触发了中断函数的执行,我们就在中断函数里实现蜂鸣器响一下,看看此时主函数里的流水灯是什么现象。
代码下载进去,我们随意按K4,观察流水灯。
#include #include void main() { u8 i,dir; IT1 = 1; //下降沿触发模式 EX1 = 1; EA = 1; LED_Init();//初始化LED硬件模块 KEY_Init();//初始化按键功能模块 while(1) { if(i<8)dir=0;//向左移 if(dir==0)P0=~(0x01< if(i>=8)dir=1;//向右移 if(dir==1)P0=~( 0x80>>(i-7) );//当i大于等于8之后,(i-7)其实也还是在1~7之间变化 delay_ms(50); i++; if(i>=15)i=1;//让i一直在1~14之间变化 } } //请把P3.3和P2.3用杜邦线连接起来 void EXTI1_IRQHandler() interrupt 2 { u16 i; u8 x; for(i=0;i<2000;i++) { BEEP=!BEEP; for(x=0;x<75;x++); } } 可以看到流水灯在K4按下的时候触发了中断函数的执行,蜂鸣器响了一下,响的过程中流水灯停止了流水,说明在主函数里的CPU使用权被剥夺给了中断函数,导致了主函数的执行任务被暂停,蜂鸣器响完之后,也就是中断函数执行完了,CPU使用权给回了主函数,于是又接着执行流水灯的任务了,这些过程叫做保留现场和恢复现场。 2.中断的好处 我们再来领略一下中断的优势。 把下面的代码下载进去,蜂鸣器会一直响,然后随意按K4。 #include #include void main() { u8 x; IT1 = 1; //下降沿触发模式 EX1 = 1; EA = 1; LED_Init();//初始化LED硬件模块 KEY_Init();//初始化按键功能模块 LED2=0; //点亮LED2 while(1) { BEEP=!BEEP; for(x=0;x<75;x++); } } //请把P3.3和P2.3用杜邦线连接起来 void EXTI1_IRQHandler() interrupt 2 { static u8 i=1; P0=~(0x01< i++; if(i>=8)i=0; } 试想,我们没学过中断函数,在前面几章的基础知识中只在主函数里实现蜂鸣器一直响,然后按键还可以切换小灯的跳转,这样的功能我们可以做得到吗,我想应该有点难度。所以在中断函数的帮助下有种任务并列执行的优势。
上一篇:51单片机-进一步理解中断函数
下一篇:51单片机-外部中断测脉冲个数
推荐阅读
史海拾趣
深圳市飞翼科技有限公司自2006年成立以来,一直致力于模拟与数字MCU混合芯片领域的研究、设计和开发应用。公司主攻电容式触摸感应按键芯片设计,凭借多项独有的专利技术,成功突破了行业内的技术难点。经过多年的努力,飞翼科技已成为该应用领域中技术最全面、市场份额最大的公司之一。其电容式触摸感应芯片广泛应用于各类电子产品中,为用户带来了更加便捷、智能的交互体验。
在电子产品市场竞争日益激烈的背景下,Comax Industrial Co Ltd公司始终坚持品质至上的原则。公司建立了严格的质量管理体系,从原材料的采购到生产制造的每一个环节都进行严格把控。通过持续改进和优化生产流程,公司不断提升产品的品质与性能。这种对品质的执着追求,使得Comax的产品在市场上赢得了广泛的认可与信赖。
ABL Heatsink公司在电子散热领域一直默默耕耘,直到某天,公司的研发团队成功开发了一种新型的高效散热材料。这种材料不仅导热性能卓越,而且成本相对较低,立即引起了业界的关注。随着这种新型散热材料的广泛应用,ABL Heatsink公司的订单量激增,公司规模迅速扩大。
随着业务的快速发展,Cincon开始将目光投向国际市场。1999年,公司在美国加州设立了办事处,以便更好地服务北美市场。同一年,为了应对日益增长的生产需求,Cincon在中国东莞设立了新工厂。这些举措极大地提升了公司的生产能力和国际市场竞争力,为Cincon的全球化发展打下了坚实的基础。
在竞争激烈的电子行业中,DACHANG公司始终坚持以品质为核心。公司不断引进先进的生产设备和技术,严格把控产品质量,确保每一件产品都能达到客户的期望。正是这种对品质的执着追求,让DACHANG公司的产品在市场上赢得了良好的口碑,公司也逐渐扩大了自己的市场份额。
在国内市场取得一定成绩后,ACP Optoelectronic Technology Co Ltd开始积极拓展国际市场。公司积极参加国际电子展会和技术交流活动,与海外企业建立合作关系,拓展销售渠道。经过几年的努力,ACP Optoelectronic Technology Co Ltd的产品已经成功打入多个国际市场,公司也逐渐发展成为一家具有国际影响力的光电企业。
利用DS1302时钟芯片实现时间、日期的显示,并且具有调节时间、日期的功能。“星期”通过P0口显示,“时间”或“日期”采用MAX7219控制共阴极LED显示,通过“时间/日期”切换键,实现时间和日期的切换。按下“调整”键,再分别按相应的“星期”、“ ...… 查看全部问答∨ |
|
各位兄弟可要注意:小心自己的ID被封都没知是怎么回事,连个申诉的途径都没有,被封了连个判决书也没有?怎么被人删除了? 各位再看看,刚才那个贴子已经被版主删除了,他是担心 什么,还没有一会就直接删除,而且也没个通知说明一下,各位兄弟这里的版主是正直,但是做事的方式有欠妥,直得商榷,我不是说打广告对,我是说他直接封我ID,之前不说一下,之后不通知,感觉很郁闷!如果他 ...… 查看全部问答∨ |
|
工作四年, 一直做手机软件, 语言是C/C++, 最近不想做手机了, 想做偏硬件一定, 请问这两个那个加班比较少, 而且可以长期做. 本人是什么技术, 开始都很慢, 但是做久了, 效率超高的那种. 还有就是成都哪种工作机会更多的.… 查看全部问答∨ |
|
最近需要一个手机键盘的程序,然后修改一下,做成人机交互的键盘输入,使用的芯片是430F5438,如果谁有这个程序请给小弟分享一下,我的邮箱627582845@qq.com… 查看全部问答∨ |