
A26基于51单片机汇编语言8位数码管滚动显示器Proteus设计
8位数码管做成一块滚动屏:数字"12345678"从右往左慢慢滑过屏幕,滑完一遍停一下再来。核心是一个22字节的段码表——7个空白+8个数字+7个空白,靠"组号+位号"算出表内偏移,组号每0.4秒加1,画面就动一格。资料包含Proteus仿真文件和完整汇编源码。
一、设计实现功能
本设计功能简介:使用51单片机和汇编语言设计一个8位数码管滚动显示的proteus仿真,要求以下功能:
1、使用汇编语言编写程序。
2、8位共阴数码管,段码接P0,位选接P2。
3、显示内容"12345678",从右向左滚动,循环播放。
二、资源汇总
1、仿真文件:Proteus工程,7.8和8.6两个版本都能直接打开。
2、程序文件:main.asm汇编源码,以及编译好的cx.hex。
3、修改日期小工具:购买资料后赠送,用于修改文件创建日期,下载地址在文章最后。
三、设计介绍
拿到压缩包之后先解压,没有解压软件的直接搜"压缩",下载解压软件后先解压文件,再运行仿真和程序。
8位数码管段码接P0(共阴,高电平点亮),位选接P2的P2.0~P2.7。位选是"一个引脚管一位",P2的值直接就是当前要点亮第几位。
图1 Proteus仿真总览

先看段码表,它是整个滚动效果的根:
`asm
TABLE: DB 00H,00H,00H,00H,00H,00H,00H ;7个空白
DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH ;1 2 3 4 5 6 7 8
DB 00H,00H,00H,00H,00H,00H,00H ;7个空白`
一共22个字节:前面7个空白是"数字还没进屏幕",后面7个空白是"数字已经滑出去",中间8个是内容。为什么两边都是7而不是8?因为屏幕一次显示8位,最右和最左都填满需要滑过整整8格,留7个空白刚好让第一个字符从最右边进来、最后一个字符从最左边出去,首尾衔接不断档。
显示部分只做一次加法:
`asm
DISP: MOV A,DISP_CNT ;组号,0~14
MOV DPTR,#TABLE
MOV R0,P2 ;位选值=当前第几位(0~7)
ADD A,R0 ;组号+位号=表内偏移
MOVC A,@A+DPTR
MOV P0,A ;取段码送P0显示
LJMP DISP`
偏移=组号+位号,这是数码管滚动和点阵最大的不同:点阵是二维(行×列)要乘8,数码管是一维(8个位置排成一行),直接加就行。组号0时,第7位显示TABLE[7]='1',其余6位显示空白;组号1时整串往左挪一格,'1'到第6位……组号7时'1'已经到最左,'2'在最右,屏幕正好铺满"12345678"。
时间节奏全在中断里:
`asm
INT_T0: MOV TH0,#(65536-5000)/256
MOV TL0,#(65536-5000)MOD 256
INC P2 ;换下一位
MOV A,P2
CJNE A,#08H,RETUNE
MOV P2,#00H ;8位扫完一圈
INC TCNT ;圈数+1
MOV A,TCNT
CJNE A,#10,RETUNE ;10圈=0.4秒
MOV TCNT,#00H
INC DISP_CNT ;画面左移一格
MOV A,DISP_CNT
CJNE A,#15,RETUNE ;15格滑完一轮
MOV P2,#00H
MOV DISP_CNT,#00H
MOV TCNT,#00H
RETUNE: RETI`
| 层级 | 周期 | 作用 |
| 1位 | 5毫秒 | 动态扫描,8位轮一圈40ms(25Hz,不闪) |
| 1圈 | 8×5ms=40ms | 8位全扫一遍 |
| 1格 | 10圈=0.4秒 | 画面左移一格 |
| 1轮 | 15格=6秒 | 整串滑完一遍 |
想调速度只改一个数:CJNE A,#10 里的10改成20,滚动慢一倍;改成5快一倍。想换滚动内容就改中间那8个段码(共阴编码:0=3FH、1=06H、2=5BH、3=4FH、4=66H、5=6DH、6=7DH、7=07H、8=7FH、9=6FH)。想显示更长的内容,把表加长、CJNE A,#15 的15跟着改(表长-7)。
特别注意: 数字乱码或显示成奇怪符号,先确认数码管是共阴还是共阳——共阴用这套高电平点亮的段码,共阳要全部取反(06H→0F9H);只有一位在亮或者全都不亮,位选P2接反了或者数码管是共阳位选(低电平有效);滚动一顿一顿的不连续,把一位的5毫秒调小到2毫秒提高刷新率;滚动方向反了,把INC DISP_CNT改成DEC DISP_CNT并把初值设成14;显示内容缺字,检查段码表是不是漏了某个字节导致偏移错位。
四、日期修改
资料中提供修改日期的小工具,购买资料赠送修改文件创建日期的小工具,三个下载地址都在文章最后。
五、资料下载
付费后获取下载链接,直接下载到电脑上,然后解压即可!每个链接前面都配了二维码,手机扫码可以直接跳转。
/

