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

  • 130
  • 0
  • 约6.52千字
  • 约 8页
  • 2019-01-19 发布于浙江
  • 举报

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

;此程序为在两个数码管上实现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 ;定时器0中断入口 ORG 0013H LJMP KBHIT ;初始化 ORG 0030H INIT: MOV DPTR,#4000H ;HD7279A的地址 MOV A, ;HD7279A初始化CS、CLK、DATA MOVX @DPTR,A LCALL DELAY25MS ;延时后进入工作状态 MOV DATA_OUT, ;HD7279A复位指令 LCALL SEND ;发送指令 MOV A, ;设回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 TH0,#3CH ;设置定时器定时值 // MOV TL0,#0B0H MOV TH0,#0FCH ;设置定时器定时值 MOV TL0,#18H SETB EA ;开总中断 SETB ET0 ;开定时器0中断 SETB EX1 SETB TR0 ;开始计时 ;主程序 MAIN: MOV A,R2 ;把数字转换为2个BCD码 MOV B,#10 DIV AB MOV R6,B ;个位放在R6 MOV R7,A ;十位放在R7 MOV DATA_OUT, ;下载数据且按方式1译码,找到了第1个数码管 LCALL SEND LCALL DELAY25 ;T4,指令与数据时间间隔 MOV DATA_OUT,R1 ;指令的数据部分,显示个位 LCALL SEND MOV A, MOVX @DPTR,A MOV DATA_OUT, ;下载数据且按方式1译码,找到了第2个数码管 LCALL SEND LCALL DELAY25 ;T4,指令与数据时间间隔 MOV DATA_OUT,R2 ;指令的数据部分,显示个位 LCALL SEND MOV A, MOVX @DPTR,A MOV DATA_OUT, ;下载数据且按方式1译码,找到了第3个数码管 LCALL SEND LCALL DELAY25 ;T4,指令与数据时间间隔 MOV DATA_OUT,R3 ;指令的数据部分,显示个位 LCALL SEND MOV A, MOVX @DPTR,A // LCALL DELAY1MS ;显示延时 MOV A,R4 ;把数字转换为2个BCD码 MOV B,#10 DIV A

文档评论(0)

1亿VIP精品文档

相关文档