点阵广告牌设计原理及预案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设计题目
点阵滚动广告牌
二、设计内容
(1)利用单片机I/O口或以扩展锁存器的方式操纵点阵显示。
(2)掌握单片机与16×16点阵块之间接口电路设计及编程。
(3)利用实验系统16×16点阵实验单元,要求编制程序实现汉字点
阵从下倒上滚动循环显示。
三、设计原理及方案
1、硬件设计原理图
实验线路连接:
(1)关于后缀名含有“H”的机型,按实验电路图连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能操纵输入端G与位于地址线A0引出孔所在位置下方的使能操纵输出端G作对应连接,该端的寻
址范围为0FFE0H~0FFFFH。
(2)用一8芯扁平电缆把点阵单元总线接口与系统单元总线(D0~D7)任一接口相连。
(3)用一根双头实验线把点阵单元的片选信号CS插孔与译码输出插孔Y0相连。
(4)用一根双头实验线把点阵单元的写信号WR插孔与系统操纵信号插孔WR相连。
硬件电路图:
2、软件设计流程图
四、设计方案源程序
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
ORG 3AD2H
;=============================================================== =====
HE14: JMP START
LED0 equ 0ffe3h ;列代码高段(字形)高八位接口地址
LED1 equ 0ffe0h ;列代码低段(字形)低位接口地址
JED0 equ 0ffe2h ;行扫描高段(字位)高八位接口地址JED1 equ 0ffe1h ;行扫描低段(字位)低八位接口地址
;====================================================== START: JMP XB13
;===================================================
x01a: mov BUF+2,00h ;清列值
x023: mov bx,OFFSET BUF ;取列值
mov al,02h
xlat
cmp al,10h ;减16(十进制数)
jc x0d2 ;末满16列接着扫描下一列
ret ;本次扫描完毕返回主程序
x0d2: MOV dx,0002H
MOV ah,00h
MUL dx ;当前列乘02
mov cx,ax
call xb1f
;=== 送扫描代码 ==
mov dx,led0 ;列代码送高八位锁存器
MOV DX,led1 ;列代码送低八位锁存器 mov al,ah
OUT DX,Al
;=== 取行代码 ==
mov bx,offset buf
mov al,02h
xlat
inc al
mov BUF+2,al ;列指针加1
mov ah,00h
mov cx,ax
mov al,01h
jmp x083
x07e: SAL ax,1
x083: loop x07e
mov dx,jed0 ;行代码送高八位锁存器 OUT DX,AL
MOV DX,jed1 ;行代码送低八位锁存器
OUT DX,Al
mov cx,0040h ;当前行锁定显示250u秒 loop $
mov al,00h ;关闭显示
mov dx,jed0
out dx,al
mov dx,jed1
OUT dx,al
jmp x023 ;接着下1行
;============================================
x097: mov al,00h ;关闭显示
mov dx,jed0
out dx,al
mov dx,jed1
OUT dx,al
;============
x0a0: mov al,00h ;清扫描个数寄存器
mov BUF+3,al ;从第一个开始
x0a2: mov bx,OFFSET buf ;取当前扫描个数
mov al,03h
xlat
cmp al,16h ;减16(十进制数)
jnc x0a0 ;满16个返回从第一个开始 ;===========================
MOV ah,00H
mov dx,0020h
mul dx
mov bx,OFFSET stls
add ax,bX
mov BUF,aL
MOV BUF+1,AH
;===========================
mov al,00h ;清扫描次数寄存器
mov BUF+4,al
x0bd: mov bx,OFFSET buf ;取当前扫描个数
mov al,04h
xlat
cmp al,64h ;减64(十进制数)
jnc x0cf
;==========================
call x01a ;扫描显示当前字体
;==========================
mov bx,OFFSET buf ;扫描次数加1
mov al,04h
xlat
inc al
mov BUF+4,al
jmp x0bd
;=============================
x0cf: mov bx,OFFSET BUF ;扫描个数加1
mov al,03h
xlat
inc al
mov BUF+3,al
jmp x0a2
;===============================================================