点阵 LED 显示设计实验

news/2025/3/15 1:25:28/

一、实验目的:

1.了解LED点阵的基本结构。

2.学习LED点阵扫描显示程序的设计方法。

二、实验内容与要求:

编写程序,控制点阵向上卷动显示“原来如此是这样呀”。

三、实验环境:

PC机一台,TD-PITE实验装置一套。

四、实验步骤

1.连接电路图。

2.编写实验程序,检查无误后,编译、链接并装入系统。

3.运行实验程序,观察点阵的显示,验证程序功能。

4.固化实验程序,然后脱机运行。

5.自己可以设计实验,使点阵显示不同的符号

6.字符提取方法:将HZDotReader文件拷贝到硬盘上运行程序,设置“取模字体”,设置“取模方式”,选择“输出设置”设置输出格式,点击“字”按钮输入“原来如此是这样呀”得到输入字符的点阵编码以及对应的汉字显示对点阵进行编辑,保存点阵文件为dot格式,使用word软件打开保存文件将字符复制到自己的程序中。

五、电路连接

六、代码设计

1.关于字数

BG0:    MOV AX, 112MOV SI, OFFSET HZDOTht

总共有8个字,每个字需要有32个字节用来显示,由于最后一个字显示后就回重新显示,所以AX的值为32*4-1/2=112

2.关于程序设计思想

首先,通过伪指令操作定义端口,其中CS1、CS2分别定义为0~7、8~15行控制端口,CS3、CS4分别定义为0~7、8~15列控制端口,再定义一个256位的字型存储空间。然后再利用包含伪指令INCLUDE来指明包含的显示符号的编码,共由176行、16列组成,这个数字矩阵可根据不同的数字而改变,这也是程序编写的关键。对各端口进行初始化,及各行各列进行初始化,最初使行为“0”,列为“1”,满足灯亮的初始条件。

其次,进入程序主体,开始进行编程。计开始外循环次数为112,利用源变址指针寄存器开始进如循环。通过调用子程序进行内部循环,把点阵显示单元分成四个模块。第一部分内循环是执行前两个模块的数字矩阵操作,从0行到7行的全部列的编写。需要考虑灯亮的条件,即行为0,列为1,就给行赋0值,使行满足条件,因此紧接着需要列的条件,如果某列能够满足条件,则此交点的灯亮。否则,灯不亮。完成一个模块的一行后,开始让指针执行加一操作,从而进入下一个模块的行操作。同理,依次执行循环操作,完成前两个模块的任务。调用子程序进行延时操作,使汉字显示的时间合理。接着进行内部外循环操作,再次进行上述语句命令完成字体在前两个模块的显示情况。然后就是执行后两个模块的语句操作。原理同前两个模块的操作命令。

我们也可以人为的控制汉字移动速度和持续时间,即改变外循环次数值,值越小移动越快。

七、实验现象

依次输入“原来如此是这样呀”之后循环

附录 代码

