单片机实验――利用中断控制LED灯

上传人:M****1 文档编号:497970805 上传时间:2023-08-17 格式:DOC 页数:12 大小:41.50KB
返回 下载 相关 举报
单片机实验――利用中断控制LED灯_第1页
第1页 / 共12页
单片机实验――利用中断控制LED灯_第2页
第2页 / 共12页
单片机实验――利用中断控制LED灯_第3页
第3页 / 共12页
单片机实验――利用中断控制LED灯_第4页
第4页 / 共12页
单片机实验――利用中断控制LED灯_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《单片机实验――利用中断控制LED灯》由会员分享,可在线阅读,更多相关《单片机实验――利用中断控制LED灯(12页珍藏版)》请在金锄头文库上搜索。

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

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

3、0RL AMOV P1,AMOV R0,A ;保存左移之后的结果NEXT:RETI *JEND实验4扩展ORG 0000HAJMP MAIN *J冲断入口地址ORG 0003HLJMP EXINT0 *J;主程序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,#5MOV 35H,#6MOV 36H,#7MOV 37H,#8MOV 38H,

4、#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 *J;中断子程序EXINT0:INC R2CJNE R2,#100,NEXT ;来 100次中断之后才进行操作MOV R2,#00HMOV A,40H ;移动 LEDRL A

5、MOV P1,AMOV 40H,AINC R0 ;让显示的数+1CJNE R0,#9,NEXT ;如果到了 9就回到1,因为我们只显示1-8MOV R0,#30HNEXT:RETI.*J;显示子程序DISPLAY:MOV DPTR,#0102H ;送字位MOV A,R4MOVX DPTR,AMOV DPTR,#DTAB ;查表,送字形MOV A,R0MOVC A,A+DPTRMOV DPTR,#0101HMOVX DPTR,ALCALL DELAYLD1:RET字形表.* JJDTAB:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH ;0-FDB 77

6、H,7CH,39H,5EH,79HDB 71H延时1ms子程序.* JJDELAY:MOV R7,#02HDEL1:MOV R6,#0FFHDEL2:DJNZ R6,DEL2DJNZ R7,DEL1RET *JORG 0000HAJMP MAIN冲断入口地址ORG 0003H主程序LJMP EXINT0.*JORG 0030HMAIN:MOV SP,#70H;初始化外中断0SETB IT0SETB EX0SETB EA;初始化8155MOV DPTR,#0100HMOV A,#03HMOVX DPTR,A;显示缓存区MOV 30H,#1MOV 31H,#2MOV 32H,#3MOV 33H,#

7、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.*J;中断子程序EXINT0:INC R2CJNE R2,#100,NEXTMOV R2,#00HMOV A,40HRL AMOV P1,AMOV 40H,AINC R0CJNE R0,#9,NEXT1MOV R0,#30HNEXT1:M0V A,R4RL AMOV R4,ANEXT:

8、RETI;显示子程序DISPLAY:MOV A,R4MOV DPTR,#0102HMOVX DPTR,AMOV DPTR,#DTABMOV A,R0MOVC A,A+DPTRMOV DPTR,#0101HMOVX DPTR,ALCALL DELAY LD1:RET ;字形表 DTAB: DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH ;延时 1ms 子程序 DELAY: MOVR7,#02H DEL1:MOV R6,#0FFH DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 RET END ;说 明:;R4是保存数码管字位;R3 ;R2是保存中断次数

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号