微机原理及应用课程设计报告最终版

合集下载

微机原理及应用课程设计报告

微机原理及应用课程设计报告

微机原理及应用课程设计设计题目: 基于PC机串行通信的点到点文件传输系统专业讣算机科学与技术班级计104学生 D指导教师2013 年秋季学期LI录U录 2实验LI3的二实验内容及要求 3、三课设基本思想 3、程序流程图以及程序设讣 5四、五. 实验结果截图6六. 程序源代码7七. 课程设计心得体会14A.参考文献151、实验目的1.学习虚拟串口的使用方法。

2.学会在windows平台上进行串口通信的方法。

二、实验内容及要求1•基本要求:采用VB,VC,C#或其他开发工具设计一个简易的聊天系统。

用户可以设置波特率或釆用自动协商机制。

界面如下图:接收信息|Text1发送信息Text22.设汁提示:在Windows平台上通过API或MSComn控件实现串行通信。

3.进一步设计要求:采用多线程完成通信任务。

三、课设基本思想1.在.\ET平台下使用C#创建串口通信程序,.NET2.0提供了串口通信的功能,其命名空间是System. 10. PortSo这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信。

我们将使用标准的RS 232 C在PC间通信。

它丄作在全双工模式下,而且我们不打算使用任何的握手或流控制器,而是使用无modem连接。

2.串口的硬件知识:在数据传输的时候,每个字节的数据通过单个的电缆线传输。

包包括开始位,数据,结束为。

一旦开始位传出,后面就会传数据,可能是5, 6, 7或8位, 就看你的设定了。

发送和接收必须设定同样的波特率和数据位数。

3.关于本程序使用SerialPort的一些属性和方法:4、程序流程图以及程序设计开始、程序流程图:使用函数获取系统、“|前的可用串口初始化串JI初始化波特率建立串11连接并通信是否发送…进制文件发送二进制文件(二)、程序设计思想:首先需要定义一个SerialPort对象,添加DataReceived事件响应收到数据。

然后利用系统提供函数获取当前端口号,以及用户选择的波特率,对对象进行初始化。

微机课程设计报告

微机课程设计报告

课程设计报告( 2013—2014年度第一学期)名称:微机原理及应用题目:8255/273实现六位简单计算器院系:控计学院设计周数:1周成绩:日期:2014年1月3日一、课程设计的目的与要求目的:在微机原理及应用课程中分别学过了微机原理各个基本组成模块的原理和编程技术的基础上,综合应用各部分知识,在实验室现有设备的情况下,设计一个具有一定功能的应用系统,达到对各部分知识加深理解、融会贯通的目的,并进一步锻炼学生的动手能力和综合分析能力,同时培养学生的团队精神。

要求每个同学独立完成自己分担的部分,整体方案可以组内同学讨论确定。

要求:能完成六位十进制数的加、减、乘、除运算以及平方运算,操作过程与普通计算器相同,即先输入一个操作数,然后按下“+”“—”“×”“÷”键,再输入下一个操作数,按等号键开始运算并显示结果,若结果超过六位,则显示“E”。

要求尽量与真实计算器相似。

任务:我负责的是软件整体构建,和对加法,减法,乘法,除法,平方,清零以及带小数运算程序的编写和调试。

二、设计正文将可编程外围接口芯片8255A 与键盘和七段LED 连接,通过对8255A 编程及对键盘的操作实现计算功能。

键盘码包括数字0~9、运算符号“+” “-” “*” “/”“=”和清零“CL”键。

首先利用程序不断扫描件键盘是否有输入,如果没有就一直扫描,如果有就停止扫描,完成输入。

通过键盘依次输入第一个运算数字、运算符号、第二个运算数字、“=”,在七段LED 灯上显示运算结果,期间数字输入有误可按“C”键之后重新输入。

三、课程设计总结1.本次课程设计选择了简易计算器设计的题目,不仅使我加深了对接口程序设计的认识,对可编程并行I/O接口芯片8255的工作原理也有了进一步的了解,更重要的是培养了我们发现问题,解决问题的能力。

2.根据微机原理课程所学相关知识及实验教程相关内容,在基于proteus平台,使用汇编语言,以8086为核心的情况下,配合可编程并行接口器件8255A,LED数码管等器件实现可进行简单六位数加减乘除法及清零扩展功能的十进制计算器。

《微型计算机原理及其应用》课程设计

《微型计算机原理及其应用》课程设计

