嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
51单片机汇编程序,T0定时器产生200ms脉冲,T1设置为计数模式,T1计数T0的脉冲数,并显示在四位数码管上
ORG 0000H
LJMP START1
ORG 000BH ;T0定时器
LJMP TIM0
ORG 001BH ;T1计数器
LJMP TIM1
ORG 0100H
NUM_1 EQU 40H ;个位显示
NUM_10 EQU 41H ;十位显示
NUM_100 EQU 42H ;百位显示
NUM_1000 EQU 43H ;千位显示
START1: MOV TMOD,#52H ;01010010 T1计数方式1 T0定时方式2
MOV TL0,#038H ;初值56,200us翻转一次,周期400us
MOV TH0,#038H
SETB TR1
SETB TR0
SETB ET0
SETB ET1
SETB EA
CLR P3.7
MOV R4,#5
MOV R5,#100
START: MOV A,TL1
MOV B,#10
DIV AB
MOV NUM_1,B
MOV B,#10
DIV AB
MOV NUM_10,B
MOV B,#10
MOV NUM_100,A
MOV R3,#4 ;显示4位数
MOV R2,#80H ;从最低位开始显示 ,数码管位选
MOV R0,#40H ;存储数字的首地址
MAIN: MOV A,R2
RL A ;80h左移一位变成01h
MOV R2,A
MOV P1,A ;送入P1位选端口
MOV A,@R0 ;将R0地址数据给A
MOV DPTR,#TAB ;查表
MOVC A,@A DPTR ;将对应的段码给P2口
MOV P2,A
INC R0 ;地址加一
LCALL DELAY ;延时
DJNZ R3,MAIN ;判断显示4位数
AJMP START ;4位数显示完成,又重新显示
DELAY: MOV R6,#10
DEL0: MOV R7,#20
DEL1: DJNZ R7,DEL1
DJNZ R6,DEL0
RET
TIM0: DJNZ R4,RETS ;T0定时器函数
MOV R4,#5
DJNZ R5,RETS
CPL P3.7 ;翻转脉冲电平,周期=400us*500=200ms
MOV R5,#100
RETS: RETI
TIM1: CLR TF1 ;T1定时器函数
RETI
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END