============================================================
; 文件名称: LED16.ASM 
; 功能描述: 
;     行: CS1(600H), CS2(640H)  列: CS3(680H), CS4(6C0H)
;============================================================
ROW1        EQU 0600H           ;端口定义IOY0
ROW2        EQU 0640H           ;端口定义IOY1
COL1        EQU 0680H           ;端口定义IOY2
COL2        EQU 06C0H           ;端口定义IOY3
STACK1  SEGMENT STACKDW 256 DUP(?)
STACK1  ENDS
;定义为数据段
INCLUDE HZDOTht.ASM         ;数据字段为汉字点阵库, 在HZDOTht.ASM文件中        
CODE    SEGMENTASSUME  CS:CODE, DS:DATA
START:  MOV AX, DATAMOV DS, AXMOV DX, ROW1MOV AL, 00HOUT DX, ALMOV DX, ROW2OUT DX, ALMOV AL, 0ffHMOV DX, COL1OUT DX, ALMOV DX, COL2OUT DX, ALBG0:    MOV AX, 112MOV SI, OFFSET HZDOTht
BG1:    CALL DISPADD SI, 2DEC AXJZ BG0JMP BG1
;======显示汉字子程序======
;入口参数: SI = 存放汉字起始地址    
DISP:   MOV CX, 000FHPUSH AX     
ML0:    PUSH CXMOV BL, 01HMOV CX, 0008H
ML1:    MOV DX, ROW1            ;控制0--7行MOV AL, 00HOUT DX, ALMOV AL, [SI]NOT ALMOV DX, COL1            ;0--7列OUT DX, ALINC SIMOV AL, [SI]NOT ALMOV DX, COL2            ;8--15列OUT DX, ALINC SIMOV DX, ROW1            ;控制0--7行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAYLOOP ML1MOV DX, ROW1MOV AL, 00HOUT DX, ALMOV CX, 0008H
ML2:    MOV DX, ROW2            ;控制8--15行MOV AL, 00HOUT DX, ALMOV AL, [SI]NOT ALMOV DX, COL1            ;0--7列OUT DX, ALINC SIMOV AL, [SI]NOT ALMOV DX, COL2            ;8--15列OUT DX, ALINC SIMOV DX, ROW2            ;控制8--15行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAYLOOP ML2MOV DX, ROW2MOV AL, 00HOUT DX, ALSUB SI, 32POP CXLOOP ML0POP AXRET 
DELAY:  PUSH CX             ;延时子程序MOV CX, 0100H
DL1:    PUSH AXPOP AXLOOP DL1POP CXRET     CODE    ENDSEND START

;本文件为16×16点阵中文字库文件,字的横向8点构成一字节,
;左边点在字节的低位,字符点阵四角按左上角→右上角→左下
;角→右下角取字
CD4AD  EQU  00000H;原 
CC0B4  EQU  CD4AD+1;来 
CC8E7  EQU  CC0B4+1;如 
CB4CB  EQU  CC8E7+1;此 
CCAC7  EQU  CB4CB+1;是 
CD5E2  EQU  CCAC7+1;这 
CD1F9  EQU  CD5E2+1;样 
CD1BD  EQU  CD1F9+1;呀 DATA    SEGMENT;原   CD4AD
DB 000H,000H,03FH,0FEH,020H,080H,021H,000H
DB 027H,0F0H,024H,010H,024H,010H,027H,0F0H
DB 024H,010H,024H,010H,027H,0F0H,020H,080H
DB 024H,090H,048H,088H,052H,084H,081H,000H;来   CC0B4
DB 001H,000H,001H,000H,001H,000H,07FH,0FCH
DB 001H,000H,011H,010H,009H,010H,009H,020H
DB 0FFH,0FEH,003H,080H,005H,040H,009H,020H
DB 031H,018H,0C1H,006H,001H,000H,001H,000H;如   CC8E7
DB 010H,000H,010H,000H,010H,000H,010H,07CH
DB 0FEH,044H,022H,044H,022H,044H,022H,044H
DB 042H,044H,024H,044H,014H,044H,008H,044H
DB 014H,044H,022H,07CH,042H,044H,080H,000H;此   CB4CB
DB 004H,040H,004H,040H,004H,040H,024H,044H
DB 024H,048H,027H,050H,024H,060H,024H,040H
DB 024H,040H,024H,040H,024H,040H,024H,042H
DB 02FH,042H,0F0H,042H,040H,03EH,000H,000H;是   CCAC7
DB 01FH,0F0H,010H,010H,010H,010H,01FH,0F0H
DB 010H,010H,010H,010H,01FH,0F0H,000H,000H
DB 0FFH,0FEH,001H,000H,011H,000H,011H,0F8H
DB 011H,000H,029H,000H,045H,000H,083H,0FEH;这   CD5E2
DB 000H,080H,020H,040H,010H,040H,017H,0FCH
DB 000H,010H,002H,010H,0F1H,020H,010H,0A0H
DB 010H,040H,010H,0A0H,011H,010H,012H,008H
DB 014H,008H,028H,000H,047H,0FEH,000H,000H;样   CD1F9
DB 011H,004H,010H,084H,010H,088H,010H,000H
DB 0FBH,0FEH,010H,020H,030H,020H,039H,0FCH
DB 054H,020H,050H,020H,093H,0FEH,010H,020H
DB 010H,020H,010H,020H,010H,020H,010H,020H;呀   CD1BD
DB 000H,000H,003H,0FCH,078H,010H,049H,010H
DB 049H,010H,049H,010H,04AH,010H,04BH,0FEH
DB 048H,030H,048H,050H,078H,090H,049H,010H
DB 002H,010H,004H,010H,000H,050H,000H,020HDATA    ENDS        