课程设计课程名称微机课程设计题目名称__ 计算器学生学院____ _ 自动化________ 专业班级____ 13自动化()班_ 学号学生姓名___ __ _ 指导教师______ ___ __2015 年 12月30日实验任务.一.目的1.巩固和加深对《微机原理及应用》课程内容的认识和理解,提高应用水平;2.掌握汇编语言程序的编程方法;3.熟悉键盘控制和七段数码管的使用。

二.设计要求课程设计内容上机编程:1.在显示器上显示任意六位十六进制数;2.将8个键按实验室要求定义键值,按任意键在显示器上显示对应键值,要求显示值能左移;3.实现:a)定义键盘按键,12个为数字键1~E,4个功能键:加号+,除号÷,等号=,CLEAR 清零键;b)可进行四位10进制加法运算;c)可进行四位16进制除法运算。

4.电路框图5.课程设计报告目录1.程序一 (4)1.1问题: (4)1.2代码: (4)2.程序二 (4)2.1问题: (5)2.2代码: (5)3.程序一 (9)3.1问题: (9)3.2代码: (9)二、系统设计说明 (21)三、程序流程设计图 (21)四、个人总结 (22)附录: (23)1.程序一1.1问题:在显示器上显示以下六位十六进制数:1 D 3 B 5 C1.2代码:STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSDA TA SEGMENTTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H;TABLE DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H; DB 0FEH,0E6H,0EEH,2EH,9CH,7AH,9EH,8EH ;设置0~F数码管段码V A1 DB 01H,0DH,03H,0BH,05H,0CHDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATA ;8255初始化MOV DS,AXMOV DX,0606H ;信号线设为IOY0MOV AL,90H ;端口A、B为输出OUT DX,AL ;DX为控制端口地址A1: LEA SI,V A1MOV CX,0006HMOV AL,0FBH ;11111011A2: MOV DX,0604HOUT DX,AL ;B口上拉?PUSH AX ;利用AX移位MOV BX,OFFSET TABLEMOV AL,[SI]XLAT ; 把以DS:[BX+AL]为地址的待查表格的一个字节内容送到AL累加器中。

微机原理课程设计报告文库

微机原理课程设计报告文库

微机原理课程设计报告文库一、课程目标知识目标:1. 理解微机原理的基本概念,掌握微机硬件结构及其功能;2. 学会分析微机工作原理,了解指令系统及编程方法;3. 掌握微机接口技术,了解常见接口芯片的功能和应用。

技能目标:1. 能够运用所学知识进行微机系统的简单设计和调试;2. 培养学生具备一定的微机编程能力,能够编写简单的汇编语言程序;3. 提高学生动手实践能力,能够进行基本的硬件焊接和电路搭建。

情感态度价值观目标:1. 培养学生对微机原理课程的兴趣,激发学生学习热情;2. 培养学生具备良好的团队合作意识,学会与他人共同解决问题;3. 增强学生的创新意识,鼓励学生勇于探索新知识,提高自主学习能力。

课程性质:本课程为理论与实践相结合的课程,强调培养学生的动手实践能力和创新能力。

学生特点:学生已具备一定的电子技术和计算机基础,具有较强的学习能力和好奇心。

教学要求:教师应注重理论与实践相结合,引导学生主动参与课堂讨论,鼓励学生动手实践,培养学生解决问题的能力。

在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。

通过本课程的学习,使学生能够掌握微机原理的基本知识,具备实际应用能力,为后续相关课程和未来职业发展打下坚实基础。

二、教学内容本课程教学内容主要包括以下几部分:1. 微机硬件结构:介绍微处理器、存储器、输入输出接口等硬件组件的工作原理和功能;教材章节:第一章 微机系统概述内容列举:CPU结构、存储器分类、I/O接口基础等。

2. 指令系统与编程:讲解汇编语言的基本指令、寻址方式、程序设计方法等;教材章节:第二章 指令系统与汇编语言内容列举:基本指令、汇编语言程序结构、循环、分支等编程技巧。

3. 微机接口技术:分析常见接口芯片的原理与应用,如并行接口、串行接口、定时器/计数器等;教材章节:第三章 微机接口技术内容列举:并行接口、串行接口、定时器/计数器接口芯片等。

4. 微机系统设计与实践:培养学生动手实践能力,进行简单的微机系统设计与调试;教材章节:第四章 微机系统设计与实践内容列举:硬件焊接、电路搭建、程序下载与调试等。

