
A24基于51单片机汇编语言8X8点阵显示数字0-9Proteus设计
用51单片机驱动8×8 LED点阵,轮流显示数字0到9,每个数字停1秒。核心是列扫描+查表:定时器4毫秒中断一次,中断里送一列列码、再按"数字编号×8+列号"查出该列的8位行码,8列扫完就是一幅完整数字。字模表里10个数字共80个字节,想换字体改表就行。资料包含Proteus仿真文件和完整汇编源码。
一、设计实现功能
本设计功能简介:使用51单片机和汇编语言设计一个8X8点阵显示数字0-9的proteus仿真,要求以下功能:
1、使用汇编语言编写程序。
2、8×8 LED点阵的行线接P0、列线接P3,动态扫描显示。
3、依次循环显示数字0~9,每个数字显示1秒。
二、资源汇总
1、仿真文件:Proteus工程,7.8和8.6两个版本都能直接打开。
2、程序文件:main.asm汇编源码,以及编译好的cx.hex。
3、修改日期小工具:购买资料后赠送,用于修改文件创建日期,下载地址在文章最后。
三、设计介绍
拿到压缩包之后先解压,没有解压软件的直接搜"压缩",下载解压软件后先解压文件,再运行仿真和程序。
点阵的8根行线接P0,8根列线接P3。显示一个数字靠"扫":同一时刻只点亮一列,8列快速轮换,人眼看到的是整幅图。
图1 Proteus仿真总览

定时器0配置成方式1,4毫秒中断一次(12MHz):
| 参数 | 值 | 说明 |
| 定时时长 | 4毫秒 | 每列点亮时间 |
| 计数次数 | 4000 | 4ms ÷ 1μs |
| 计数初值 | 65536-4000=61536 | 即 0F060H |
| TH0 / TL0 | 0F0H / 60H | 61536=0xF060 |
| 整屏刷新 | 8×4ms=32ms | 刷新率约31Hz |
中断里做三件事:送列码、查行码、换下一列。
`asm
INT_T0: MOV TH0,#(65536-4000)/256
MOV TL0,#(65536-4000) MOD 256
MOV DPTR,#TAB ;列码表
MOV A,R_CNT ;R_CNT=当前列号0~7
MOVC A,@A+DPTR
MOV P3,A ;列码送P3(低电平选中)
MOV DPTR,#NUB ;字模表
MOV A,NUMB ;NUMB=当前数字0~9
MOV B,#8
MUL AB ;数字编号×8
ADD A,R_CNT ;+列号,得到字模偏移
MOVC A,@A+DPTR
CPL A ;行码取反(点阵行低电平点亮)
MOV P0,A ;行码送P0
INC R_CNT
MOV A,R_CNT
CJNE A,#8,NEXT
MOV R_CNT,#00H ;8列扫完回到第0列
NEXT: INC TCOUNT
MOV A,TCOUNT
CJNE A,#250,NEX ;250×4ms=1秒
MOV TCOUNT,#00H
INC NUMB
MOV A,NUMB
CJNE A,#10,NEX ;0~9循环
MOV NUMB,#00H
NEX: RETI`
这套"编号×8+列号"的查表法要记住,它是点阵显示的标准套路:字模表按数字顺序排列,每个数字占8个字节(8行),第n个数字第c列的数据就在表里 n*8+c 的位置。MUL AB 算乘法,MOVC A,@A+DPTR 按偏移取数,两条指令搞定二维查表。
列码表是逐位变低的循环码:
| 列号 | 列码 | 选中方式 |
| 0 | 0FEH | P3.0低 |
| 1 | 0FDH | P3.1低 |
| 2 | 0FBH | P3.2低 |
| 3 | 0F7H | P3.3低 |
| 4 | 0EFH | P3.4低 |
| 5 | 0DFH | P3.5低 |
| 6 | 0BFH | P3.6低 |
| 7 | 07FH | P3.7低 |
字模表前两个数字可以对照着看:
| 数字 | 8字节字模 | 说明 |
| 0 | 00,00,3E,41,41,41,3E,00 | 上下留空,中间一个方框 |
| 1 | 00,00,00,00,21,7F,01,00 | 中间一竖,底部一横 |
| 8 | 00,00,36,49,49,49,36,00 | 上下两个圈 |
每个字节的8个bit对应8列,1表示该点亮(代码里CPL A之后变成低电平点亮)。想显示汉字或者自定义图案,用取模软件按"阴码、逐列式、逆向"生成一批8字节数据替换NUB表即可,程序逻辑一行不用改。
特别注意: 点阵显示成乱码或者斜条纹,先查字模的取模方式(逐行还是逐列、顺向还是逆向),四种组合只有一种对;显示闪烁明显,把4毫秒改成2毫秒(初值65536-2000)提高刷新率;某一列常亮不灭,看该列对应的P3引脚是不是接错或者列码表算错;换数字时拖影,属于正常现象,扫描间隙加上消隐(送列码前先清P0)会更干净;Proteus里8×8点阵分共阴共阳两种型号,接反了会出现"负片"效果(该亮的灭、该灭的亮),把CPL A去掉或加上试试。
四、日期修改
资料中提供修改日期的小工具,购买资料赠送修改文件创建日期的小工具,三个下载地址都在文章最后。
五、资料下载
付费后获取下载链接,直接下载到电脑上,然后解压即可!每个链接前面都配了二维码,手机扫码可以直接跳转。
/