http://www.ppmy.cn/news/890170.html

相关文章

小家电LED显示驱动多功能语音芯片IC方案 WT2003H4 B002

随着时代的进步,智能家电的普及已经成为了一个趋势。而在智能家电中,LED显示屏也成为了不可或缺的一部分。因此,在小家电的设计中,LED显示驱动芯片的应用也越来越广泛。比如:电饭煲、电磁炉、数字时钟、咖啡机、电磁炉…

单片机控制LED数码管的显示

首先我们说说LED数码管的显示原理。 LED数码管是常见的显示器件。LED数码管为“8”字形的,其计8段(包括小数点段在内)或7段(不包括小数点段),每一段对应一个发光二极管,有共阳极和共阴极两种,如图所示。共阳极LED数码管的阳极连接在一起&…

基于springboot+Redis的前后端分离项目(九)-【黑马点评】

🎁🎁资源文件分享 链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwdeh11 提取码:eh11 附近的商户、用户签到、UV统计 (一)附近的商户1.附近商户-GEO数据结构的基本用法2.附近商户-导入店铺数据到…

后端表情包依赖+自定义注解实现校验

开发过程中遇到小程序登记信息填写文本时可能输入表情包&#xff0c;需要后端校验 由于字段太多&#xff0c;所以用自定义注解的方式来实现 步骤1:在pom文件中加入表情包依赖 <dependency><groupId>com.vdurmont</groupId><artifactId>emoji-java<…

网球规则

文章目录 三级计分体系小分和发球局局盘 三级计分体系 小分局盘563 小分和发球局 一般裁判以抛掷硬币等方式决定那方选手先发球。 发球选手需要在右端底线之外&#xff0c;向对方1号区发球&#xff0c;有两次发球机会&#xff0c;发球成功或者double发球失误后&#xff0c;移…

关于网球的要点

侧旋发球先挥拍再转肩 平击发球先转肩再挥拍 上旋发球直接出去 发球练习 1.球拍在腰部高度切球底部 2.球拍做好敬礼姿势&#xff0c;挥拍击打球的3点位置&#xff0c;然后停住 3.球拍做好敬礼姿势&#xff0c;从7点打向1点&#xff0c;停住 4.球拍做好敬礼姿势&#xff0…

打网球初体验

这一二年光景&#xff0c;体重渐涨&#xff0c;自己都要看不下去了。老伴更是看不下去&#xff0c;这周末又拉着我打网球了。 网球场还挺大。看旁边人打的满头大汗&#xff0c;感觉打网球很累啊&#xff0c;顿时犯懒了。但是来都来了&#xff0c;硬着头皮上。 网球拍还是很有…

走近网球运动·与棒球相似的体育项目·第一堂棒球课

网球&#xff08;Tennis&#xff09;&#xff0c;是球类运动项目之一。有效网球运动场地是一个长方形&#xff0c;长为23.77米&#xff0c;单打场地宽为8.23米&#xff0c;双打场地宽为10.97米。中间隔有网&#xff0c;比赛双方各占球场的一方&#xff0c;球员用网球拍击球。 网…