微机原理及应用实验报告

微机原理及应用实验报告

实 验 报 告课 程 名 称实 验 名 称实 验 日 期学 生 专 业学 生 学 号学 生 姓 名教 师 姓 名成 绩南京理工大学机械工程学院微机原理及应用 实验1 DEBUG 操作实验 实验2 汇编程序设计实验 实验3 8253定时/计数器实验 实验4 8255 并行接口实验 年 月 日 至 年 月 日实验一 DEBUG命令及其操作一、实验目的1.熟练掌握debug的常用命令,学会用debug来调试程序。

2.深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。

3.掌握各种寻址方法以及简单指令的执行过程。

二、实验要求1.实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法以及对程序结果的分析等。

2.本实验要求在PC机上进行。

3.本实验只要求在DEBUG调试状态下进行,包括汇编程序,调试程序,执行程序。

三、实验内容●实验内容1:学习用DEBUG调试工具进行源程序的输入、汇编、调试和执行。

实验报告要求:1.写出运行结果;2.小结debug常用命令及使用体会答:1.原文已给出(略)2.a 汇编d显示内存单元内容e修改单元内存内容g执行命令t单步(或多步)调试n指定文件路径文件名(含扩展名)u反汇编r查看寄存器值及修改l加载程序w写盘命令体会:提升学习热情和动手能力有助于理解代码执行过程●实验内容2设AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换。

请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。

实验报告要求:1.写出完成上述功能的程序段;2.单步执行,并记录寄存器AX, BX及堆栈指针SP的值答:A100Mov ax,3000 ; ax:3000 bx:0000 sp:ffeeMov bx,5000 ;ax:3000 bx:5000 sp:ffeePush ax ;ax:3000 bx:5000 sp:ffecMov ax,bx ;ax:5000 bx:5000 sp:ffecPop bx ;ax:5000 bx:3000 sp:ffeeInt 20●实验内容3设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H~304H 连续单元装入0AH,0BH,0CH,0DH,0EH。

微机原理及应用课程分析报告

微机原理及应用课程分析报告

吉林建筑工程学院电气与电子信息工程学院微机原理技术课程设计报告设计题目:算术逻辑单元设计专业班级:学生姓名:学号:指导教师:设计时间:-年数学家冯诺伊曼在一篇介绍被称为的一种新型电脑的基础构成的报告中提出的概念。

早期发展年,冯诺伊曼与同事合作为普林斯顿高等学习学院()设计计算机。

随后计算机成为后来计算机的原形。

在论文中,冯诺伊曼提出他相信计算机中所需的部件,其中包括。

冯诺伊曼写到,是计算机的必备组成部分,因为已确定计算机一定要完成基本的数学运算,包括加减乘除。

于是他相信「(计算机)应该含有专门完成此类运算的部件。

」数字系统必须使用与数字电路其他部分使用同样的格式进行数字处理.对现代处理器而言,几乎全都使用二进制补码表示方式。

早期的计算机曾使用过很多种数字系统,包括反码、符号数值码,甚至是十进制码,每一位用十个管子。

以上这每一种数字系统所对应的都有不同的设计,而这也影响了当前对二进制补码的优先选择,因为二进制补码能简化加法和减法的运算。

一个简单的能进行与或非和加运算的位。

可行性分析绝大部分计算机指令都是由执行的。

从寄存器中取出数据,数据经过处理将运算结果存入输出寄存器中。

其他部件负责在寄存器与内存间传送数据。

控制单元控制着,通过控制电路来告诉该执行什么操作。

简单运算大部分都可以完成以下运算∶整数算术运算(加、减,有时还包括乘和除,不过成本较高)位逻辑运算(与、或、非、异或)移位运算(将一个字向左或向右移位或浮动特定位,而无符号延伸),移位可被认为是乘以或除以。

复杂运算工程师可设计能完成任何运算的,不论运算有多复杂;问题在于运算越复杂,成本越高,在处理器中占用的空间越大,消耗的电能越多。

于是,工程师们经常计算一个折中的方案,提供给处理器(或其他电路)一个能使其运算高速的,但同时又避免设计的太复杂而价格昂贵。

部。

工程师一般认为是处理整数型(比如补码和码)算术运算的的电路,而对更为复杂的格式(比如浮点型、复数型)进行计算的电路则拥有一个更加匹配的称谓。

微机原理及应用课程设计

微机原理及应用课程设计

