题目:用两个动态数码管从0显示到60,由89C51的P1口输出,不加译码器,直接连接数码管,注意是动态数码管,不是两个单独的静态数码管。
;=====================================
程序如下:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: ;开始初始化
MOV DPTR,#TAB ;表首址送DPTR
MOV R1, #0
MOV R2, #0
;-------------------------------------------------------
M1:
MOV R0, #50
LOOP:
CALL DIS
DJNZ R0, LOOP ;循环显示80遍,约用1.6s
;-------------------------------------------------------
MOV A, R3 ;这是计数值
ADD A, #1
DA A ;变成 BCD 码,即:00~99H
CJNE A, #60H, SSS
CLR A
SSS:
MOV R3, A ;计数值分解.
MOV B, #16
DIV AB ;分成高、低四位
MOV R2, A ;准备去显示
MOV R1, B
SJMP M1 ;转到前面,显示80遍
;-------------------------------------------------------
DIS: ;显示程序.
MOV A, R2 ;显示十位.
MOVC A, @A+DPTR
CLR P2.1
MOV P1, A
SETB P2.0 ;十位的位选.
CALL DLY
MOV A, R1 ;个位显示.
MOVC A, @A+DPTR
CLR P2.0 ;关闭十位的显示.
MOV P1, A
SETB P2.1 ;个位的位选.
CALL DLY
RET
;------------------------------
TAB: DB 0xc0,0xf9,0xa4,0xb0,0x99 ;共阳极段码 0~4
DB 0x92,0x82,0xf8,0x80,0x90 ;共阳极段码 5~9
;-------------------------------------------------------
DLY: MOV R6, #20 ;10ms延时.
D1: MOV R7, #248
DJNZ R7, $
DJNZ R6, D1
RET
;-------------------------------------------------------
上述程序运行的效果图如下:
上一篇:四个按键控制四个数字递增
下一篇:C51单片机的压缩BCD码相加程序
推荐阅读最新更新时间:2024-03-16 16:02
设计资源 培训 开发板 精华推荐
- 科学家研发基于AI的身份验证工具 可保护车辆免受网络攻击威胁
- Microchip推出广泛的IGBT 7 功率器件组合,专为可持续发展、电动出行和数据中心应用而设计
- 面向未来驾驶体验 博世推出新型微电子技术
- 英飞凌与马瑞利合作 利用AURIX™ TC4x MCU系列推动区域控制单元创新
- 5C超充,该怎么卷?
- 《2025年度中国汽车十大技术趋势》正式揭晓!你最看好哪个?
- Microchip推出新型VelocityDRIVE™软件平台和车规级多千兆位以太网交换芯片,支持软件定义汽车
- 英特尔中国正式发布2023-2024企业社会责任报告
- can转485数据是如何对应的
- MCU今年的重点:NPU和64位