A25基于51单片机汇编语言独立按键8X8点阵显示字符Proteus设计
作者:单片机仿真   类别:51单片机仿真    日期:2026-10-22 10:36:17    阅读:19 次   消耗积分:5 分

image.png

A25基于51单片机汇编语言独立按键8X8点阵显示字符Proteus设计

A24是点阵自动轮播数字,A25换成手动:独立按键按一次换一幅图,三幅自定义字符循环切换。扫描部分和A24同源(定时器4毫秒中断、列码+字模二维查表),区别在于显示内容由按键次数决定,按键处理里加了消抖和等抬起。资料包含Proteus仿真文件和完整汇编源码。

一、设计实现功能

本设计功能简介:使用51单片机和汇编语言设计一个独立按键控制8X8点阵显示字符的proteus仿真,要求以下功能:

1、使用汇编语言编写程序。

2、8×8 LED点阵行线接P0、列线接P3,动态扫描显示。

3、独立按键接P1.7,每按一次切换一幅字符图形,按三次回到第一幅。

二、资源汇总

1、仿真文件:Proteus工程,7.8和8.6两个版本都能直接打开。

2、程序文件:main.asm汇编源码,以及编译好的cx.hex。

3、修改日期小工具:购买资料后赠送,用于修改文件创建日期,下载地址在文章最后。

三、设计介绍

拿到压缩包之后先解压,没有解压软件的直接搜"压缩",下载解压软件后先解压文件,再运行仿真和程序。

硬件和A24一样:点阵行线P0、列线P3,多了个按键接P1.7(低电平有效)。字模表GRAPH里放了三组数据,每组8个字节,一组就是一幅图。

图1 Proteus仿真总览

仿真原理图

扫描中断和A24是同一套骨架,只是字模表换成GRAPH,偏移量用按键次数NUMB:

`asm
INT_T0: MOV TH0,#(65536-4000)/256
MOV TL0,#(65536-4000) MOD 256
MOV DPTR,#TABLE ;列码表
MOV A,R_CNT
MOVC A,@A+DPTR
MOV P3,A
MOV DPTR,#GRAPH ;字符字模表
MOV A,NUMB ;NUMB=第几次按键
MOV B,#8
MUL AB ;按键次数×8
ADD A,R_CNT ;+当前列号
MOVC A,@A+DPTR
CPL A ;行码取反
MOV P0,A
INC R_CNT
MOV A,R_CNT
CJNE A,#8,RETUNE
MOV R_CNT,#00H
RETUNE: RETI
`

按键处理这一段值得逐行看,它把"消抖—启动—等抬起—计数"四步写全了:

`asm
WAIT: JB KEY,$ ;1. 等按键按下
CALL DELAY ;2. 延时消抖(20×250次空循环)
JB KEY,$ ;3. 再确认一次,还是低才算真按下
SETB TR0 ;4. 启动扫描
MOV IE,#82H
JNB KEY,$ ;5. 等按键抬起,防止一次按压换好几幅
MOV R_CNT,#00H ;6. 复位列号,新图从第0列开始扫
CLR TR0 ;7. 停扫描
INC NUMB ;8. 按键次数+1
MOV A,NUMB
CJNE A,#3,WAIT ;9. 不到3次继续等
LJMP START ;10. 满3次回到第一幅
`

步骤作用少了会怎样
延时+二次判断滤掉机械抖动按一下跳两三幅图
等抬起一次按压只算一次按住不放会连续切换
R_CNT清零新图从第一列开始扫新图从中间开始,出现错位
NUMB对3取模三幅图循环按到第4次跑飞或显示乱码

关于第7步的CLR TR0:这是源码的原始写法,扫描只在按键按下期间进行,松手后画面停在最后一次刷新的那一列。想改成松手后保持整幅显示,把这行CLR TR0删掉(或改成注释),定时器会一直扫描,显示就不会停——这是改动成本最低、效果最明显的一处优化,建议你先按原版跑通,再动手改成常显示。

字模换算方法和A24完全一致,想换图只需要替换GRAPH里的数据:每幅图8个字节,每个字节的8个bit对应8列,1表示点亮(代码里CPL A后变低电平)。用取模软件生成时选"阴码、逐列式、逆向",和这份表就对得上。

特别注意: 按一次换好几幅,是消抖延时太短,把DELAY里R6的值从20加大到40;按键完全没反应,先确认接的是P1.7而不是P1.0~P1.6(代码里KEY定义成P1.7);画面只亮一列或者松手就黑,就是上面说的TR0被关掉,删掉CLR TR0即可;图形上下颠倒或左右镜像,把字模的取模方向换一下重新生成;按到第三次以后画面错乱,检查CJNE A,#3,WAIT这句,NUMB满3必须跳回START清零。

四、日期修改

资料中提供修改日期的小工具,购买资料赠送修改文件创建日期的小工具,三个下载地址都在文章最后。

五、资料下载

付费后获取下载链接,直接下载到电脑上,然后解压即可!每个链接前面都配了二维码,手机扫码可以直接跳转。

/

版权所有,转载本站文章请注明出处:proteus单片机
上一篇:A24基于51单片机汇编语言8X8点阵显示数字0-9Proteus设计
下一篇:A26基于51单片机汇编语言8位数码管滚动显示器Proteus设计
${comment['nickname']}   ${comment['createtime']}
  
       
${comment.content}
${reply.nickname} 回复 ${comment.nickname}    ${reply.createtime}
     
  
回复内容:${reply.content}