课程设计课程名称微机原理及应用课程设计题目名称计算器(1)学生学院专业班级学号学生姓名指导教师2020 年 1 月 6 日目录一、课程设计的目的......................................错误!未定义书签。

二、课程设计应完成的工作..........................错误!未定义书签。

三、课程设计进程安排..................................错误!未定义书签。

四、应搜集的资料及要紧参考文献..............错误!未定义书签。

五、实训指导书.............................................错误!未定义书签。

六、显示2F9E(XLAT).................................错误!未定义书签。

七、键盘程序..................................................错误!未定义书签。

八、键盘操纵显示器......................................错误!未定义书签。

九、计算器......................................................错误!未定义书签。

十、实验心得体会................................... -错误!未定义书签。

-广东工业大学课程设计任务书题目名称学生学院专业班级姓名学号一、课程设计的目的一、巩固和加深对《微机原理及应用》课程内容的熟悉和明白得,提高应用水平;二、把握汇编语言程序的编程方式;3、熟悉键盘操纵和七段数码管的利用。

二、课程设计应完成的工作课程设计完成后,交课程设计报告一份(内容包括:系统设计说明、系统原理图、程序设计流程图、源程序),按规定格式书写。

三、课程设计进程安排四、应搜集的资料及要紧参考文献[1] 许立倖等编.微型运算机原理及应用.北京:机械工业出版社,2003[2] 许立倖等编.微型运算机原理及应用——习题解答、实验指导及课程设计.北京:机械工业出版社,2004发出任务书日期:2020年1月4日指导教师签名:打算完成日期:2020年1月13日基层教学单位责任人签章:主管院长签章:- 3 -五、六、编程在四位LED数码管上显示2F9E(应用XLAT).流程图:程序:STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSDATA SEGMENTVAR1 DB 02H,0FH,09H,0EHVAR2 DB 0F7H,0FBH,0FDH,0FEHTABLE DB 0FCH,60H,0DAH,0F2H,066H,0B6H,0BEH,0E4H,0FEH,0F6H, DB 0EEH,3EH,9CH,7AH,9EH,8EHDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AL,82HOUT 63H,ALA1: MOV SI,OFFSET VAR1MOV DI,OFFSET VAR2MOV BX,OFFSET TABLEMOV CX,04HA2: MOV AL,[SI]XLATOUT 62H,ALMOV AL,[DI]OUT 60H,ALCALL TIMEINC SIINC DILOOP A2JMP A1TIME: PUSH AXPUSH CXMOV CX,0040HA4: MOV AX,0005HA5: DEC AXJNZ A5LOOP A4POP CXPOP AXRETCODE ENDSEND START七、键盘程序要求:实现键盘左移显示。

微机原理课程设计报告

微机原理课程设计报告

微机原理课程设计报告课程设计是每一个大学生在大学生涯中都不可或缺的,它使我们在实践中了巩固了所学的知识、在实践中锻炼自己的动手能力,本文就来分享一篇微机原理课程设计报告,希望对大家能有所帮助!微机原理课程设计报告(一) 以前从没有学过关于汇编语言的知识,起初学起来感觉很有难度。

当知道要做课程设计的时候心里面感觉有些害怕和担心,担心自己不会或者做不好。

但是当真的要做的时候也只好进自己作大的努力去做,做到自己最好的。

我们在这个过程中有很多自己的感受,我想很多同学都会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。

我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。

看着自己做出来的东西,心里面的感觉真的很好。

虽然我们做的东西都还很简单,但是毕竟是我们自己亲手,呵呵,应该是自己亲闹做出来的。

很有成就感。

我想微机原理课程设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。

但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。

对于很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但是对于我来说真的新奇,很有趣,也是我有更多的兴趣学习微机原理和其他的汇编。

微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。

讨论某一部分原理时又要涉及到其它部分的工作原理。

这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。

所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。

学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《微机原理及应用》课程设计报告题目LED16*16点阵实验学院电子信息工程学院专业电子信息工程组长姓名和学号学生姓名和学号指导教师2015 年 1 月 22 日目录1 选题目的、意义及任务 (1)1.1 选题目的 (1)1.2 选题意义 (1)1.3 设计任务 (1)2 方案设计 (2)2.1设计思路......................... . (2)2.2总体设计 (3)2.3设计论证 (3)2.4硬件连接 (3)3 设计流程 (6)3.1程序流程图 (6)4 主程序分析 (7)4.1程序分析 (7)4.2功能解释 (9)5 调试结果 (9)5.1硬件、软件实现 (9)5.2结果图 (10)6 团队构成 (10)7 问题分析 (11)8 心得体会 (11)8 附录 (14)1 选题目的、意义及任务1.1 选题目的本次微机原理及应用课程设计我们组的选题是LED16*16点阵实验。

