实验四LED灯和数码显示器的中断控制.doc

实验四LED灯和数码显示器的中断控制.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验四LED灯和数码显示器的中断控制

实验四 LED灯和数码显示器的中断控制 实验目的: 掌握外部中断的工作原理,熟悉中断编程及Keil平台软件调试方法。 实验原理: 实验电路如图A.53所示。K1和K2分别接于端口P3.2和P3.3,按压后的电平负跳变可分别产生INT0中断请求和INT1中断请求。INT0中断响应后取端口P0.4电平,使指示灯D1的状态反转,INT1中断响应后使计数值增1并送给数码管LED显示。 电路原理图及中断原理分析:按键K1接外部中断0,K2接外部中断1。P0.4接指示灯D1,P2口接数码管,每按一次K1键电平产生负跳变,INT0中断响应后取端口P0.4电平,D1的状态反转;每按一次K2键产生负跳变,INT1中断响应使计数值增1并使数码管显示该数值,变化范围为0~F。 实验步骤: (1)、按照表A.5所示将元件添加到Proteus ISIS对象选择列表中,并仿照图A.53完成 电路原理图绘制。 (2)、在Keil中编写C51程序,并使之编译通过。 (3)、在Keil中加载编译后的可执行文件,并控制Proteus中的程序仿真运行。 CategoryReferenceValueMicroprocessor ICsU180C51OptoelectromicsD1LED-GREENSwitchesRelaysK1~K2BUTTONResistorsR1~R2/100RESOptoelectronicsLED7SEG-COM-CAT-GRN 四、 实验要求: (1)、主函数在程序初始化完成后进入原地循环状态,等待中断请求。 (2)、两路外部中断均设为下降沿触发方式,且为自然优先级。 (3)、计数变量初值为0,变化范围为0~F。 (4)、实验报告内容包括:电路原理图及分析、中断原理分析,C51源程序(含注释语句),仿真运行截屏图,实验小结。 五、 C51源程序如下: #include reg51.h char led_mod[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71}; char flag; sbit p0_4= P0^4; void delay(unsigned int time){ unsigned int j =0; for(;time0;time--) for(j=0;j125;j++); } int0_key () interrupt 0{ p0_4=!p0_4; } int1_key () interrupt 2{ delay(200); P2=led_mod[flag%16]; delay(200); flag++; } void main(void) { flag=0; IT0= 1; EX0= 1; EX1= 1; EA= 1; while(1); } 六、 试验结果: (1)开始运行时如下图: (2)、按键后运行图如下: 实验结果分析:由运行结果可以看出,按键K1产生外部中断0控制D1的状态,使指示灯D1由亮到暗一次变化;按键K2产生外部中断1使LED显示0~F不同数值。 七、 实验小结: 通过这次实验,我学会了中断函数的基本编程,了解了外部中断0和1的中断过程、工作原理以及如何控制指示灯和LED的状态改变,并进一步巩固了Proteus的使用及Proteus和Keil联合使用。

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档