资源描述
一、设计题目
点阵滚动广告牌
二、设计内容
(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 ;列代码送高八位锁存器
OUT DX,AL
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 ;行代码送低八位锁存器
mov al,ah
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
;============================================================================
STLS:
;欢
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,80H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,80H,00H,80H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,80H,00H,80H,0FCH,80H
DB DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,80H,00H,80H,0FCH,80H,04H,0FCH
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,80H,00H,80H,0FCH,80H,04H,0FCH,45H,04H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,80H,00H,80H,0FCH,80H,04H,0FCH,45H,04H,46H,48H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,80H,00H,80H,0FCH,80H,04H,0FCH,45H,04H,46H,48H,28H,40H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,80H,00H,80H,0FCH,80H,04H,0FCH,45H,04H,46H,48H,28H,40H,28H,40H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,80H
DB 00H,80H,0FCH,80H,04H,0FCH,45H,04H,46H,48H,28H,40H,28H,40H,10H,40H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,80H,00H,80H
DB 0FCH,80H,04H,0FCH,45H,04H,46H,48H,28H,40H,28H,40H,10H,40H,28H,40H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,80H,00H,80H,0FCH,80H
DB 04H,0FCH,45H,04H,46H,48H,28H,40H,28H,40H,10H,40H,28H,40H,24H,0A0H
DB 00H,00H,00H,00H,00H,00H,00H,00H, 00H,80H,00H,80H,0FCH,80H,04H,0FCH
DB 45H,04H,46H,48H,28H,40H,28H,40H,10H,40H,28H,40H,24H,0A0H,44H,0A0H
DB 00H,00H,00H,00H,00H,00H,00H,80H,00H,80H,0FCH,80H,04H,0FCH,45H,04H
DB 46H,48H,28H,40H,28H,40H,10H,40H,28H,40H,24H,0A0H,44H,0A0H,81H,10H
DB 00H,00H,00H,00H,00H,80H,00H,80H,0FCH,80H,04H,0FCH,45H,04H,46H,48H
DB 28H,40H,28H,40H,10H,40H,28H,40H,24H,0A0H,44H,0A0H,81H,10H,01H,08H
DB 00H,00H,00H,80H,00H,80H,0FCH,80H,04H,0FCH,45H,04H,46H,48H,28H,40H
DB 28H,40H,10H,40H,28H,40H,24H,0A0H,44H,0A0H,81H,10H,01H,08H,02H,0EH
;迎
DB 00H,00H,41H,84H,26H,7EH,14H,44H,04H,44H,04H,44H,0F4H,44H,14H,0C4H
DB 15H,44H,16H,54H,14H,48H,10H,40H,10H,40H,28H,46H,47H,0FCH,00H,00H
;光
DB 01H,00H,21H,08H,11H,0CH,09H,10H,09H,20H,01H,04H,0FFH,0FEH,04H,40H
DB 04H,40H,04H,40H,04H,40H,08H,40H,08H,42H,10H,42H,20H,3EH,40H,00H
;临
DB 10H,80H,10H,80H,51H,04H,51H,0FEH,52H,00H,54H,80H,58H,60H,50H,24H
DB 57H,0FEH,54H,44H,54H,44H,54H,44H,54H,44H,14H,44H,17H,0FCH,14H,04H
;嘉
DB 01H,08H,7FH,0FCH,01H,00H,3FH,0F8H,00H,00H,1FH,0F0H,10H,10H,1FH,0F0H
DB 04H,44H,0FFH,0FEH,10H,08H,7EH,0FCH,12H,88H,12H,88H,2AH,0F8H,44H,88H
;兴
DB 02H,00H,02H,08H,21H,08H,11H,10H,19H,10H,09H,20H,00H,20H,00H,44H
DB 0FFH,0FEH,00H,00H,00H,00H,04H,40H,0CH,20H,10H,18H,20H,0CH,40H,04H
;学
DB 22H,08H,11H,08H,11H,10H,00H,20H,7FH,0FEH,40H,02H,80H,04H,1FH,0E0H
DB 00H,40H,01H,84H,0FFH,0FEH,01H,00H,01H,00H,01H,00H,05H,00H,02H,00H
;院
DB 00H,80H,78H,40H,4FH,0FEH,54H,02H,58H,14H,63H,0F8H,50H,00H,48H,08H
DB 4FH,0FCH,48H,0A0H,68H,0A0H,50H,0A0H,41H,22H,41H,22H,42H,1EH,4CH,00H
;!
DB 00H,00H,00H,00H,00H,00H,00H,00H,10H,00H,10H,00H,10H,00H,10H,00H
DB 10H,00H,10H,00H,10H,00H,10H,00H,10H,00H,00H,00H,10H,00H,00H,00H
;=====================================================================
xb13: MOV CX,0000H
MOV AX,0000H
MOV BX,OFFSET STLS ;取汉字表首址
MOV AX,BX
MOV BUF,AL
MOV BUF+1,AH ;存汉字表指针单元
JMP X097
;=========取与当前列对应的汉字代码=============
XB1F: MOV BX,OFFSET BUF ;取当前汉字首址
MOV AX,[BX]
ADD AX,CX ;当前汉字首址加列值
MOV BX,AX
MOV AX,[BX] ;取当前列扫描代码
;==================
MOV Bl,00H
MOV Cl,Al
ROL CL,1
JNC XB_0
OR BL,01h
XB_0: ROL CL,1
JNC XB_2
or bl,02h
XB_2: ROL CL,1
JNC XB_3
or bl,04h
XB_3: ROL CL,1
JNC XB_4
or bl,08h
XB_4: ROL CL,1
JNC XB_5
or bl,10h
XB_5: ROL CL,1
JNC XB_6
or bl,20h
XB_6: ROL CL,1
JNC XB_7
or bl,40h
XB_7: ROL CL,1
JNC XB_8
or bl,80h
XB_8: mov al,bl
ret
;==============================================
BUF DB ?,?,?,?,?,?
CODE ENDS
END HE14
五、设计实施结果
当实验程序装载完毕,实验运行时,“欢迎光临嘉兴学院”字样在点阵显示模块上从下向上移动,并循环显示。
六、总结
以前我学习汇编语言时感觉很有难度。当知道要做课程设计的时候心里面感觉有些害怕和担心, 担心自己不会或者做不好。但是当真的要做的时候也只好进自己作大的努力去做。我在这个过程中有很多自己的感受,那就是感觉汇编语言真的是很神奇,街上的滚动广告牌我自己竟也能设计出来。我们从开始的担心和害怕渐渐变成了享受,看着自己做出来的东西,心里面的感觉真的很好。虽然我们做的东西都还很简单,但是毕竟是我们自己亲手,很有成就感。
微机原理课程设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。这次课程设计让我对实验台有了足够的了解,让我知道了实验台上各个模块的用法;而且它还让我们对自己动手写程序来控制实验台的运作有了一定的基础。虽然实验台只是一个小型的模拟平台,但是通过对它的学习和操作,我们对有关接口的知识将会有一个更广泛的认识,而且它对我们以后的学习也会有帮助的。
实验是需要配合的,我们两个人合作默契,做事的效率就高了很多。虽然有时候会为了一些细节争论不休,但最后得出的总是最好的结论。而且实验也教会我们在团队中要善于与人相处,与人共事,不要一个人解决所有问题。
总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了,微机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程,最后还提高了自己的动手能力。感谢老师的悉心指导。
七、参考文献
[1] 侯晓霞,微型计算机原理及应用[M],化学工业出版社,2007
[2] 杨文显,现代微型计算机与接口教程[M],清华大学出版社,2003
[3] 陆红伟, 微机原理实验与课程设计指导书[M],中国电力出版社,2006年
[4] 顾滨,8086微型计算机组成、原理及接口[M],机械工业出版社,2001
[5] 戴梅萼,微型计算机技术及应用[M],清华大学出版社,2005
展开阅读全文