您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页数码管显示

数码管显示

来源:华佗小知识
 ORG 0000H LJMP MAIN ORG 000BH LJMP ZHONGD ORG 0100H

MAIN: MOV 20H,#0 ;清0寄存器 CLR P1.0

CLR P1.1 ;锁存复位

MOV TMOD,#01H ;定时器0工作于方式1 MOV TH0,#0F4H MOV TL0,#48H

SETB EA ;开启总开关 SETB ET0 ;开启定时开关 SETB TR0 ;启动中断 MOV SP,#60H MOV 20H,#00H MOV 21H,#06H MOV 22H,#05H MOV 23H,#04H MOV 24H,#03H MOV 25H,#02H MOV 26H,#01H MOV 27H,#00H MOV 28H,#07H SJMP $

ZHONGD: ;动态显示扫描程序

PUSH ACC ;将ACC压入堆栈 PUSH PSW ;将PSW压入堆栈 MOV TH0,#0F4H

MOV TL0,#48H ;给定时器重新赋值

MOV DPTR,#TABLE ;数码管显示码表地址送DPTR MOV A,20H ;将显示计数位送入A SCAN0:

CJNE A,#0,SCAN1 ;判断是否显示第一位数码管 MOV A,21H ;将要显示的数据送入A

MOVC A,@A+DPTR ;查表将显示的数据转换成显示码 MOV P0,A ;将显示码送入数据口 SETB P1.0

CLR P1.0 ;开段控制线

MOV P0,#01H ;将显示的扫描位送入数据口 SETB P1.1

CLR P1.1 ;开位控制线 AJMP SCAN8 SCAN1:

CJNE A,#1,SCAN2 ;判断是否显示第二位数码管 MOV A,22H ;将要显示的数据送入A

MOVC A,@A+DPTR ;查表将显示的数据转换成显示码 MOV P0,A ;将显示码送入数据口 SETB P1.0

CLR P1.0 ;开段控制线

MOV P0,#02H SETB P1.1

CLR P1.1 AJMP SCAN8 SCAN2:

CJNE A,#2,SCAN3 MOV A,23H MOVC A,@A+DPTR MOV P0,A SETB P1.0

CLR P1.0 MOV P0,#04H SETB P1.1

CLR P1.1 AJMP SCAN8 SCAN3:

CJNE A,#3,SCAN4 MOV A,24H MOVC A,@A+DPTR MOV P0,A SETB P1.0

CLR P1.0 MOV P0,#08H SETB P1.1

CLR P1.1 AJMP SCAN8 SCAN4:

CJNE A,#4,SCAN5 MOV A,25H MOVC A,@A+DPTR MOV P0,A SETB P1.0

CLR P1.0 MOV P0,#10H SETB P1.1

CLR P1.1 AJMP SCAN8 SCAN5:

;将显示的扫描位送入数据口 ;开位控制线 ;判断是否显示第三位数码管 ;将要显示的数据送入A

;查表将显示的数据转换成显示码 ;将显示码送入数据口 ;开段控制线

;将显示的扫描位送入数据口 ;开位控制线 ;判断是否显示第四位数码管 ;将要显示的数据送入A

;查表将显示的数据转换成显示码 ;将显示码送入数据口 ;开段控制线

;将显示的扫描位送入数据口 ;开位控制线 ;判断是否显示第五位数码管 ;将要显示的数据送入A

;查表将显示的数据转换成显示码 ;将显示码送入数据口 ;开段控制线

;将显示的扫描位送入数据口 ;开位控制线 CJNE A,#5,SCAN6 ;判断是否显示第六位数码管 MOV A,26H ;将要显示的数据送入A

MOVC A,@A+DPTR ;查表将显示的数据转换成显示码 MOV P0,A ;将显示码送入数据口 SETB P1.0

CLR P1.0 ;开段控制线

MOV P0,#20H ;将显示的扫描位送入数据口 SETB P1.1

CLR P1.1 ;开位控制线 AJMP SCAN8 SCAN6:

CJNE A,#6,SCAN7 ;判断是否显示第七位数码管 MOV A,27H ;将要显示的数据送入A

MOVC A,@A+DPTR ;查表将显示的数据转换成显示码 MOV P0,A ;将显示码送入数据口 SETB P1.0

CLR P1.0 ;开段控制线

MOV P0,#40H ;将显示的扫描位送入数据口 SETB P1.1

CLR P1.1 ;开位控制线 AJMP SCAN8 SCAN7:

CJNE A,#7,SCAN8 ;判断是否显示第八位数码管 MOV A,28H ;将要显示的数据送入A

MOVC A,@A+DPTR ;查表将显示的数据转换成显示码 MOV P0,A ;将显示码送入数据口 SETB P1.0

CLR P1.0 ;开段控制线

MOV P0,#80H ;将显示的扫描位送入数据口 SETB P1.1

CLR P1.1 ;开位控制线 MOV 20H,#0 ;清0显示计数位 AJMP SCAN_END SCAN8:

INC 20H ;显示计数位加1,扫描下一位 SCAN_END:

POP PSW ;将PSW弹出堆栈 POP ACC ;将ACC弹出堆栈 RETI

TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H RET END

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务