微机原理课设字幕.docx
- 文档编号:23150037
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:42
- 大小:89.66KB
微机原理课设字幕.docx
《微机原理课设字幕.docx》由会员分享,可在线阅读,更多相关《微机原理课设字幕.docx(42页珍藏版)》请在冰豆网上搜索。
微机原理课设字幕
目录
课程设计(论文)任务书………………………………………………………………I
课程设计(论文)成绩评定表………………………………………………………Ⅳ
中文摘要…………………...………………………………………………………..Ⅴ
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设计原理流程图………………….……..….……………………………...……….4
4实际硬件接线图.............………..….……..….………………………...………….5
5源程序清单及注释………..….….………………………….…..…...…………….6
6主要元器件介绍……………………………………………...………………..….18
6.1硬件介绍………………………………………………………………...…...18
6.1.1可编程并行接口8255……………………………………...………...18
6.1.28*8LED点阵……………………………………..…..……………....20
6.2软件介绍……………………………………………...……………………...20
7设计总结…………...…………………………….……...………………………..23
参考文献.……………………..….…..……………….……………………………..25
1设计任务描述
1.1设计题目
简单字幕机
1.2设计内容
1.2.1设计目的
通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
1.2.2设计要求
查阅可编程并行芯片8255或其他相关资料。
文字显示是通过把该文字的图形信息输出到显示器件,配合软件不同的刷新方式即可实现文字的多种方式的移动。
1.2.3发挥部分
实现字幕的多种方式的移动。
2设计思路
2.1主要原理
简单字幕机动态显示字幕移动是由可编程的并行接口器件8255的四个口来实现的,包括8255的A口、B口、C口和一个控制寄存器。
通过对其控制端口赋予一定的控制字,来设定8255的工作方式,在本设计中,使8255功能控制为方式选择1,工作于方式0,即基本输入输出方式,并将A口、B口和C口都设置成输出,所以控制字为80H。
整个设计程序是这样实现的:
首先,是定义公共变量L_CON,包括定义8255端口A、B、C口地址和控制口地址,定义堆栈段,定义一个32位的字型存储空间。
然后输入组成“同心协力”四字的笔画代码数据,共由15行、8列组成,这个数字矩阵可根据不同的数字而改变,这也是程序编写的关键之一。
然后,编写程序初始化语句。
把上述数据全部数据寄存器DS中;把控制字80H该8255的控制端口输出(使8255功能控制为方式选择1,工作于方式0,即基本输入输出方式,并将A口、B口和C口都设置成输出,所以控制字为80H);因为满足8X8发光二极管矩阵灯亮的条件是列为0且行为1,所以在此设定列的最高位L8列满足全0,从列高位到列低位即为01111111。
定义完成后,即为程序最关键的部分——循环显示字幕移动。
定义外循环次数BL为0D0H,取第一行TAB1的偏移地址(首地址)给SI,定义内循环次数为0008H次(8次)。
A口控制列,B口控制行。
列右移一位(即由高位向低位移一位),行由高位向低位移一位(即取此行下一个值),如TAB1的首地址1CH输入后,调用DELAY子程序进行延时,延时时间共为4us+4us+4us×4次+4us+4us=32us.然后返回主程序。
之后输入TAB1的第二个值00H,依上面步骤循环8次,每次循环时都调用DELAY子程序延时,循环8次后BL即0D0H自减1,只要其值不为0,则可返回去循环,共循环0D0H次。
即内循环没循环8次,外循环中BL减1,直至减为0,可达到汉字持续动态显示。
此段程序可循环显示第一个图形(即“同心协力”的“同”字的第一笔“∣”)。
下面依照上述步骤,循环显示第二个图形、第三个图形……第十五个图形,通过内外两个循环,最终即可在8X8发光二极管矩阵上动态、持续、循环显示“同心协力”四字。
若想改变汉字的移动速度和持续时间,我们可以改变0D0H值,数值越小,动态移动显示速度越快,持续时间越短;反之,速度越慢,持续时间越长。
2.2程序调试及说明
编写程序并非轻而易举,也需要不断的摸索与研究。
该程序也是经过了无数次的上机调试、运行才最终得以确定的。
2.2.1程序调试
1、现象:
汉字在显示器上移动速度过快。
原因:
外循环次数BL值过小。
解决:
将BL值改为较为合适的值0D0H。
2、现象:
8X8发光二极管矩阵显示器上该亮的地方未亮,相反不该亮的亮了。
原因:
接线时有的接反了。
解决:
重新按照接线图正确接线。
2.2.2结果说明
此简单字幕机的程序还是比较成功的,不过由于8X8发光二极管矩阵显示器不够大,有些笔画复杂的汉字就无法清晰的显示了。
我们可以人为的控制汉字移动速度和持续时间,即改变外循环次数BL值,值越小移动越快。
另外,此次程序实现的只是让汉字左右移动,若时间允许,我们会尝试着研究让汉字上下移动的程序,以实现汉字动态显示的更多样化。
3设计原理流程图
4实际硬件接线图
XA1A0PA0
系XA2A18..
2PA7
统XD0D05
....5PB0
总XD7D7单元..
PB7
线IOW#WR
IOR#RDPC0
CS..
PC7
5源程序清单及注释
PUBLICL_CON
M8255_AEQU0640H
M8255_BEQU0642H
M8255_CEQU0644H
M8255_CONEQU0646H
SSTACKSEGMENTSTACK
DW25DUP(?
)
SSTACKENDS
DATASEGMENT
TAB1DB00H,00H,00H,00H,00H,00H,00H,00H
TAB2DB00H,00H,00H,00H,00H,00H,00H,00H
TAB3DB00H,00H,00H,00H,00H,00H,00H,0FFH
TAB4DB00H,00H,00H,00H,00H,00H,0FFH,75H
TAB5DB00H,00H,00H,00H,00H,0FFH,75H,55H
TAB6DB00H,00H,00H,00H,0FFH,75H,55H,55H
TAB7DB00H,00H,00H,0FFH,75H,55H,55H,0F5H
TAB8DB00H,00H,0FFH,75H,55H,55H,0F5H,0FFH
TAB9DB00H,0FFH,75H,55H,55H,0F5H,0FFH,00H
TAB10DB0FFH,75H,55H,55H,0F5H,0FFH,00H,1EH
TAB11DB75H,55H,55H,0F5H,0FFH,00H,1EH,3FH
TAB12DB55H,55H,0F5H,0FFH,00H,1EH,3FH,7FH
TAB13DB55H,0F5H,0FFH,00H,1EH,3FH,7FH,0FEH
TAB14DB0F5H,0FFH,00H,1EH,3FH,7FH,0FEH,7FH
TAB15DB0FFH,00H,1EH,3FH,7FH,0FEH,7FH,3FH
TAB16DB00H,1EH,3FH,7FH,0FEH,7FH,3FH,1EH
TAB17DB1EH,3FH,7FH,0FEH,7FH,3FH,1EH,00H
TAB18DB3FH,7FH,0FEH,7FH,3FH,1EH,00H,04H
TAB19DB7FH,0FEH,7FH,3FH,1EH,00H,04H,0FFH
TAB20DB0FEH,7FH,3FH,1EH,00H,04H,0FFH,04H
TAB21DB7FH,3FH,1EH,00H,04H,0FFH,04H,0B4H
TAB22DB3FH,1EH,00H,04H,0FFH,04H,0B4H,7FH
TAB23DB1EH,00H,04H,0FFH,04H,0B4H,7FH,84H
TAB24DB00H,04H,0FFH,04H,0B4H,7FH,84H,0FCH
TAB25DB04H,0FFH,04H,0B4H,7FH,84H,0FCH,30H
TAB26DB0FFH,04H,0B4H,7FH,84H,0FCH,30H,00H
TAB27DB04H,0B4H,7FH,84H,0FCH,30H,00H,02H
TAB28DB0B4H,7FH,84H,0FCH,30H,00H,02H,82H
TAB29DB7FH,84H,0FCH,30H,00H,02H,82H,7FH
TAB30DB84H,0FCH,30H,00H,02H,82H,7FH,02H
TAB31DB0FCH,30H,00H,02H,82H,7FH,02H,82H
TAB32DB30H,00H,02H,82H,7FH,02H,82H,0FEH
TAB33DB00H,02H,82H,7FH,02H,82H,0FEH,00H
TAB34DB02H,82H,7FH,02H,82H,0FEH,00H,00H
TAB35DB82H,7FH,02H,82H,0FEH,00H,00H,00H
TAB36DB7FH,02H,82H,0FEH,00H,00H,00H,00H
TAB37DB02H,82H,0FEH,00H,00H,00H,00H,00H
TAB38DB82H,0FEH,00H,00H,00H,00H,00H,00H
TAB39DB0FEH,00H,00H,00H,00H,00H,00H,00H
TAB40DB00H,0FFH,75H,55H,55H,0F5H,0FFH,00H
TAB41DB00H,1EH,3FH,7FH,0FEH,7FH,3FH,1EH
TAB42DB04H,0FFH,04H,0B4H,7FH,84H,0FCH,30H
TAB43DB00H,02H,82H,7FH,02H,82H,0FEH,00H
L_CONDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVL_CON,0FEH
MOVDX,M8255_CON
MOVAL,80H
OUTDX,AL
AA0:
MOVBL,0D0H
AA1:
MOVSI,OFFSETTAB1
MOVCX,0008H
DIS1:
callout_l
LOOPDIS1
DECBL
CMPBL,00H
JNEAA1
CALLDELAY
MOVBL,0F0H
AA2:
MOVSI,OFFSETTAB2
MOVCX,0008H
DIS2:
callout_l
LOOPDIS2
DECBL
CMPBL,00H
JNEAA2
CALLDELAY
MOVBL,0F0H
AA3:
MOVSI,OFFSETTAB3
MOVCX,0008H
DIS3:
callout_l
LOOPDIS3
DECBL
CMPBL,00H
JNEAA3
CALLDELAY
MOVBL,0F0H
AA4:
MOVSI,OFFSETTAB4
MOVCX,0008H
DIS4:
callout_l
LOOPDIS4
DECBL
CMPBL,00H
JNEAA4
CALLDELAY
MOVBL,0F0H
AA5:
MOVSI,OFFSETTAB5
MOVCX,0008H
DIS5:
callout_l
LOOPDIS5
DECBL
CMPBL,00H
JNEAA5
CALLDELAY
MOVBL,0F0H
AA6:
MOVSI,OFFSETTAB6
MOVCX,0008H
DIS6:
CALLOUT_L
LOOPDIS6
DECBL
CMPBL,00H
JNEAA6
CALLDELAY
MOVBL,0F0H
AA7:
MOVSI,OFFSETTAB7
MOVCX,0008H
DIS7:
callout_l
LOOPDIS7
DECBL
CMPBL,00H
JNEAA7
CALLDELAY
MOVBL,0F0H
AA8:
MOVSI,OFFSETTAB8
MOVCX,0008H
DIS8:
callout_l
LOOPDIS8
DECBL
CMPBL,00H
JNEAA8
CALLDELAY
MOVBL,0F0H
AA9:
MOVSI,OFFSETTAB9
MOVCX,0008H
DIS9:
callout_l
LOOPDIS9
DECBL
CMPBL,00H
JNEAA9
CALLDELAY
MOVBL,0F0H
AA10:
MOVSI,OFFSETTAB10
MOVCX,0008H
DIS10:
callout_l
LOOPDIS10
DECBL
CMPBL,00H
JNEAA10
CALLDELAY
MOVBL,0F0H
AA11:
MOVSI,OFFSETTAB11
MOVCX,0008H
DIS11:
callout_l
LOOPDIS11
DECBL
CMPBL,00H
JNEAA11
CALLDELAY
MOVBL,0F0H
AA12:
MOVSI,OFFSETTAB12
MOVCX,0008H
DIS12:
callout_l
LOOPDIS12
DECBL
CMPBL,00H
JNEAA12
CALLDELAY
MOVBL,0F0H
AA13:
MOVSI,OFFSETTAB13
MOVCX,0008H
DIS13:
callout_l
LOOPDIS13
DECBL
CMPBL,00H
JNEAA13
CALLDELAY
MOVBL,0F0H
AA14:
MOVSI,OFFSETTAB14
MOVCX,0008H
DIS14:
callout_l
LOOPDIS14
DECBL
CMPBL,00H
JNEAA14
CALLDELAY
MOVBL,0F0H
AA15:
MOVSI,OFFSETTAB15
MOVCX,0008H
DIS15:
callout_l
LOOPDIS15
DECBL
CMPBL,00H
JNEAA15
CALLDELAY
MOVBL,0F0H
AA16:
MOVSI,OFFSETTAB16
MOVCX,0008H
DIS16:
callout_l
LOOPDIS16
DECBL
CMPBL,00H
JNEAA16
CALLDELAY
MOVBL,0F0H
AA17:
MOVSI,OFFSETTAB17
MOVCX,0008H
DIS17:
callout_l
LOOPDIS17
DECBL
CMPBL,00H
JNEAA17
CALLDELAY
MOVBL,0F0H
AA18:
MOVSI,OFFSETTAB18
MOVCX,0008H
DIS18:
callout_l
LOOPDIS18
DECBL
CMPBL,00H
JNEAA18
CALLDELAY
MOVBL,0F0H
AA19:
MOVSI,OFFSETTAB19
MOVCX,0008H
DIS19:
callout_l
LOOPDIS19
DECBL
CMPBL,00H
JNEAA19
CALLDELAY
MOVBL,0F0H
AA20:
MOVSI,OFFSETTAB20
MOVCX,0008H
DIS20:
callout_l
LOOPDIS20
DECBL
CMPBL,00H
JNEAA20
CALLDELAY
MOVBL,0F0H
AA21:
MOVSI,OFFSETTAB21
MOVCX,0008H
DIS21:
callout_l
LOOPDIS21
DECBL
CMPBL,00H
JNEAA21
CALLDELAY
MOVBL,0F0H
AA22:
MOVSI,OFFSETTAB22
MOVCX,0008H
DIS22:
callout_l
LOOPDIS22
DECBL
CMPBL,00H
JNEAA22
CALLDELAY
MOVBL,0F0H
AA23:
MOVSI,OFFSETTAB23
MOVCX,0008H
DIS23:
callout_l
LOOPDIS23
DECBL
CMPBL,00H
JNEAA23
CALLDELAY
MOVBL,0F0H
AA24:
MOVSI,OFFSETTAB24
MOVCX,0008H
DIS24:
callout_l
LOOPDIS24
DECBL
CMPBL,00H
JNEAA24
CALLDELAY
MOVBL,0F0H
AA25:
MOVSI,OFFSETTAB25
MOVCX,0008H
DIS25:
callout_l
LOOPDIS25
DECBL
CMPBL,00H
JNEAA25
CALLDELAY
MOVBL,0F0H
AA26:
MOVSI,OFFSETTAB26
MOVCX,0008H
DIS26:
callout_l
LOOPDIS26
DECBL
CMPBL,00H
JNEAA26
CALLDELAY
MOVBL,0F0H
AA27:
MOVSI,OFFSETTAB27
MOVCX,0008H
DIS27:
callout_l
LOOPDIS27
DECBL
CMPBL,00H
JNEAA27
CALLDELAY
MOVBL,0F0H
AA28:
MOVSI,OFFSETTAB28
MOVCX,0008H
DIS28:
callout_l
LOOPDIS28
DECBL
CMPBL,00H
JNEAA28
CALLDELAY
MOVBL,0F0H
AA29:
MOVSI,OFFSETTAB29
MOVCX,0008H
DIS29:
callout_l
LOOPDIS29
DECBL
CMPBL,00H
JNEAA29
CALLDELAY
MOVBL,0F0H
AA30:
MOVSI,OFFSETTAB30
MOVCX,0008H
DIS30:
CALLOUT_L
LOOPDIS30
DECBL
CMPBL,00H
JNEAA30
CALLDELAY
MOVBL,0F0H
AA31:
MOVSI,OFFSETTAB31
MOVCX,0008H
DIS31:
callout_l
LOOPDIS31
DECBL
CMPBL,00H
JNEAA31
CALLDELAY
MOVBL,0F0H
AA32:
MOVSI,OFFSETTAB32
MOVCX,0008H
DIS32:
callout_l
LOOPDIS32
DECBL
CMPBL,00H
JNEAA32
CALLDELAY
MOVBL,0F0H
AA33:
MOVSI,OFFSETTAB33
MOVCX,0008H
DIS33:
callout_l
LOOPDIS33
DECBL
CMPBL,00H
JNEAA33
CALLDELAY
MOVBL,0F0H
AA34:
MOVSI,OFFSETTAB34
MOVCX,0008H
DIS34:
callout_l
LOOPDIS34
DECBL
CMPBL,00H
JNEAA34
CALLDELAY
MOVBL,0F0H
AA35:
MOVSI,OFFSETTAB35
MOVCX,0008H
DIS35:
callout_l
LOOPDIS35
DECBL
CMPBL,00H
JNEAA35
CALLDELAY
MOVBL,0F0H
AA36:
MOVSI,OFFSETTAB36
MOVCX,0008H
DIS36:
callout_l
LOOPDIS36
DECBL
CMPBL,00H
JNEAA36
CALLDELAY
MO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 字幕