历史上的今天
今天是:2026年01月12日(星期一)
2023年01月12日 | 用单片机AT89C51驱动两位数码管显示00--99依次循环程序代码
2023-01-12 来源:zhihu






;两位数码管显示00--99依次循环
org 0000h
a_bit equ 20h ;数码管个位数存放内存位置
b_bit equ 21h ;数码管十位数存放内存位置
temp equ 22h ;计数器数值存放内存位置
star: mov temp,#0 ;初始化计数器,从0开始
stlop: acall display;调用显示子程序
inc temp;对计数器加1
mov a,temp
cjne a,#100,next ;判断计数器是否满100?
mov temp,#0;满100就清零重新开始
next: ljmp stlop;不满就循环执行
;显示子程序
display: mov a,temp ;将temp中的十六进制数转换成10进制
mov b,#10 ;10进制/10=10进制
div ab
mov b_bit,a ;十位在a
mov a_bit,b ;个位在b
MOV DPTR,#NUMTAB;指定查表启始地址
mov r0,#4
dpl1: mov r1,#250 ;
dplop: mov a,a_bit ;取个位数
MOVC A,@A+DPTR ;查个位数的7段代码
mov p0,a ;送出个位的7段代码
clr p2.7 ;开个位显示
acall d1ms ;显示162微秒
setb p2.7;关闭个位显示,防止鬼影
mov a,b_bit ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
mov p0,a ;送出十位的7段代码
clr p2.6 ;开十位显示
acall d1ms ;显示162微秒
setb p2.6;关闭十位显示,防止鬼影
djnz r1,dplop ;循环执行250次
djnz r0,dpl1 ;循环执行250X4=1000次
ret
;2+2X80=162微秒,延时按12MHZ计算
D1MS: MOV R7,#80
DJNZ R7,$
RET
;实验板上的7段数码管0~9数字的共阴显示代码
NUMTAB:DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH
end
上一篇:单片机点灯(点亮、闪烁、流水灯)
史海拾趣
|
我买了个射频收发模块,它自带的数字手册上有它的CRC校验程序如下: An example implementation of CRC calculation on a message is shown next // Definitions for CRC constants #define MSG_CRC_INIT(0xFFFF) #define MSG_CCITT_CRC_POLY(0 ...… 查看全部问答> |
|
4G SD卡开机识别问题~ 有时候能显示盘符,有时候显示不了. 平台 pxa270+wince6.0 显示使用4G SD卡,存在一个奇怪识别问题 有时候开机能显示盘符,有时候显示不了, 如果显示不了. 不过进入系统后再重新插拔一次, 又可以显示及正常使用 2G卡不存在这个问题 看开机过程输出信息, 已经检测到4G卡插入 … 查看全部问答> |
|
修改files下的platform.reg,但是在release下的platform.reg没有的到正确更新。sysgen和copy files都试过了。 D:\\1afc58e7.bmp 这是files下的注册表信息。 但通过copy files 以后得到的结果却是 D:\\8e911ff8.bmp… 查看全部问答> |
|
我是个初学者,看了一本关于WINCE的书,但还有很多疑问 第一个问题,想问下,PB4.2到底是用来做什么的?它的应用步骤是什么啊? 第二个问题想请问大家,如何让2410上的WINCE旋转90度? 网上都说的很笼统,而且都是一样的,我操作上比较困难 … 查看全部问答> |
|
求教!本人初学,自己想DIY一个六通道无线遥控器,为此专门买了块51的学习板(快赶上一个遥控器价格了),主要是想动手做,计划使用两块51cpu+RF模块完成收发功能,但这样是成本是不是太高,外面卖的遥控器都用什么芯片!… 查看全部问答> |




