倒计时显示几何图形.docx
《倒计时显示几何图形.docx》由会员分享,可在线阅读,更多相关《倒计时显示几何图形.docx(15页珍藏版)》请在冰豆网上搜索。
倒计时显示几何图形
华北科技学院
《接口技术》
课程设计报告
班级:
姓名:
设计题目:
倒计时显示几何图形
设计时间:
2011-6-4至2011-6-15
指导教师:
评语:
___________________________________________
___________________________________________
___________________________________________
___________________________________________
评阅成绩:
____评阅教师:
______
《接口技术》课程设计报告
课设地点:
接口实验室2012年06月15日
设计题目
倒计时显示几何图形
一、设计目的
1、了解数码显示管理的原理。
2、熟悉8255a并行接口的各种工作方式和详细应用。
3、掌握七段数码管的基本显示原理。
4、熟悉8253定时计数的基本原理。
二、设备与环境
PC兼容机、Windows操作系统、HQFC集成开发环境、TPC-386EM实验箱。
三、设计内容
(一)设计原理图
(二)、总体设计
该实验是倒计时显示几何图形,在TPC-2003A教学机上用到了两块芯片:
芯片8255a和芯片8253。
运用了8255a的基本型输入输出功能实现信息的输入与输出,以及8253的定时功能实现了倒计时的功能,倒计时间在七段数码管显示。
U168*8LED实现显示几何图形的功能,通过8*8各点的0/1显示不同的几何图形。
(三)、详细设计
本实验分成两个部分,一部分是倒计时的设计,另一部分是几何图形的显示,他们共同完成了倒计时现实几何图形的功能,试验运行时,倒计时为9秒,在七段数码管显示,当到计时减到0时,8*8LED就会出现几何图形。
倒计时主要由芯片8255和芯片8253还有七段数码管显示来共同完成;而现实几何图形重要就是由控制端口控制U168*8LED灯的亮与灭来完成。
第一部分:
倒计时的功能。
并行I/O接口芯片8255a有两个控制字:
方式选择控制字和C口按位置0/置1控制字。
本实验用到了方式控制字,该控制字可以分别确定A口和B口的工作方式。
C口分成两部分,高四位随A口构成A组;低四位随B口构成B组。
该芯片有三种工作方式:
方式0是基本型输入输出;方式1是选通行输入输出;方式三双向数据转送方式。
本实验工作在方式0的基本输入输出来控制输入输出信号,在这种工作方式下,端口与外设之间无需联络信号。
用到的控制字为MOVAL,10001000b即A组工作于方式0端口a输出端口c高四位输入,B组工作于方式0端口b输出端口c低四位输出。
只用到A端口输出和C端口输入没有B端口,即端口A的PA0~PA6作为输出端,把信号输出到七段数码管显示的a~g端口;而端口C低四位没用只用到了到位PC7作为接收输入端,接受来自芯片8253的OUT0端口的信号,片选信号CS接控制端口地址为298H~29fH.如图1所示:
芯片8253用到了两个计数器(通道):
MOVAL,01110110b选1通道,先低字节后高字节,工作方式3单脉冲发生器,采用二进制计数;MOVAL,00010100b选0通道,只读写计数器低位字节工作于方式2分频器,该计数器有初值自动重装的功能,能够输出固定频率的脉冲,采用二进制计数。
由于该芯片只能定时一秒钟,所以我采用了级联扩展,如图2所示实现了定时9秒钟的功能。
图1、8255的连接方式图2、8253的连接方式图3、控制灯
第二部分:
几何图形的显示:
几何图形出现的原理很简单,就是通过控制8*8LED灯的亮暗来实现的,亮的则作为字的形状,而暗的则是作为字的背景,用到了三条线来完成连接,如图3所示,控制端口地址280~287H接CS1控制灯的亮或者灭、控制端口地址288~28fH接CS2控制灯显示红色、控制端口地址290~297H接CS3控制灯显示绿色。
让图形显示得比较动感,故分8频显示,有一种移动的感觉
四、程序流程图
1、主程序流程图:
2、倒计时子程序流程图:
五、实物接线图(实物图和绘图)
六、程序代码
;=================================
protEQU280h
prothEQU280h;================控
制灯亮
protlrEQU288h;=================红色
protlyEQU290h;=================绿色
ioportEQU280h
io8255aEQU298h
io8255cEQU29ah
io8255coEQU29bh
io82530EQU2a0h
io82531EQU2a1h
io8253coEQU2a3h
DATASSEGMENT
TUXING1DB08H,18H,28H,48H,28H,18H,08H,00H
TUXING2DB00H,7eH,42H,42H,42H,42H,7eH,00H
TUXING3DB7eH,42H,42H,42H,42H,42H,42H,7eH
TUXING4DB38H,44H,82H,82H,82H,44H,38H,00H
TUXING5DB00H,00H,00H,18H,18H,00H,00H,00H
TUXING6DB00H,00H,3cH,24H,24H,3cH,00H,00H
TUXING7DB00H,7eH,42H,42H,42H,42H,7eH,00H
TUXING8DB0ffH,81H,81H,81H,81H,81H,81H,0ffH
TUXING9DB81H,00H,00H,00H,00H,00H,00H,81H
TUXING10DB81H,42H,00H,00H,00H,00H,42H,81H
TUXING11DB81H,42H,24H,00H,00H,24H,42H,81H
TUXING12DB81H,42H,24H,18H,18H,24H,42H,81H
TUXING13DB81H,43H,24H,18H,18H,24H,0c2H,81H
TUXING14DB81H,43H,25H,18H,18H,0a4H,0c2H,81H
TUXING15DB81H,43H,25H,19H,98H,0a4H,0c2H,81H
TUXING16DB81H,43H,25H,99H,99H,0a4H,0c2H,81H
TUXING17DB81H,43H,0a5H,99H,99H,0a5H,0c2H,81H
TUXING18DB81H,0c3H,0a5H,99H,99H,0a5H,0c3H,81H
TUXING19DB83H,0c3H,0a5H,99H,99H,0a5H,0c3H,0c1H
TUXING20DB87H,0c3H,0a5H,99H,99H,0a5H,0c3H,0e1H
TUXING21DB8fH,0c3H,0a5H,99H,99H,0a5H,0c3H,0f1H
TUXING22DB9fH,0c3H,0a5H,99H,99H,0a5H,0c3H,0f8H
TUXING23DB0bfH,0c3H,0a5H,99H,99H,0a5H,0c3H,0fcH
TUXING24DB0ffH,0c3H,0a5H,99H,99H,0a5H,0c3H,0feH
TUXING25DB0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
TUXING26DB00H,00H,00H,00H,00H,00H,00H,00H
TUXING27DB0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
TUXING28DB00H,00H,00H,00H,00H,00H,00H,00H
TUXING29DB0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
;========================================
=======控制上下显示
MESSDB'Playanykey,returntoDOS!
',0AH,0DH,'$'
min1DB00h,01h,02h,03h,04h,05h,06h,07h
countDB0
BUFF0DB0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
BUFFDB43h,54h,0ffh,54h,44h,80h,7fh,20h;正向依次往
右移显示
LEdDB3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
DATASENDS
;-----------------------------------------------------------
CODESEGMENT
ASSUMECS:
CODE,DS:
DATAS
;------------------------------------------------------------
START:
MOVAX,DATAS
MOVDS,AX
MOVDX,OFFSETMESS
MOVAH,09
INT21H
;------------------------------------------------------------
MOVBX,OFFSETLEd
CALLi8255
CALLi8253
MOVCX,10
con:
MOVAL,CL
DECAL
XLAT
MOVDX,io8255a
OUTDX,AL
wai1:
MOVDX,io8255c
INAL,DX
TESTAL,10000000b
JZwai1
WAI:
MOVDX,io8255c
INAL,DX
TESTAL,10000000b
JNZwai
LOOPcon
;--------------------
AGAIN:
MOVCX,27;27屏
LEASI,TUXING1
UP:
PUSHCX
MOVCX,30H;30h次
AGI1:
PUSHCX
MOVAH,01H
MOVCX,8;8列8次
OUT1:
PUSHCX
MOVDX,ProTH
MOVAL,[SI]
OUTDX,AL
MOVDX,ProTLR
MOVAL,AH
OUTDX,AL
MOVCX,0FFFFH
L1:
LOOPL1;延时
POPCX
INCSI
SHLAH,1
LOOPOUT1;输出8列8次
SUBSI,8
POPCX
LOOPAGI1;输出300h次
ADDSI,8;下一屏
POPCX
LOOPUP;输出4屏
;上下显示正
;-------------------------------------------------------------
MOVCX,800h
d2:
MOVAH,80h
PUSH