第一章设计课题1
1.1 设计要求1
1.2 设计目的1
1.3 基本实验设备1
第二章设计思想及实施方案2
2.1 设计思想2
2.2 总体方案3
第三章程序模块及技巧分析9
3.1 典型程序模块分析9
第四章设计中的问题与技巧11
4.1 本地部分11
4.2 远程(串行)部分13
第五章程序清单·流程图14
5.1 本地部分程序流程图14
5.2 远程(串行)部分程序流程图17
5.3 汇编语言编写的程序18
5.4 c语言编写的程序51
第六章收获与体会81
第七章参考文献82
第一章设计课题。
本次实验所选择的设计课题为设计题11:点阵led显示功能设计。
1.1 设计要求:
1.编程语言为汇编语言和c语言;
2.硬件电路基于80x86微机接口电路;
3.程序功能要求:小键盘给定、数码管显示、控制并显示“待机”,“欢迎你进入系统!”,再见”(延时10秒);
4.具备本地及远程(串行方式)功能。
1.2 设计目的:
1. 学习led点阵的基本使用方法以及编程方法。
2. 学习基于80x86微机接口电路的led点阵的设计。
3. 掌握矩阵键盘的硬件电路原理以及其扫描程序。
4. 掌握串行接口芯片16550的工作方式及应用。
5. 学习16550实现远程通讯的基本编程方法。
1.3 基本实验设备。
1. pc微机两台。
2. td-pit+实验系统2套。
第二章设计思想和实施方案。
2.1 设计思想。
8×8 点阵led的工作原理。
下图为8×8点阵led外观及引脚图,只要其对应的r、l轴顺向偏压,即可使led发亮。例如如果想使左上角led点亮,则r1=1,l1=0即可。应用时限流电阻可以放在r轴或l轴。
对于8x8点阵led,只有当某点对应的行、列皆选通,该点才发光,所以,要使点阵显示出一个汉字,则对应点皆要选通,但是,目前在实验室中点阵led的适用扫描方法只有行扫描或者是列扫描,无论采取哪一种扫描,都不可能一次性地显示出汉字,故此,只能通过定义每个字在对应选通行(列)的对应选通列(行)的十六进制码,在行扫描(列扫描)的方法下逐一显示。另外,由于扫描系统非常快,为使每个字都能清楚显示并停留一段时间,对于扫描显示程序要作相应的延迟或重复,使扫描频率达到足以引起我们的视觉暂留效果,对应的**者就能**到点阵上显示的汉字。
同时,为使显示汉字可控性,加入键盘控制,从而人为地操控字段显示。
对于本实验的远程(串行)功能,目标是在发送机上运行发送程序,按下相应的显示按键,接收机上通过接受程序判断发送机的按键情况,操作点阵led显示相应字段,即一机操控,另一机执行。
2.2 总体方案。
本实验按照要求可划分为两大部分:
1.本地实现部分。
包含五大模块:
·8086cpu中控模块。
·矩阵键盘及数码管显示模块。
·8x8点阵led显示模块。
·基本输入输出单元模块。
8255并口控制器模块。
8086cpu中控模块:
利用8086cpu作为本系统的中控模块,cpu可以将寄存器中传来的数据做软件处理;
矩阵键盘及数码管显示模块:
矩阵键盘有按键按下时,通过程序的消除抖动、保存键值等步骤后,数码管即时显示相应的数字;
8x8点阵led显示模块:
通过程序确定采用行扫描方式,当矩阵键盘及数码管显示模块有选定键按下时,读取每一行相应的列选通码,通过程序中一系列的延时子程序及重复子程序使每个字清楚显示一段适当的时间,并通过程序实现字移动显示等效果;
基本输入输出单元模块:
基本输入输出单元是由74ls245以及74ls374组成,本模块是用于连接8x8点阵led显示模块,将相应的设定码输出到8x8点阵led使之显示出相应的汉字;
8255并口控制器模块:
本模块连接矩阵键盘及数码管显示模块,通过a口、c口实现矩阵键盘扫描程序的执行,通过b口实现数码管显示功能。
本地部分各模块硬件接线图如下:
8x8点阵led单元接线图。
8255单元及矩阵键盘数码管显示单元接线图。
方案流程如下:
基本输入输出单元0a端及ob端分别接8x8点阵led单元的r端及l端,oa、ob端皆作输出端,基本输入输出单元的cs_a端接系统总线ioy2,cs_b端接系统总线的ioy3;8255单元的b口输出,接数码管单元的a—dp,a口输出,低四位接矩阵键盘及数码管显示单元的x1—x4端,c口输入,低四位接矩阵键盘及数码管显示单元的y1—y4端,8255单元的cs端接系统总线的ioy1。
当矩阵键盘有键按下时,判断该键的列行信息,通过程序根据8255单元的c口低四位、a口低四位信息(即矩阵键盘的x端及y端信息)检测出相应键值,并将对应的数码管显示码通过b口输出到数码管端口a—dp,从而显示出相应的按键号码;再判断该按键是否属于指定按键,若不是,继续执行扫描键盘程序直至有指定键按下或满足返回dos条件而返回dos,若是,则程序执行按键键值比较步骤,跳到相应显示汉字的子程序,选出该汉字对应的字模,通过基本输入输出单元输出到8x8点阵led单元,通过行扫描方式显示该段汉字,显示完毕,则扫描程序自动将存储键值归零,使显示只执行一次,再进入新一轮的键扫描。
2.远程(串行)功能部分。
需要两台计算机及两台实验仪器。
包含六大模块:
8086cpu中控模块。
·矩阵键盘及数码管显示模块。
·8x8点阵led显示模块。
·基本输入输出单元模块。
8255并口控制器模块。
16550串口控制器。
8086cpu中控模块:
利用8086cpu作为本系统的中控模块,cpu可以将寄存器中传来的数据做软件处理;
矩阵键盘及数码管显示模块:
矩阵键盘有按键按下时,通过程序的消除抖动、保存键值等步骤后,数码管即时显示相应的数字;
8x8点阵led显示模块:
通过程序确定采用行扫描方式,当矩阵键盘及数码管显示模块有选定键按下时,读取每一行相应的列选通码,通过程序中一系列的延时子程序及重复子程序使每个字清楚显示一段适当的时间,并通过程序实现字移动显示等效果;
基本输入输出单元模块:
基本输入输出单元是由74ls245以及74ls374组成,本模块是用于连接8x8点阵led显示模块,将相应的设定码输出到8x8点阵led使之显示出相应的汉字;
8255并口控制器模块:
本模块连接矩阵键盘及数码管显示模块,通过a口、c口实现矩阵键盘扫描程序的执行,通过b口实现数码管显示功能;
16550串口控制器。
将发送端计算机的按键信息发送到接收端计算机的16550串口控制器,再通过程序判断按键类型,选取相应的汉字字模,再输出到8x8点阵led单元显示对应汉字。
两台计算机(连带实验仪器),一台作发送端,一台作接收端;
发送端接线如下:
8255单元及矩阵键盘数码管显示单元接线图。
接收端接线如下:
8x8点阵led单元接线图。
两机各16550串口控制器连线及两机互联接线图。
接收端中,基本输入输出单元0a端及ob端分别接8x8点阵led单元的r端及l端,oa、ob端皆作输出端,基本输入输出单元的cs_a端接系统总线ioy1,cs_b端接系统总线的ioy2;
发送端中,8255单元的b口输出,接数码管单元的a—dp,a口输出,低四位接矩阵键盘及数码管显示单元的x1—x4端,c口输入,低四位接矩阵键盘及数码管显示单元的y1—y4端,8255单元的cs端接系统总线的ioy1。
接收端中的16550的intr端需接系统总线的intr引脚。
方案流程如下:
当发送端的矩阵键盘有键按下时,判断该键的列行信息,通过程序根据8255单元的c口低四位、a口低四位信息(即矩阵键盘的x端及y端信息)检测出相应键值,并将对应的数码管显示码通过b口输出到数码管端口a—dp,从而显示出相应的按键号码,并且将该码输出到16550串口控制器的除数寄存器my16550_0;
接收端不断检测16550串口控制器的除数寄存器my16550_0是否有信息输入,有则判断该信息是否指定按键信息,若不是,继续执行检测程序直至有指定键信息输入或满足返回dos条件而返回dos,若是,则程序执行按键键值信息比较步骤,跳到相应显示汉字的子程序,选出该汉字对应的字模,通过基本输入输出单元输出到8x8点阵led单元,通过行扫描方式显示该段汉字,显示完毕,则程序自动清屏,使显示只执行一次,再进入新一轮的端口信息扫描。
汇编语言课程设计
微机原理实践 课程设计报告。题目 汇编语言课程设计。专业 网络工程 班级 班 学号 姓名 指导教师 完成日期 2013年 1 月 6 日。一 课程设计目的。1 加深对汇编语言理论和基本知识的理解,掌握dos和bios系统功能调用,掌握运用汇编语言设计具有一定功能的软件的基本方法。2 通过编写一定规模...
汇编语言课程设计
学号 01211103402 18 课程设计。打字游戏的设计与实现。一 设计内容 1 功能菜单由 开始 速度调整 统计成绩 和 结束 等组成。2 游戏开始后,出现由26个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失,并得分 按esc键返回主界面 按空格键暂停 按...
汇编语言课程设计
汇。编。语。言。课。程。设。计。姓名 学号 专业班级 计科一班。指导老师 袁全清。一 课程题目。数字时钟,与计算机的时间同步显示。二 设计思想。程序原理 程序先调用系统时间,然后将返回的二进制数转化成ascii码,再通过dos显示功能显示出来,并通过循环不断刷新显示的时间。在二进制转化成ascii码...