微机原理个人简介系统课程设计.doc

上传人:精*** 文档编号:850943 上传时间:2023-09-16 格式:DOC 页数:20 大小:269.91KB
下载 相关 举报
微机原理个人简介系统课程设计.doc_第1页
第1页 / 共20页
微机原理个人简介系统课程设计.doc_第2页
第2页 / 共20页
微机原理个人简介系统课程设计.doc_第3页
第3页 / 共20页
微机原理个人简介系统课程设计.doc_第4页
第4页 / 共20页
微机原理个人简介系统课程设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、沈阳工程学院微机原理课程设计 目 录课程设计(论文)任务书课程设计(论文)成绩评定表摘要. 1设计任务描述.11.1 设计题目.11.2 设计内容.11.2.1 设计目的.11.2.2 设计原始资料及依据.11.2.3 设计的主要内容和要求.12 设计思路.22.1 主要原理.22.2 程序调试及说明.2 2.2.1 程序调试.2 2.2.2 结果说明.23 设计原理流程图.44 实际硬件接线图.55 源程序清单及注释.66 主要元器件介绍.11 6.1 硬件介绍.116.1.1 16*16LED点阵.116.2 软件介绍.13总结.16致谢.17参考文献.181设计任务描述1.1设计题目 “

2、个人简介系统”1.2设计内容 1.2.1设计目的 通过课程设计使学生更进一步掌握微机原理与应用课程的有关知识,提高用汇编语言编程的能力,加深对汇编语言的理解。通过查阅资料,阅读程序,提高设计程序的能力及动手能力,使编程水平有一定得提高,同时也使学生通过动手进行硬件设计及程序设计从而提高解决实际问题的能力。 1.2.2设计的原始资料及依据 查阅可编程并行芯片8255或其他相关资料。文字的显示是通过把该文字的图形信息输出到显示器件,配合软件不同的刷新方式即可实现文字的多种方式的移动。 1.2.3设计的主要内容及要求 内容:.利用微机原理试验箱的8255单元和16X16发光二极管矩阵,动态显示汉字及

3、字符。要求:实现字幕的由下至上的循环移动。字幕切换,当不按键盘是屏幕显示“电气系”按一次键盘显示“电本一班”,再按一次 显示本人姓名“王旭”。2 设计思路2.1主要原理 简单字幕机动态显示字幕移动是LED四个端口来实现控制。并且通过系统总线与16X16LED点阵显示单元正确的接线,实现设计目的。首先,定义端口地址,堆栈段及一个256位的字型存储空间。重点是对数据段的处理,这源于我们本身的设计目的,对每一个要显示的汉字进行转换,成为数字矩阵。共由16行、16列组成,此数字矩阵可根据不同的数字而改变。对各端口进行初始化,及各行各列进行初始化,最初使行为“0”,列为“1”,满足灯亮的初始条件。其次,

4、进入程序主体,开始进行编程。设计开始外循环次数为160,利用源变址指针寄存器开始进如循环。通过调用子程序进行内部循环,把点阵显示单元分成四个模块。第一部分内循环是执行前两个模块的数字矩阵操作,从0行到7行的全部列的编写。需要考虑灯亮的条件,即行为0,列为1的条件,所以就给行赋0值,使行满足条件,因此紧接着需要列的条件,如果某列能够满足条件,则此交点的灯亮。否则,灯不亮。完成一个模块的一行后,开始让指针执行加一操作,从而进入下一个模块的行操作。同理,依次执行循环操作,完成前两个模块的任务。调用子程序进行延时操作,使汉字显示的时间合理。接着进行内部外循环操作,再次进行上述语句命令完成字体在前两个模