LED点阵通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,LED点阵常常被用来做点阵屏。

点阵屏是各部分组件都模块化的显示器件,通常由显示模块、控制系统及电源系统组成。

LED点阵显示系统中各模块的显示方式有静态和动态显示两种,静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可以显示各种图形或文字信息。

对于我们的课程设计主要目的如下:①熟悉8155、8255的功能,了解点阵显示的原理及控制方法;②学会使用LED点阵,通过编程显示不同字符;1.2选题意义LED显示屏具有亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定等特点。

广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。

因此16*16LED点阵实验的课程设计对实际的生产和生活具有非常重要的指导意义。

通过LED16*16点阵实验来让我们更好地理解微机工作的原理,并更深层次的了解各大芯片的用法以及功能。

1.3设计任务设计一个能显示16X16点阵图文LED显示屏,要求能显示文字,文字应稳定、清晰,文字以卷帘形式向上滚动显示“欢迎使用星研实验仪”。

2 方案设计2.1设计思路16×16点阵LED电子显示屏的设计:能依次显示“欢迎使用星研实验仪”几个字符。

LED点阵中没有16X16的点阵,可以通过四个8X8的LED点阵对应的行和列分别连接起来构成16X16点阵,此时共需要32根行列控制线,对微机来说明显不够,需要外扩I/O接口。

可以选择的芯片有8255、8155等。

设计过程中注意LED的驱动电压。

本实验微机扩展采用74LS244N、8255A、8155A。

LED采用动态扫描的显示方法。

这样扫描驱动电路就可以实现多行的同名列共用一套驱动器。

具体就16x16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阴极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其点亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。

当这样轮回的速度足够快,由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。

采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。

显示数据通常存储在微机的存储器中,按8位一个字节的形式顺序排放。

显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。

从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。

采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。

但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。

这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。

对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。

解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。

即在显示本行各列数据的同时,传送下一列数据。

为了达到重叠处理的目的,列数据的显示就需要具有所存功能。

经过上述分析,就可以归纳出列驱动器电路应具有的功能。

对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。

这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。

2.2总体设计图1 总体设计框架2.3设计论证图文显示一般有静态和动态显示两种方案,静态方案虽然设计简单,但其使用的管脚太多,如本设计中16x16的点阵共有256个发光二极管,显然微机没有这么多的端口,如果采用锁存器来扩展端口,按8位的锁存器来计算,16x16的点阵需要256/8=32个锁存器。

这个数字很庞大,因为我们仅仅是16x16的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。

因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。

这就是我们此次课程设计在显示字符上使用动态扫描的原因。

2.4硬件连接本次设计采用了STAR ES598+实验仪,本实验硬件使用该实验仪,使用实验列驱动器74LS24016X16LED 显示点阵行驱动器 74LS 244微处 理 器80868255/8155仪的A2、A3和B4区。

具体的连线可按下图连接。

表1 连线说明连接区接线位置标号(依次)被连接区被接线位置标号(依次)B4区CS(8255)、A0、A1 A3区CS1、A0、A1B4区CS(8152)、IO/M A3区CS2、A8B4区JP56、JP53 A2区JP23、JP24(行输出线)B4区JP52、JP76 A2区JP33、JP34(列输出线)图2 LED驱动原理图LED驱动原理图是通过AD软件绘制的,另附有原理图生成的PCB版图。

在实际连接线路时需要注意接线的方向,行线跟8255的PA口,PB口要高低位对应,不可接反。

而16×16点阵LED的两根列线编号跟点阵是相反的,故连线的时候两根列线要与8255的PC口,8155的PA口高低位反接。

在该电路中JP23、JP24组成16根行扫描线;JP33、JP34组成16根列扫描线。

行扫描线是低电平有效,列扫描线是高电平有效。

需要介绍的芯片是可编程接口芯片8155,8255A接口芯片就不再介绍。

可编程接口芯片8155:8155采用40脚双列直插式封装,单一+5v电源。

CE:片选端,8155为低电平有效,8156为高电平有效,当8155上加上一个低电平时,芯片被选中,可以与微机交换信息。

