当前位置:首页 > 总汇编语言在两个数码管上实现00-99地循环显示
实用文档
;此程序为在两个数码管上实现00-99的循环显示
// // // //
标准文案
;设置ram DATA_IN
DATA 20H
DATA_OUT DATA 21H
BIT_COUNT
DATA 22H
HOUR DATA 23H MINITE DATA 24H SECOND DATA 25H MSECOND DATA 26H
ORG 0000H
LJMP
INIT
ORG 000BH
LJMP
TIME0
ORG 0013H LJMP KBHIT
;初始化
;接收数据缓冲寄存器 ;发送数据缓冲寄存器
;数据位数寄存器
;定时器0中断入口
实用文档
INIT:
DATA
//
// // // //
标准文案
ORG 0030H MOV DPTR,#4000H
;HD7279A的地址
MOV
A,#10011111B
;HD7279A初始化CS、CLK、
MOVX @DPTR,A
LCALL DELAY25MS
;延时后进入工作状态
MOV
DATA_OUT,#10100100B
;HD7279A复位指令
LCALL SEND
;发送指令 MOV
A,#10011111B
;设回CS为高电平
MOVX @DPTR,A
MOV
R4,#20 ;定时器一个周期内的中断数
MOV R2,#0 MOV R3,#0 MOV R4,#0 MOV R5,#0 MOV MSECOND,#0
MOV SECOND,#0 MOV MINITE,#0
MOV HOUR,#0 ;数字计数器 MOV R6,#0 ;个位寄存器 MOV
R7,#0
;十位寄存器
实用文档
MOV
TMOD,#1
;设置定时器0工作模式为
方式1 // //
;主程序 MOV MOV DIV MOV MOV
AB
R6,B R7,A
;个位放在R6 ;十位放在R7
;下载数据且按方式1
A,R2 B,#10
;把数字转换为2个BCD码
MOV MOV MOV MOV
TH0,#3CH TL0,#0B0H TH0,#0FCH TL0,#18H
;开总中断 ;开定时器0中断
;设置定时器定时值
;设置定时器定时值
SETB SETB
EA ET0
SETB EX1 SETB
TR0
;开始计时
MAIN:
MOV DATA_OUT,#11001000B
译码,找到了第1个数码管
标准文案
实用文档
LCALL LCALL MOV
SEND DELAY25
;T4,指令与数据时间间隔
;指令的数据部分,显示个位
DATA_OUT,R1
LCALL MOV
SEND
A,#10011111B
MOVX
MOV
@DPTR,A
DATA_OUT,#11001001B
;下载数据且按方式1
译码,找到了第2个数码管
MOV
DATA_OUT,#11001010B
;下载数据且按方式1译码,
LCALL LCALL MOV
SEND DELAY25
;T4,指令与数据时间间隔
;指令的数据部分,显示个位
DATA_OUT,R2
LCALL MOV
SEND
A,#10011111B
MOVX @DPTR,A
找到了第3个数码管
LCALL LCALL MOV
SEND DELAY25
;T4,指令与数据时间间隔
;指令的数据部分,显示个位
DATA_OUT,R3
LCALL MOV
SEND
A,#10011111B
标准文案
共分享92篇相关文档