5、块的显示情况。然后就是执行后两个模块的语句操作。原理同前两个模块的操作命令,再此不在赘述。最后是结束程序。以上就是整个程序的原理解释。2.2程序调试及说明 编写程序并非轻而易举,也需要不断的摸索与研究。该程序也是经过了数次的上机调试、运行才最终得以确定。221程序调试 现象:部分汉字会出现规定地方的灯未亮,未规定地方的灯却亮。原因:数字矩阵计算错误,求反操作出现错误。解决:重新计算数字矩阵直到满足汉字要求。222结果说明 结果显示证明此简单字幕机的程序还是比较成功的,16X16LED点阵显示单元相对8X8来说能够更加清楚的显示汉字。合理控制汉字一定速度和持续时间,即改变内部外循环次数。结果显示

6、汉字在显示单元是上下移动,循环操作。 3 设计原理流程图 初始化 工作部分内循环内循环修该与控制外循环外循环修改与控制 显示结果 图(三)设计原理流程图4实际硬件接线图 XD0 .系 . .统 XD7总 IOY0 IOY1线 IOY2 IOY3 IOW#D0 点. 阵. L. ED7 D 显CS1 行 示CS2 行 单CS3 列 元CS4 列WR 图(四)实际接线图5源程序清单及注释行: CS1(600H), CS2(640H) 列: CS3(680H), CS4(6C0H)ROW1EQU 0600H;端口定义ROW2EQU 0640HCOL1EQU 0680HCOL2EQU 06C0HSTA

7、CK1SEGMENT STACK DW 256 DUP(?)STACK1ENDSDATA SEGMENTHZDOT1DB 040H,000H,040H,000H,040H,000H,0FEH,00FHDB 042H,008H,042H,008H,0FEH,00FH,042H,008HDB 042H,008H,0FEH,00FH,040H,000H,040H,000HDB 040H,020H,040H,020H,080H,03FH,000H,000H电DB 008H,000H,008H,000H,0F8H,03FH,004H,000HDB 0F4H,00FH,002H,000H,0FDH,007

8、H,000H,004HDB 000H,004H,000H,004H,000H,004H,000H,004HDB 000H,044H,000H,048H,000H,050H,000H,040H气DB 000H,01CH,0FEH,003H,020H,000H,020H,008HDB 010H,004H,0FEH,003H,080H,000H,040H,004HDB 020H,008H,0FCH,01FH,080H,010H,090H,004HDB 090H,008H,088H,010H,0A4H,010H,040H,000H系HZDOT2DB 040H,000H,040H,000H,040H,0

9、00H,0FEH,00FHDB 042H,008H,042H,008H,0FEH,00FH,042H,008HDB 042H,008H,0FEH,00FH,040H,000H,040H,000HDB 040H,020H,040H,020H,080H,03FH,000H,000H电DB 080H,000H,080H,000H,080H,000H,080H,000HDB 0FEH,03FH,0A0H,002H,0A0H,002H,0A0H,002HDB 090H,004H,090H,004H,088H,008H,0F4H,03BHDB 083H,020H,080H,000H,080H,000H,0

10、80H,000H本DB 000H,000H,000H,000H,000H,000H,000H,000HDB 000H,000H,000H,000H,000H,000H,0FFH,0FFHDB 000H,000H,000H,000H,000H,000H,000H,000HDB 000H,000H,000H,000H,000H,000H,000H,000H一DB 080H,000H,080H,000H,0BFH,03EH,084H,008HDB 0A4H,008H,0A4H,008H,0A4H,008H,0A7H,01EHDB 0A4H,008H,094H,008H,084H,008H,044H,

11、008HDB 05CH,008H,047H,028H,022H,0EFH,010H,000H班HZDOT3DB 000H,000H,0FEH,03FH,080H,000H,080H,000HDB 080H,000H,080H,000H,080H,000H,0FEH,03FHDB 080H,000H,080H,000H,080H,000H,080H,000HDB 080H,000H,080H,000H,0FFH,07FH,000H,000H王DB 008H,000H,008H,000H,008H,01FH,008H,011HDB 07FH,011H,048H,011H,048H,011H,048

