四字字幕机设计Word下载.docx
- 文档编号:16354743
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:18
- 大小:70.41KB
四字字幕机设计Word下载.docx
《四字字幕机设计Word下载.docx》由会员分享,可在线阅读,更多相关《四字字幕机设计Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
下达任务书日期:
2013年12月30日
课程设计任务书
1.设计目的:
四字字幕机设计的设计对于提高学生的单片机应用能力,尤其是软件编程能力具有较强的意义。
通过该设计,可以巩固所学的单片机理论知识,培养学生硬件和软件的设计能力,从而促进学生所掌握的理论知识向实践应用的转变。
2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):
使用单片机设计一个四字字幕机设计,包括硬件设计和软件设计。
同组成员可按硬
件设计和软件设计来分工,协作完成。
具体功能要求:
(1)以点阵LED作为显示器件;
(2)一次显示4个字,分三次共显示12个字;
(3)分批显示并左移。
3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕:
(1)查阅相关文献资料,了解数据采集与显示系统的相关知识;
(2)确定设计方案。
绘制电路原理图;
(3)编写软件程序并上机调试;
(4)撰写课程设计说明书。
4.主要参考文献:
[1]李伯成、侯伯亨、张毅坤.微型计算机原理及应用.西安电子科技大学出版社,2007
[2]宋杰、汪志宏、江敏.微机原理与接口技术课程设计.机械工业出版社
[3]朱定华、马爱梅、林卫.微机应用系统设计.华中科技大学出版社
[4]何立民.单片机应用系统设计-系统配置与接口技术.北京航空航天大学出版社
[5]邵鸿余.微机原理与接口技术.北京航空航天大学出版社
5.设计成果形式及要求:
提供课程设计说明书一份;
设计原理图及软件源程序;
6.工作计划及进度:
2013年12月30日~2014年1月1日:
查阅资料;
2014年:
1月2日~1月7日:
方案设计、实验验证;
1月8日~1月9日:
完成课程设计说明书;
1月10日:
答辩。
系主任审查意见:
签字:
年月日
目录
1设计任务描述……….……...………………….….…………………..…………….1
1.1设计题目.....................….…………….…………..……………………………1
1.2设计内容………………………………...…………………………………….1
1.2.1设计目的…………………………………...……………………………..1
1.2.2设计要求…………………………………...……………………………..1
1.2.3发挥部分…………………………….………...………………………….1
2设计思路………..….…………………………….…..……...……………………..2
2.1主要原理.………………………………………………………………………2
2.2程序调试及说明………………………………………………………………..2
2.2.1程序调试…………………………………………………………………..2
2.2.2结果说明…………………………………………………………………..3
3设计原理流程图………………….……..….……………………………...……….3
4实际硬件接线图.............………..….……..….………………………...………….4
5源程序清单及注释………..….….………………………….…..…...…………….5
6设计过程介绍……………………………………………...………………..….12
6.1硬件介绍…………………….………………..…..…………....….….12
6.2程序分析……………………………………………...……………………...13
7设计总结…………...…………………………….……...………………………..16
参考文献.……………………..….…..……………….……………………………...17
1设计任务描述
1.1设计题目
简单字幕机
1.2设计内容
1.2.1设计目的
通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
1.2.2设计要求
查阅可编程并行芯片8255或其他相关资料。
文字显示是通过把该文字的图形信息输出到显示器件,配合软件不同的刷新方式即可实现文字的多种方式的移动。
1.2.3发挥部分
实现字幕的多种方式的移动。
2设计思路
2.1主要原理
简单字幕机动态显示字幕移动是系统总线和LED点阵两个模块组成来实现的,通过系统总线实现数据的输入,将数据代码输入到数据段中,系统总线中的IOY0、IOY1、IOY2、IOY3分别与系统总线中的CS1、CS2、CS3、CS4相连接,IOY0、IOY1、控制16*16模块中的行输入,IOY2、IOY3控制16*16模块中的列输入,由于我的字幕是由下向上滚动显示,一行一行的输入,因此,数据段中的数据将一行中的第一模块第二模块连在一起,系统总线中的IOW#与LED中的WR相连控制写输入。
在程序段,另外在START程序中,MOVDS,AX为初始化,起到把数据存入DS中的作用,OUTDS,AL输出,BGO:
MOVAX,160为定义外循环次数,且,数值越大,速度越快,保持时间越长,MOVSL,OFFSETHZDOT为取偏移地址给SI,调用ML1,ML2可实现循环,每循环一次,内循环CX循环一次减1,直到为0为止,为了内外两个循环最终可在16*16发光二极管矩阵动态持续地循环显示“棋盘山之旅的美好回忆”。
若想改变汉字的移动速度和持续时间,我们可以改变0D0H值,数值越小,动态移动显示速度越快,持续时间越短;
反之,速度越慢,持续时间越长。
2.2程序调试及说明
编写程序并非轻而易举,也需要不断的摸索与研究。
该程序也是经过了无数次的上机调试、运行才最终得以确定的。
2.2.1程序调试
1、现象:
汉字“棋盘山之旅的美好回忆”中的“好”在显示器上显示时不清晰,有疵点。
原因:
“好”字数据编码誊写时有误。
解决:
仔细检查编码的对与错。
2、现象:
汉字在显示器上移动速度过快。
外循环次数BL值过小。
解决:
将BL值改为较为合适的值0D0H。
3、现象:
16*16发光二极管矩阵显示器上该亮的地方未亮,相反不该亮的亮。
原因:
接线时有的接反了。
重新按照接线图正确接线。
4、现象:
字幕循环完之后出现乱码。
循环后程序找不到继续输出的程序。
在最后加上一组000H。
2.2.2结果说明
此简单字幕机的程序还是比较成功的,不过由于8*8模块的输出范围有限,所以用16*16模块,要考虑到一个字由四块组成,所以输入的数据要以来输入。
我们也可以人为的控制汉字移动速度和持续时间,即改变外循环次数BL值,值越小移动越快。
另外,此次程序实现的只是让汉字上下移动,若时间允许,我们会尝试着研究让汉字左右移动的程序,以实现汉字动态显示的更多样化。
4
(一)实际接线图
5源程序清单及注释
;
============================================================
文件名称:
LED16.ASM
功能描述:
行:
CS1(600H),CS2(640H)列:
CS3(680H),CS4(6C0H)
ROW1EQU0600H;
端口定义
ROW2EQU0640H
COL1EQU0680H
COL2EQU06C0H
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DATASEGMENT
HZDOTDB000H,000H,000H,000H,00CH,005H,09EH,00FH
DB01EH,005H,00CH,005H,01EH,007H,03FH,005H
DB02DH,007H,00CH,005H,0CCH,01FH,00CH,000H
DB08CH,00DH,0CCH,018H,040H,010H,000H,000H
DB000H,000H,080H,000H,040H,000H,0E0H,003H
DB020H,002H,0A0H,002H,0F0H,007H,020H,002H
DB0A0H,002H,020H,002H,0F0H,007H,050H,005H
DB050H,005H,050H,005H,0FCH,01FH,000H,000H
DB000H,000H,000H,000H,080H,001H,080H,001H
DB080H,001H,080H,001H,098H,019H,098H,019H
DB098H,019H,098H,019H,098H,019H,0F8H,01FH
DB0F8H,01FH,000H,000H,000H,000H,000H,000H
DB000H,000H,080H,000H,000H,001H,000H,000H
DB0E0H,007H,0E0H,007H,000H,004H,000H,002H
DB000H,001H,080H,000H,040H,000H,020H,008H
DB0F0H,005H,000H,003H,000H,000H,000H,000H
DB000H,000H,000H,000H,018H,001H,018H,00FH
DB080H,001H,0BCH,004H,008H,002H,008H,013H
DB038H,00DH,024H,005H,024H,009H,024H,009H
DB022H,011H,032H,013H,020H,021H,000H,000H
DB000H,000H,020H,004H,010H,002H,008H,01FH
DB078H,010H,048H,010H,048H,011H,078H,012H
DB078H,014H,048H,010H,048H,010H,078H,018H
DB000H,018H,000H,000H,000H,000H,000H,000H
DB000H,000H,020H,004H,060H,006H,040H,002H
DB0E0H,007H,080H,000H,0C0H,001H,080H,000H
DB0E0H,007H,080H,001H,0F8H,01FH,0C0H,003H
DB060H,006H,030H,00CH,018H,018H,000H,000H
DB000H,000H,030H,000H,018H,01EH,0FCH,03EH
DB0FCH,020H,008H,020H,048H,030H,04CH,018H
DB044H,07FH,02CH,010H,028H,020H,018H,020H
DB03CH,020H,024H,014H,000H,008H,000H,000H
DB000H,000H,000H,000H,0FCH,03FH,0FCH,03FH
DB00CH,030H,00CH,030H,0CCH,033H,04CH,032H
DB04CH,032H,0CCH,032H,00CH,030H,00CH,030H
DB0FCH,03FH,0FCH,03FH,000H,000H,000H,000H
DB000H,000H,000H,000H,030H,07EH,030H,07EH
DB030H,040H,0B4H,060H,0B4H,030H,0B4H,018H
DB0B4H,00CH,030H,006H,030H,003H,030H,081H
DB030H,047H,030H,07CH,000H,000H,000H,000H
DB000H,000H,000H,000H,000H,000H,000H,000H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,ROW1
MOVAL,00H
OUTDX,AL
MOVDX,ROW2
MOVAL,0ffH
MOVDX,COL1
MOVDX,COL2
BG0:
MOVAX,160
MOVSI,OFFSETHZDOT
BG1:
CALLDISP
ADDSI,2
DECAX
JZBG0
JMPBG1
======显示汉字子程序======
入口参数:
SI=存放汉字起始地址
DISP:
MOVCX,000FH
PUSHAX
ML0:
PUSHCX
MOVBL,01H
MOVCX,0008H
ML1:
MOVDX,ROW1;
控制0--7行
MOVAL,[SI]
NOTAL
MOVDX,COL1;
0--7列
INCSI
MOVDX,COL2;
8--15列
INCSI
MOVDX,ROW1;
MOVAL,BL
ROLBL,1
CALLDELAY
LOOPML1
ML2:
MOVDX,ROW2;
控制8--15行
MOVDX,ROW2;
LOOPML2
SUBSI,32
POPCX
LOOPML0
POPAX
RET
DELAY:
PUSHCX;
延时子程序
MOVCX,0100H
DL1:
PUSHAX
POPAX
LOOPDL1
CODEENDS
ENDSTART
6.1硬件介绍
16*16LED点是将4个8行8列的LED以矩阵方式排列成为一个器件。
本次设计所使用的LED点阵是使每列LED的阴极连接在一起,每行LED的阳极连接在一起,再经过驱动电路分别引出2个行引角和2个列引角,若要点亮其中的LED,则列为低电平0,行为高电平1。
LED点阵的显示采用扫描的方式,首先将所要显示的字按每行拆解成多组显示信号。
若让LED点阵显示出所需要的“棋”,则可列出数字“棋”的显示编码,如下表:
扫描顺序
显示数据
第1行
000H,000H
第2行
第3行
080H,001H
第4行
第5行
第6行
第7行
098H,019H
第8行
第9行
第10行
第11行
第12行
0F8H,01FH
第13行
第14行
第15行
第16行
当列为0行为1的时候该点灯亮,将第一行赋值为1其余行为0,当每一行扫描时发现交点有1的点则LED灯亮,其余的则不予相应不亮。
行的显示要有一定时间,若反复执行从第一行到最后一行的扫描,由于人类视觉瞬时现象,将会感觉到8行LED同时显示的样子。
若显示时间太短,则亮度不够,若显示时间太长,则会感觉闪烁。
在以上基础上,若间隔一定时间,再使每次显示不同的字型,即可实现不同的动态显示效果。
6.2程序分析
首先要了解我们所设计的简单字幕机所要实现的功能和设计要求。
其主要功能是:
利用微机原理试验箱的系统总线单元和16X16LED点阵显示单元的正确接线,动态显示所设计的汉字,实现多种方式的字幕移动。
第一部分是定义点阵的端口,数据段。
重要的部分是数据段的数字代码,这是程序之间的区别。
然后是端口初始化。
第二部分是程序主体,循环显示字幕移动。
把模板分成四个模块,先是完成模块一和模块二的字幕显示移动。
JIM1:
MOVDX,FILE1;
MOVAL,[SI]
NOTAL
MOVDX,FILE2;
LOOPJIM1
此段程序可循环显示、。
下面依照上述步骤,循环显示第二个图形、第三个图形……,通过内外两层循环,最终即可在16X16LED点阵显示单元上动态、持续、循环显示汉字。
汉字的移动速度和持续时间由外循环数值决定,数值越小,汉字动态移动显示速度越快,持续时间越短;
JIM2:
NOTAL
MOVDX,FILE2;
INCSI
CALLDELAY
LOOPJIM2
LOOPJIM0
上面这段程序是针对模块三和模块四来编制的,此段程序可循环显示、。
DELAY1:
LOOPDELAY1
上面这段程序是实现延时功能的部分,通过CALL调用子程序利用出栈入栈操作命令执行时间推迟。
最后返回主程序。
7设计总结
两周的课程设计已经结束了,通过这一周的设计,令我对微型计算机原理及应用这门课程有了更多的了解,从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识运用到实际当中,这也是我们设计的重点.
在设计过程中,也遇到了一些困难,就是不知道如何将8*8的数据段改变成16*16的数据段,且数据的接口也不一致,不知道该如何控制行与列的输入输出,后来听老师的耐心讲解,我就明白了许多,再加上同学的帮助和查阅资料渐渐的有了更多的深入。
通过这次课设我知道了只有经常读和写程序才能提高编程的能力,这就是我在这次课程设计中的最大收获。
这一周的设计我很充实,因为我收获了许多,无论是知识上,还是实际上,还是学习方法,解决问题的方法都有了很大的提高。
真的谢谢学校老师给我们这次实习的机会。
尤其是在下午没课的时候老师还应我们的请求为我们打开了计算机房让我们有更多的时间来课设。
我在设计中总结了以下几点:
1、认真审题,看懂题目的要求!
做到既能把课题完成又能锻炼自己的能力!
2、根据课题要求,复习相关的知识,查询相关的资料。
3、根据课程设计的要求写好程序流程图,在程序
4、程序要尽量做到思路清晰。
在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字字 设计