ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:29KB ,
资源ID:7007527      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7007527.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机实验——利用中断控制LED灯.doc)为本站会员(dwy79026)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

单片机实验——利用中断控制LED灯.doc

1、单片机实验利用中断控制 LED 灯1.实验目的(1)掌握单片机中断的基本原理。(2)掌握单片机中断程序的编制方法。2.预习要点(1)单片机中断基本原理(2)中断程序编制方法3.实验设备计算机、单片机实验箱、信号发生器。4.实验内容基本要求:将信号发生器输出的脉冲信号连接到 CPU 的 INT0 上,将 CPU 的 P1.0 到 P1.7和八个 LED 连接,脉冲信号为 5V、100Hz ,每输入一百个脉冲 LED 灯亮一次,并且 LED 灯顺序循环移位一次,形成跑马灯。扩展要求:提高输入脉冲频率,但跑马灯的显示频率不变。实验 4ORG 0000HAJMP MAIN;*;中断子程序入口地址ORG

2、 0003HLJMP EXINT0;*;主程序ORG 0030HMAIN:MOV SP,#70HSETB IT0 ;设置为下降沿触发SETB EX0 ;开 INT0 的中断开关SETB EA ;开总中断开关MOV R0,#01H ;只让一盏灯亮,R0 赋给 P1 口MOV R3,#00H ;R3 用来记中断次数MOV A,R0MOV P1,AHERE:SJMP HERE ;死循环,还有另外一种形式是 SJMP $;*;外中断 0 服务程序EXINT0:INC R3 ;每来一次中断 R3 自加 1CJNE R3,#100,NEXT ;当来了 100 次中断之后,R3 清零,然后 P1 口的MOV

3、 R3,#00H ;数左移一位,也就是让下一个 LED 亮MOV A,R0RL AMOV P1,AMOV R0,A ;保存左移之后的结果NEXT:RETI;*END实验 4 扩展ORG 0000HAJMP MAIN;*;中断入口地址ORG 0003HLJMP EXINT0;*;主程序ORG 0030HMAIN:MOV SP,#70H;初始化外中断 0SETB IT0SETB EX0SETB EA;初始化 8155MOV DPTR,#0100HMOV A,#03HMOVX DPTR,A;显示缓存区MOV 30H,#1MOV 31H,#2MOV 32H,#3MOV 33H,#4MOV 34H,#5

4、MOV 35H,#6MOV 36H,#7MOV 37H,#8MOV 38H,#9 ;这一句后面的 CJNE 会用到,用来判断 1-8 是否已经显示完了MOV R2,#00H ;用 R2 来记中断来的次数MOV 40H,#01H ;用 40H 存放 LED 的状态MOV A,40HMOV P1,AMOV R0,#30H ;显示缓存区首地址给 R0MOV R4,#0FEH ;字位送 R4,因为只需要亮一个数码管 ,所以选择静态显示,没必要用动态显示LOOP:LCALL DISPLAY ;循环调用显示程序SJMP LOOP;*;中断子程序EXINT0:INC R2CJNE R2,#100,NEXT

5、;来 100 次中断之后才进行操作MOV R2,#00HMOV A,40H ;移动 LEDRL AMOV P1,AMOV 40H,AINC R0 ;让显示的数+1CJNE R0,#9,NEXT ;如果到了 9 就回到 1,因为我们只显示 1-8MOV R0,#30HNEXT:RETI;*;显示子程序DISPLAY:MOV DPTR,#0102H ;送字位MOV A,R4MOVX DPTR,AMOV DPTR,#DTAB ;查表,送字形MOV A,R0MOVC A,A+DPTRMOV DPTR,#0101HMOVX DPTR,ALCALL DELAYLD1:RET;*;字形表DTAB:DB 3F

6、H,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH ;0-FDB 77H,7CH,39H,5EH,79HDB 71H;*;延时 1ms 子程序DELAY:MOV R7,#02HDEL1:MOV R6,#0FFHDEL2:DJNZ R6,DEL2DJNZ R7,DEL1RET;*ENDORG 0000HAJMP MAIN;中断入口地址ORG 0003HLJMP EXINT0;*主程序ORG 0030HMAIN:MOV SP,#70H;初始化外中断 0SETB IT0SETB EX0SETB EA;初始化 8155MOV DPTR,#0100HMOV A,#03HMOV

7、X DPTR,A;显示缓存区MOV 30H,#1MOV 31H,#2MOV 32H,#3MOV 33H,#4MOV 34H,#5MOV 35H,#6MOV 36H,#7MOV 37H,#8MOV 38H,#9MOV 40H,#01H ;用 40H 存发光二极管的状态MOV R2,#00HMOV A,40HMOV P1,AMOV R0,#30HMOV R4,#0FEHLOOP:LCALL DISPLAYSJMP LOOP;*;中断子程序EXINT0:INC R2CJNE R2,#100,NEXT MOV R2,#00HMOV A,40HRL AMOV P1,AMOV 40H,AINC R0CJN

8、E R0,#9,NEXT1MOV R0,#30HNEXT1:MOV A,R4 RL AMOV R4,A NEXT:RETI;显示子程序 DISPLAY:MOV A,R4MOV DPTR,#0102HMOVX DPTR,A MOV DPTR,#DTABMOV A,R0MOVC A,A+DPTRMOV DPTR,#0101HMOVX DPTR,ALCALL DELAYLD1:RET ;字形表DTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH;延时 1ms 子程序 DELAY: MOV R7,#02HDEL1:MOV R6,#0FFHDEL2:DJNZ R6,D

9、EL2DJNZ R7,DEL1RETEND;说明: ;R4 是保存数码管字位;R3;R2 是保存中断次数 满 100 清 0;R1;R0 是保存数码管的字型实验 5(1)ORG 0000HSJMP MAIN;*8*;中断入口地址ORG 000BHLJMP T0INT;*;主程序ORG 0030H MAIN:MOV SP,#70HMOV TMOD,#01H ;T0 选择方式 1,16 位定时器MOV TH0,#0F6H ;#9EH ;因为用示波器观察 20HZ 的方波不易观察,频率太低了,所以我换成了MOV TL0,#3CH ;#58H ;200HZ 的,原理都是一样的 ,这样只是为了让波形更容易观察,后者是 20HZ 的初值SETB EA ;开总中断 SETB ET0 ;开定时器 0 中断 SETB TR0 ;启动定时器 0SJMP$ ;死循环;*;定时器 0 中断子程序 (25ms 2.5ms 来一次中断 )T0INT:MOV TH0,#0F6H ;#9EH ;重新赋初值 MOV TL0,#3CH ;#58HCPL P1.1 ;改变电平RETI;*

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报