12、H,01FHDB 048H,011H,048H,011H,048H,011H,048H,011HDB 048H,05FH,044H,040H,082H,07FH,001H,000H 旭DATA ENDS16*16发光二极管矩阵灯亮的条件是列为0且行为1CODESEGMENTASSUMECS:CODE, DS:DATASTART:MOV AX, DATAMOV DS, AXMOV DX, ROW1MOV AL, 00HOUT DX, ALMOV DX, ROW2OUT DX, ALMOV AL, 0ffHMOV DX, COL1OUT DX, ALMOV DX, COL2OUT DX, AL定义

13、完成后,即为程序最关键的部分循环显示字幕移动。外循环,并取偏移地址给SIBG0:MOV AX,128MOV SI, OFFSET HZDOT1BG1:CALL DISPADD SI, 2DEC AXJZ BG0JMP BG1BG2:MOV AX,48MOV SI, OFFSET HZDOT2BG3:CALL DISPADD SI, 2DEC AXJZ BG2JMP BG3BG4:MOV AX,16MOV SI, OFFSET HZDOT3BG5:CALL DISPADD SI, 2DEC AXJZ BG4JMP BG5入口参数: SI = 存放汉字起始地址内循环DISP:MOV CX, 000

14、FHPUSH AXML0:PUSH CXMOV BL, 01HMOV CX, 0008HML1:MOV DX, ROW1;控制0-7行MOV AL, 00HOUT DX, ALMOV AL, SINOT ALMOV DX, COL1;0-7列OUT DX, ALINC SIMOV AL, SINOT ALMOV DX, COL2;8-15列OUT DX, ALINC SIMOV DX, ROW1;控制0-7行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAYLOOP ML1MOV DX, ROW1MOV AL, 00HOUT DX, ALMOV CX, 0008HM

15、L2:MOV DX, ROW2;控制8-15行MOV AL, 00HOUT DX, ALMOV AL, SINOT ALMOV DX, COL1;0-7列OUT DX, ALINC SIMOV AL, SINOT ALMOV DX, COL2;8-15列OUT DX, ALINC SIMOV DX, ROW2;控制8-15行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAYLOOP ML2MOV DX, ROW2MOV AL, 00HOUT DX, ALSUB SI, 32POP CXLOOP ML0POP AXRETDELAY:PUSH CX;延时子程序 MOV

16、CX, 0100HDL1:PUSH AXPOP AXLOOP DL1POP CXRETCODEENDSEND START6.主要元器件介绍61硬件介绍6.1.1 16X16LED点阵编码16X16LED点是将16行16列的LED以矩阵方式排列成为一个器件。本次设计所使用的LED点阵是使每行LED的阴极连接在一起,每列LED的阳极连接在一起,再经过驱动电路分别引出16个行引角和16个列引角,若要点亮其中的LED,则列为低电平0,行为高电平1。LED点阵的显示采用扫描的方式,首先将所要显示的字按每行拆解成多组显示信号。若让LED点阵显示出所需要的汉字,需要计算出它们的显示编码,如下表 表6.1.1

17、.1 “电”的数字矩阵 DB040H000H040H000H040H000H0FEH00FH DB042H008H042H008H0FEH00FH042H008H DB042H008H0FEH00FH040H000H040H000H DB040H020H040H020H080H03FH000H000H 表6.1.1.2 “气”的数字矩阵 DB008H000H 008H000H0F8H03FH004H000H DB 0F4H00FH002H000H0FDH007H000H004H DB 000H004H000H004H000H004H000H004H DB 000H044H000H048H000

18、H050H000H040H 表6.1.1.3 “系”的数字矩阵 DB000H01CH 0FEH003H020H000H020H008H DB 010H004H0FEH003H080H000H040H004H DB 020H008H0FCH01FH080H010H090H004H DB 090H008H088H010H0A4H010H040H000H 表6.1.1.4 “本”的数字矩阵 DB080H000H 080H000H080H000H080H000H DB 0FEH03FH0A0H002H0A0H002H0A0H002H DB 090H004H090H004H088H008H0F4H03B

