汇编语言:在两个数码管上实现00-99的循环显示

2026/4/28 20:38:11

;此程序为在两个数码管上实现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中断入口

ORG INIT: MOV

MOV

DATA MOVX LCALL MOV

LCALL MOV

MOVX // MOV

MOV MOV MOV MOV // MOV // MOV // MOV // MOV MOV

MOV

0030H DPTR,#4000H

;HD7279A的地址

A,#10011111B

;HD7279A初始化CS、CLK、

@DPTR,A

DELAY25MS

;延时后进入工作状态

DATA_OUT,#10100100B

;HD7279A复位指令

SEND

;发送指令

A,#10011111B

;设回CS为高电平

@DPTR,A

R4,#20 ;定时器一个周期内的中断数

R2,#0 R3,#0 R4,#0 R5,#0 MSECOND,#0

SECOND,#0 MINITE,#0

HOUR,#0 ;数字计数器 R6,#0 ;个位寄存器

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 MOV

SEND

A,#10011111B

LCALL LCALL MOV

SEND DELAY25

;T4,指令与数据时间间隔

;指令的数据部分,显示个

DATA_OUT,R2

MOVX @DPTR,A

找到了第3个数码管

LCALL LCALL MOV

SEND DELAY25

;T4,指令与数据时间间隔

;指令的数据部分,显示个

DATA_OUT,R3


汇编语言:在两个数码管上实现00-99的循环显示.doc 将本文的Word文档下载到电脑
搜索更多关于: 汇编语言:在两个数码管上实现00-99的循环显示 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219