AD0~AD7:三态地址/数据总线,在ALE 的下降沿把8位地址锁存于内部地址锁存器,地址可代RAM或输入/输出用,由IO/M信号的极性而定,8位数据的流向取决于RD或WR信号的状态。

RESET:复位信号线,高电平有效,在该输入端加一脉冲宽度为600ns 的高电平信号,就可使8155可靠复位,复位时三个输入/输出口预置为输入方式。

PA0~PA7:输入/输出口A的信号线,通用8位输入/输出口,输入/输出的方向通过对命令/状态寄存器的编程来选择。

PB0~PB7:输入/输出口B的信号线,通用8位输入/输出口,输入/输出的方向通过对命令/状态寄存器的编程来选择。

PC0~PC5:输入/输出口C的信号线,6位可编程输入/输出口,也可用作A口和B口的控制信号线,通过对命令/状态寄存器编程来选择。

图3 8155硬件图3设计流程3.1 程序流程图此次LED16*16点阵实验程序流程图如下:图4 程序流程图16—>计数器1(一屏行数)计数器0-1=0计数器1-1=0显示一屏子程序DPTR=DPTR+2开始建立“欢迎使用星妍实验仪”初始化8255A ,PA 、PB 、PC 口为输出口初始化8155,PA 口为输出口测试16*16 LED 是否全亮熄灭16*16 LED字符—>计数器0,字符表首地址—>DPTRYN返回开始8—>计数器2(一屏刷新8次)取字符表中数据—>AA 的0~7位调整到A 的7~0位 A —>8255的PC 口(左边行)R2R3—>8255的PA 、PB16—>计数器3OFFFEH —>R3R2(允许显示第一行)取字符表中数据—>A A 的0~7位调整到A 的7~0位 A —>8155的PA 口(右边行) 延时10msR2R3循环左移一位计数器3—1=0计数器2—1=0YN4主程序分析4.1程序分析:扫描子程序:DISP1 PROC NEARPUSH SIPUSH CXMOV CX,16 ;计数器,16列依次被扫描MOV BL,0FEH ;上边列输出值MOV BH,0FFH ;下边列输出值REPEAT: MOV DX,LINE1MOV AL,BLOUT DX,AL ;上边列输出MOV DX,LINE2MOV AL,BHOUT DX,AL ;下边列输出LODSBCALL ADJUST ;调整AL,将AL中二进制数旋转180度 MOV DX,ROW1OUT DX,AL ;左边行输出LODSBCALL ADJUST ;调整AL,将AL中二进制数旋转180度 MOV DX,ROW2OUT DX,AL ;右边行输出CALL DL10MSCALL CLEARSTCRCL BL,1RCL BH,1 ;循环移位BX,行线扫描输出0LOOP REPEATPOP CXPOP SIRETDISP1 ENDP初始化程序:INIT_IO PROC NEARMOV DX,ADDR_8255_C ;8255控制字地址MOV AL,80H ;设置8255的PA、PB、PC为输出口 OUT DX,AL ;写控制字MOV DX,ADDR_8155_C ;8155控制字地址MOV AL,03H ;设置8155的PA口为输出OUT DX,AL ;写控制字RETINIT_IO ENDPLED测试子程序:TEST_LED PROC NEAR ;测试LED子程序,点亮LED并延时1S MOV DX,LINE1XOR AL,ALOUT DX,ALMOV DX,LINE2OUT DX,ALMOV AL,0FFHMOV DX,ROW1OUT DX,ALMOV DX,ROW2OUT DX,ALCALL DL500msCALL DL500msRETTEST_LED ENDP显示程序:CHS_1: PUSH CXMOV CX,16CHS_2: CALL DISP_CHINC SIINC SILOOP CHS_2POP CXLOOP CHS_1JMP CHS_SHOW;显示一个16*16点阵子程序,字型码放在DPTR指出的地址DISP_CH PROC NEARPUSH CXMOV CX,8DISP_CH_1: CALL DISP1LOOP DISP_CH_1POP CXRETDISP_CH ENDP;显示一个16*16点阵子程序,字型码放在显示缓冲区XBUFF设置滚动字符数:MOV CX,9LEA SI,HUAN4.2功能解释:①程序一开始就设置好了循环变量,便于滚动显示多个字符,即从“欢”字一直滚动到“仪”字结束,随后进行重复性的循环显示。

相关文档
最新文档