19、H DB 083H020H080H000H080H000H080H000H表6.1.1.5 “一”的数字矩阵 DB000H000H 000H000H000H000H000H000H DB 000H000H000H000H000H000H0FEH0FFH DB 000H000H000H000H000H000H000H000H DB 000H000H000H000H000H000H000H000H表6.1.1.6 “班”的数字矩阵 DB080H000H 080H000H0BFH03EH084H008H DB 0A4H008H0A4H008H0A4H008H0A7H01EH DB 0A4H008H0

20、94H008H084H008H044H008H DB 05CH008H047H028H022H0EFH010H000H 表6.1.1.7 “王”的数字矩阵 DB000H000H 0EEH03FH080H000H080H000H DB 080H000H080H000H080H000H0FEH03FH DB 080H000H080H000H080H000H080H000H DB 080H000H080H000H0FFH07FH000H000H 表6.1.1.8 “旭”的数字矩阵 DB008H000H 008H000H008H01FH008H011H DB 07FH071H048H011H048H0

21、11H048H01FH DB 048H011H048H011H048H011H048H011H DB 048H05FH044H040H082H07FH001H000H 行的显示要有一定时间,若反复执行从第一行到最后一行的扫描,由于人类视觉瞬时现象,将会感觉到16行LED同时显示的样子。若显示时间太短,则亮度不够,若显示时间太长,则会感觉闪烁。在以上基础上,若间隔一定时间,再使每次显示不同的字型,即可实现不同的动态显示效果。62 软件介绍编写程序并非轻而易举,也需要不断的摸索与研究。首先要了解我们所设计的简单字幕机所要实现的功能和设计要求。其主要功能是:利用微机原理试验箱的系统总线单元和16X1

22、6LED点阵显示单元的正确接线,动态显示所设计的汉字,实现多种方式的字幕移动。第一部分是定义点阵的端口,数据段。重要的部分是数据段的数字代码,这是程序之间的区别。然后是端口初始化。第二部分是程序主体,循环显示字幕移动。把模板分成四个模块,先是完成模块一和模块二的字幕显示移动。 DISP:MOV CX, 000FHPUSH AXML0:PUSH CXMOV BL, 01HMOV CX, 0008HML1:MOV DX, ROW1;控制0-7行MOV AL, 00HOUT DX, ALMOV AL, SINOT ALMOV DX, COL1;0-7列OUT DX, ALINC SIMOV AL,

23、SINOT ALMOV DX, COL2;8-15列OUT DX, ALINC SIMOV DX, ROW1;控制0-7行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAYLOOP ML1MOV DX, ROW1MOV AL, 00HOUT DX, ALMOV CX, 0008H此段程序可循环显示、。下面依照上述步骤,循环显示第二个图形、第三个图形,通过内外两层循环,最终即可在16X16LED点阵显示单元上动态、持续、循环显示汉字。汉字的移动速度和持续时间由外循环数值决定,数值越小,汉字动态移动显示速度越快,持续时间越短;反之,速度越慢,持续时间越长。ML2:MOV

24、 DX, ROW2;控制8-15行MOV AL, 00HOUT DX, ALMOV AL, SINOT ALMOV DX, COL1;0-7列OUT DX, ALINC SIMOV AL, SINOT ALMOV DX, COL2;8-15列OUT DX, ALINC SIMOV DX, ROW2;控制8-15行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAYLOOP ML2MOV DX, ROW2MOV AL, 00HOUT DX, ALSUB SI, 32POP CXLOOP ML0POP AXRET上面这段程序是针对模块三和模块四来编制的,此段程序可循环显示

