指示灯数码管的中断控制.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指示灯数码管的中断控制

实?验?报?告? ?? 实验课程 原理及应 (基于Proteus和Keil C) ? 专业班级:电气01 姓名:晏晓利 学号:1304200127 组员:汤招清、丁冬、周莹、 郭龙颖、万玫钰 目录 实验1 计数显示器 控制器3 指示灯循环控制 4 指示灯/数码管的中断控制 实验4 指示灯/数码管的中断控制 【实验内容】 熟悉μVision3软件的调试方法;????????? 3)完成实验四的C51语言编程; 4)练习μVision4与ISIS的联机仿真方法。 【实验原理】 1所示,图中按键K1和K2分别接于P3.2和P3.3,发光二极管D1接于P0.4,共阴极数码管LED1接于P2口。时钟电路、复位电路、片选电路忽略。 图1 电路原理图 在编程软件配合下,要求实现如下功能:程序启动后,D1处于熄灯、LED1处于黑屏状态;单击K1,可使D1亮灯状态反转一次;单击K2,可使LED1显示值加1,并按十六进制数显示,达到F后重新从1开始。 软件编程原理为:K1和K2的按键动作分别作为INT0和INT1的中断请求,在中断函数中进行指示灯与数码管的信息处理。初始化后,主函数处于无限循环状态,等待中断请求。 【实验步骤】 绘图:原件清单表Proteus中画好原理图,,Proteus步骤见实验 元件类别 电路符号 元件名称 Microprocessor ICs U1 80C51 Optoelectronics D1 LED-GREEN Switche Relays K1~K2 BUTTON Resistors R1~R2/100 RES Optoelectronics D1~D8 LED-YELLOW 表1 图2 编程: 建立工程,生成”shiyan4.hex”,l中具体操作步骤见实验此处略去 :#includereg51.h #define ShuMa P2 unsigned char code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; sbit D1 = P0^4; unsigned char counter=0; void key1() interrupt 0 //外部中断0 { D1 = !D1; } void key2() interrupt 2 //外部中断1 { counter++; if(counter==16) counter=0; ShuMa=table[counter]; } void Interrupt_Init() { //开启外部中断 EA=1; IT0=1;//脉冲触发方式 IT1=1; EX0=1;//中断允许位 EX1=1; } void main(void) { Interrupt_Init(); ShuMa=0x00; //数码管黑屏 while(1); } 【实验结果】 与预期结果一致,如图3,为先后打开外部中断1和外部中断2的结果(未设置中断优先级)。 图3 【调试与分析】 编程和仿真过程中均未出现问题。

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档