微机原理课设字幕.docx

上传人:b****1 文档编号:23150037 上传时间:2023-05-08 格式:DOCX 页数:42 大小:89.66KB
下载 相关 举报
微机原理课设字幕.docx_第1页
第1页 / 共42页
微机原理课设字幕.docx_第2页
第2页 / 共42页
微机原理课设字幕.docx_第3页
第3页 / 共42页
微机原理课设字幕.docx_第4页
第4页 / 共42页
微机原理课设字幕.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

微机原理课设字幕.docx

《微机原理课设字幕.docx》由会员分享,可在线阅读,更多相关《微机原理课设字幕.docx(42页珍藏版)》请在冰豆网上搜索。

微机原理课设字幕.docx

微机原理课设字幕

目录

课程设计(论文)任务书………………………………………………………………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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1