25、、。下面依照上述步骤,循环显示第二个图形、第三个图形,通过内外两层循环,最终即可在16X16LED点阵显示单元上动态、持续、循环显示汉字。汉字的移动速度和持续时间由外循环数值决定,数值越小,汉字动态移动显示速度越快,持续时间越短;反之,速度越慢,持续时间越长。DELAY: PUSH CX;延时子程序 MOV CX, 0100HDELAY1: PUSH AX POP AX LOOP DELAY1 POP CX RET 上面这段程序是实现延时功能的部分,通过CALL调用子程序利用出栈入栈操作命令执行时间推迟。最后返回主程序。总结这一周的课程设计感觉很有挑战性,激发了我的斗志,让我每天都以最佳的状态

26、去面对编程。也正是凭着这股干劲才让我的微机原理课程学得更加好,对知识的理解更加透彻。这也印证了那句“实践出真知”的老话,理论一定要结合实践,只有这样才能够达到融会贯通。第一天开始,我对自己的题目还是有些发懵,但是经过翻阅资料,仔细揣摩题目,也还是选出了一套方案。于是开始着手准备程序的编制。这要用到很多微机原理知识。第二天下午,我满心欢喜地调试运行,发现有很多错误,这让我很是沮丧,但是皇天不负苦心人,凭着我的扎实基础知识和不懈努力,最终得到了完全正确的程序,运行也进行得很成功。这令我很是骄傲。这其中的心酸历程,谁解其中味?在这充实的一周中,我觉得自己不仅经历了一次设计这么简单的事情,也是在对自己

27、思维锻炼能力的培养,要求思维缜密,不漏一丝破绽,这样才能够做到正确满足要求的程序。而且在这一周里我对微机原理这门学科也有了更深的认识和理解,为我的期末复习打下坚实的基础。最后感谢两位老师的无私帮助,我才能完成任务。 致谢 真心感谢曲老师的无私帮助,能够耐心地为我们一次次地讲解,这种精神是非常鼓励我们的;我还要感谢和我一组的同学,能够让我和你们团结一心共同解决问题;最后,感谢学校给我们创造了这样大的舞台,让我有发挥自己水平的机会,我一定会努力学好这门学科回报老师,回报学校。参考文献1 李伯成、侯伯亨、张毅坤.微型计算机原理及应用.西安电子科技大学出版社,20072 宋杰、汪志宏、江敏.微机原理与

28、接口技术课程设计.机械工业出版社3 朱定华、马爱梅、林卫.微机应用系统设计.华中科技大学出版社4 李大友.微型计算机原理.北京:清华大学出版社,2002中文摘要本次课程设计主要是进行字幕的显示操作,需要掌握16X16LED点阵显示单元与系统总线的接法,以及点阵的用法。因为用的芯片很少,所以程序并不特别复杂,只要掌握微机原理基础知识,就能够做到一定水平的编程能力。16X16LED点阵显示单元与系统总线正确连接,对所编程序进行编译,链接并装入系统,运行实验程序。本次设计所使用的LED点阵是使每行LED的阴极连接在一起,每列LED的阳极连接在一起,再经过驱动电路分别引出16个行引角和16个列引角,若

29、要点亮其中的LED,则列为低电平0,行为高电平1。LED点阵的显示采用扫描的方式,首先将所要显示的字按每行拆解成多组显示信号。计开始外循环次数为160,利用源变址指针寄存器开始进如循环。通过调用子程序进行内部循环,把点阵显示单元分成四个模块。第一部分内循环是执行前两个模块的数字矩阵操作,从0行到7行的全部列的编写。需要考虑灯亮的条件,即行为0,列为1的条件,所以就给行赋0值,使行满足条件,因此紧接着需要列的条件,如果某列能够满足条件,则此交点的灯亮。否则,灯不亮。完成一个模块的一行后,开始让指针执行加一操作,从而进入下一个模块的行操作。同理,依次执行循环操作。课程设计的主要目的在于锻炼我们的思维分析能力,更进一步掌握微机原理与应用课程的有关知识,提高用汇编语言编程的能力,加深对汇编语言的理解。关键词:16X16LED点阵显示单元,系统总线- 19 -

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922