原创
利用protues仿真51的中断和定时器实验
步骤:
1、利用protues软件,画出电路图,如下图
2、利用wave软件,编译你的汇编程序,生成hex文件
;*******************************************************************
;名称:中断和定时器实验,P1接8个LED,p2口低四位接6位74LS48,高位的前三位接74LS138
;功能:每隔一段时间(利用定时器实现),led右移一位,数码管+1
;作者:littlebird100
;时间:2009-9-17
;******************************************************************
NUM1 EQU 20H
NUM2 EQU 21H
NUM3 EQU 22H
LED1 EQU 23H
LED2 EQU 24H
LED3 EQU 25H
LED4 EQU 26H
LED5 EQU 27H
LED6 EQU 28H
ORG 0000H
AJMP MAIN
ORG 000BH
LJMP MYINT
ORG 0100H
MAIN:
;初始化
MOV NUM1,#0
MOV NUM2,#0
MOV NUM3,#0
MOV LED1,#0
MOV LED2,#0
MOV LED3,#0
MOV LED4,#0
MOV LED5,#0
MOV LED6,#0
MOV R2,#0FEH
;定时器和中断设置
MOV TMOD,#01H
MOV TH0,#0F0H
MOV TL0,#0FAH
SETB EA
SETB ET0
SETB TR0
;显示
DISPLAY:
MOV R1,#0
MOV R0,#23H
LOOP:
MOV A,R1
SWAP A
ORL A,@R0
MOV P2,A
INC R0
INC R1
LCALL DELAY
CJNE R1,#6,LOOP
AJMP DISPLAY
;延时模块
DELAY:
MOV R7,#0FH
LOOP1:
MOV R6,#0FH
LOOP2:
DJNZ R6,LOOP2
DJNZ R7,LOOP1
RET
;中断子程序
MYINT:
CLR TR0 ;停定时器
MOV TH0,#100
MOV TL0,#155
;8位LED显示
MOV P1,R2
MOV A,R2
RL A
MOV R2,A
;6位数码管显示的数字
INC NUM1
MOV A,NUM1
CJNE A,#100,LL1
MOV NUM1,#0
INC NUM2
MOV A,NUM2
CJNE A,#100,LL2
MOV NUM2,#0
INC NUM3
MOV A,NUM3
CJNE A,#100,LL3
MOV NUM3,#0
LL1:
MOV B,#10
DIV AB
MOV LED5,A
MOV LED6,B
LL2:
MOV B,#10
DIV AB
MOV LED3,A
MOV LED4,B
LL3:
MOV B,#10
DIV AB
MOV LED1,A
MOV LED2,B
DONE:
SETB TR0 ;开定时器
RETI
END
3、双击电路图中的单片机芯片,载入hex文件,点左下脚的运行按钮就行了
用户235330 2009-9-21 16:39