微机原理与接口技术-键盘LED显示课程设计BY(凉)_第1页
微机原理与接口技术-键盘LED显示课程设计BY(凉)_第2页
微机原理与接口技术-键盘LED显示课程设计BY(凉)_第3页
微机原理与接口技术-键盘LED显示课程设计BY(凉)_第4页
微机原理与接口技术-键盘LED显示课程设计BY(凉)_第5页
已阅读5页,还剩16页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、重庆大学课 程 设 计 报 告课程名称:微机原理与接口技术 设计题目:院 系:电气信息学院 班 级:2007级 设计时间:2009年12月第一章 概述 . 21.1学习目的 . 21.2 计算机的应用 . 21.3学习计算机的意义. 31.4课程设计目的 . 3第二章 总体方案设计 . 42.1 设计注意问题 . 42.2 总体思路 . 4第三章 硬件设计 . 53.1 8255工作原理 . 53.2 键盘工作原理 . 73.3 键特征值的形成 . 83.4段值的形成 . 83.5 8255接线图 . 9第四章 软件设计 . 104.1 8255初始化 . 104.2 键盘扫描的处理方法. 1

2、04.2.1. 判断是否有键被按下的方法 . . 104.2.2. 判断是否有键被按下的源程序 . . 114.2.3 防抖动 . 114.2.4. 防抖动的延时子程序 . . 124.3 程序核心部分 . 124.3.1 逐行扫描 . 124.3.2逐行扫描的源程序 . . 12第五章 源程序代码 . 135.1 根据整体思路以及软件设计得到的代码 . . 135.2 以上代码存在问题分析. 16第六章 难点分析 . . 16第七章 体会 感慨 建议 . 20第八章 参考文献 . 21第一章 概述“微机原理与接口技术”是电气工程及其自动化专业的一门重要的专业基础课程。我们通过该门课的学习,知

3、道了微机的工作原理,微型计算机的基本结构,接口技术及汇编语言程序设计,为后续的课程的学习和今后的工作打下坚实的基础。通过实验可以培养学生利用计算机技术和编程手段分析,解决专业领域的各种问题的能力和意识,并进一步感受微机发展的微机发展的新技术和新方法。1.2 计算机的应用目前计算机的应用已经遍布各个行业,如科学计算、数据处理、过程控制、人工智能、网络应用等。科学和工程计算:科学和工程计算的特点是计算量大,而逻辑关系相对简单,它是计算机重要应用领域之一。数据和信息处理:数据处理是指对数据的收集、存储、加工、分析和传送的全过程。这些数据处理应用的特点是数据量很大,但计算相对简单。多媒体技术的发展,为

4、数据处理增加了新鲜内容,都涉及更广泛的数据类型,这些数据处理过程不仅数据量大,而且还会带来大量的运算和复杂的运算过程。过程控制:过程控制是生产自动化的重要技术内容和手段,它是由计算机对所采集到的数据按一定方法经过计算,然后输出到指定执行机构去控制生产的过程。人工智能:人们把计算机模拟人脑力劳动的过程成为人工智能。人工智能是利用计算机来模拟人的思维过程,并利用计算机程序来实现这些过程。电子计算机是一种能自动高速地进行大量运算的电子机器。电子计算机的出现和发展,是科学技术和生产力的卓越成就之一,反过来,它也极大地促进了科学技术和生产力的发展。微型计算机的发展前景是不可估量的。微型计算机功能强,体积

5、小,使用方便,可靠性高,价格低廉,因而应用范围非常广泛,航天工业,交通运输,医药卫生甚至家庭生活及教学仪器等方面都广泛地使用了微型计算机。毫无疑问,今后微型计算机在人类社会和日常生活中的影响将会越来越大。感受接口的重要作用,学会微机与接口的综合应用。掌握接口的编程技术。1. 掌握 8255的使用和编程方法。2. 通过8255设计键盘扫描及它们的输入输出方式和它们的控制字。综合运用本学期所学的关于汇编的知识,在实验中进一步熟悉本学期所学的课程并结合实际生活,掌握汇编的应用。3. 注重键盘扫描的方法设计以及解决问题的思路。4. 了解任何微机应用开发工作都离不开接口的技术、选用及连接。微机应用系统需

6、要设计的硬件是一些接口电路,所要编写的软件是控制这些接口电路按要求工作的驱动程序。重点讲述可编程并行接口芯片8255A 、内部结构、工作方式、初始化编程及其应用实例。第二章 总体方案设计2.1 设计注意问题在唐都实验箱上实现键盘扫描并显示在LED 上,比如当按下6时,LED 会显示6的字样。总体设计方案如下:1. 实现键盘的扫描(键号与键值的对应)。2. 防抖动措施。3. 防重键的措施。2.2 总体思路本次试验报告的整体思路如下:1. 行开放,找到列值并保存;2. 逐行扫描,找到行值并保存;3. 行值和列值组合成键特征值;4. 根据键特征值找到键号;5. 根据键号查表得段码;6. 送出相应位码

7、。键盘扫描逻辑性很强,步步相扣。思路显得尤其重要。第三章 硬件设计3.1 8255工作原理并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255 A 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A 、B 、C 三个并行接口,用+5V 单电源供电,能以下三种方式下工作:方式0:基 输入/输出方式 方式1:选通输入/输出方式 方式2:双向选通工作方式8255A 的内部结构及引脚如图3.1 所示,8255 工作方式控制字和C 口按位 置位/复位控制字格式如图3.2所示。双

8、向选通工作方式。8255的内部结构及引脚如图3.1所示, 图3.1 8255的内部结构及引脚 图3.2 8255工作方式控制字和C 口按位置位/复位控制字 列0 列1 列2 列33.2 键盘工作原理唐都实验箱提供的是4*4的小键盘,如下图所示, 列为高电平。并且位选口与行控口共用端口。 键盘原理图3.2:图3.2 键盘原理图键盘工作原理阐述: 每一个键跨接在行、列线之间; 在无按键时,列线固定为高电平;列控制口用于读入列线状态,即列值。 行线电平受控于“行控制口”,行控口输出的信号称为行值 某键未按下,该键关联的行、列线不通;按下,则把行线的电平引入列线。设置行线为低电平,则把行线的低电平引入

9、列线。3.3 键特征值的形成根据键盘的工作原理可以得到如下键特征值表3.4: 3.5 8255接线图 3.6 寄存器地址选取根据唐都实验仪器提供的手册,选取IOY1作为8255芯片的片选端口,A1 A0为片内译码。即:PA 口地址: 0640HPB 口地址: 0642HPC 口地址: 0644PD(控制口 地址: 0646H 第四章 软件设计4.1 8255初始化以PC 为列控口;以PA 低4位为行控口;列口为输入,行口输出;显示以PB 为段选口;PB 口输出;PA 低6位为位选。根据3.1与3.2 得出8255芯片的控制字为:10001001B ,即:89H 。4.2 键盘扫描的处理方法4.

10、2.1. 判断是否有键被按下的方法行开放:使所有行线输出低电平,从列控口读入列状态(列值)即:通过行控口,输出全0 。4条行线均为低电平。如果没有键按下,则行线低电平不会引入到列线,从列控口读入的必为全1;只要有一个键按下,如F键,则行1的低电平引入列3,从列控口读入的列值为1110,非全1,由此得出判断是否有键按下的条件:读入的列值为全1,无按键;非全1,必有按键!判断是否有键被按下的流程:1. 让行线输出全为0;2. 读列的值;3. 判断列值是否全为0;4. 若不全为0,则说明有按键按下;5. 全为0,则说明没有按键按下,继续等待输入。4.2.2. 判断是否有键被按下的源程序MOV DX,

11、0640HMOV A L,00HOUT DX,A LJXSR: MOV DX,0644HIN AL,DXAND AL,0FHCMP AL,0FHJE JXSR对源程序的解释:程序中只需要C 口低四位,所以用“AND AL,0FH” 对低4位保存4.2.3 防抖动防抖动措施对按键来说是必需的,可以让微机准确输入,在课程设计中,利用延时子程序来实现防抖动。4.2.4. 防抖动的延时子程序DELAY PROC NEAR ; 延时子程序MOV CX,0F000HDLP: LOOP DLPRETDELAY ENDP4.3 程序核心部分4.3.1 逐行扫描问题:怎么判断按键说在行的位置?查阅资料,判断按键

12、所在行的位置用逐行扫描的方法。逐行扫描:使行线输出逐一为低电平,从列控口读入列状态(列值)。 此时如果列值读入为全1,则按键不在本行;非全1,在本行。 判断是否有键被按下的流程:1. 使第0行为0(扫描0行);2. 读入列值;3. 判断列值是否全为04. 若列值全为0,则说明按键不在本行;5. 列值移位,再次读入列值,进行判断。LOP1:MOV DX,0640HOUT DX,ALMOV DX,0644HIN AL,DXAND AL,0FHCMP AL,0FHJNE ZJSCROL AH,1MOV AL,AHJMP LOP1逐行扫描的源程序的解释:ROL AH,1,行值移位后继续扫描。第五章 源

13、程序代码5.1 根据整体思路以及软件设计得到的代码DATA SEGMENTDZTAB LE DB 3FH,06H,5BH,4FH , 66DB 6DH,7DH,07H,7FH,6FHDB 77H,7CH,39H,5EH,79H,71HJ ZTAB LE DB 7EH,7DH,7BH,77HD B 0BEH,0BDH,0BBH,0B7HD B 0DEH,0DDH,0DBH,0D7HD B 0EEH,0EDH,0EBH,0E7HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,0646HMOV

14、AL,89HOUT DX,AL ;初始化T1: MOV DX,0640H ;行开放MOV AL,00HOUT DX,ALJ XSR: MOV DX,0644HIN A L,DXAND AL,0FHCMP AL,0FHJ E JXSRCA LL DE LAY ;防抖动 MOV BL,A L ;保存列值 MOV AL,0FEH ;逐行扫描 MOV AH,ALLOP 1:MOV DX,0640HOUT DX,ALMOV DX,0644HIN A L,DXAND AL,0FHCMP AL,0FHJ NE ZJSCRO L AH,1MOV AL,AHJ MP LOP 1ZJ SC:SHL BL, 4AN

15、D AH,0FHOR B L,AH ;形成键特征值LEA SI, J ZTABLEMOV CL,0LOP 3:CMP BL, SIJ E LO P 2INC CLINC SIJ MP LOP 3LOP 2:MOV DX,0640H MOV AL,00H OUT DX,AL LOP 4: MOV DX,0644H IN A L,DX AND AL,0FH CMP AL,0FH J NE LO P 4 CA LL DE LAY LEA DI, DZTAB LE MOV BX,DI MOV AL,C L X LATMOV DX,0642H OUT DX,AL MOV DX,0640H MOV AL,

16、00H OUT DX,ALMOV AH,4CH INT 21HDE LAY P ROC NEAR ; 延时子程序 MOV CX,0F000H DLP : LOOP DLP RET DELAY ENDP CODE ENDS5.2 以上代码存在问题分析以上源代码在理论上已经准确了,但是任然不能调试成功,经过细心检查,发现源程序中的延时子程序出现问题。DELAY PROC NEAR ; 延时子程序 MOV CX,0F000H DLP: LOOP DLP RETDELAY ENDP CODE ENDS在延时子程序中用了寄存器CX ,但是后面程序中还要用CX ,没有保存现场。 应该改为:DELAY P

17、ROC NEAR P USH CXMOV CX,0F000H DLP : LOOP DLP P OP C X RETDELAY ENDP CODE ENDS第六章 难点分析本课程设计的难点之一是行扫描的实现。以上工作做完后,已经能显示了,键盘扫描问题就基本解决了。但是本课程设计的又一难点怎么实现防重键?我想的方法是根据键特征值去判断:观察键特征值,发现键特征值0的个数均是偶数。就利用此条件去判断,若出现奇数则是重键,具体操做见一下程序DATA SEGMENTDZTAB LE DB 3FH,06H,5BH,4FH , 66DB 6DH,7DH,07H,7FH,6FH DB 77H,7CH,39H

18、,5EH,79H,71HJ ZTAB LE DB 7EH,7DH,7B H,77HD B 0BEH,0BDH,0BBH,0B7H D B 0DEH,0DDH,0DBH,0D7H D B 0EEH,0EDH,0EBH,0E7H DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,0646H MOV AL,89HOUT DX,AL ;初始化 T1: MOV DX,0640H ;行开放 MOV AL,00H OUT DX,AL J XSR: MOV DX,0644H IN A L,DX AN

19、D AL,0FH CMP AL,0FH J E JXSRCA LL DE LAY ;防抖动 MOV BL,A L ;保存列值 MOV AL,0FEH ;逐行扫描 MOV AH,AL LOP 1:MOV DX,0640H OUT DX,AL MOV DX,0644HIN A L,DX AND AL,0FH CMP AL,0FH J NE ZJSC RO L AH,1 MOV AL,AH J MP LOP 1 ZJ SC:SHL BL, 4 AND AH,0FHOR B L,AH ;形成键特征值 J NP AAA ;防重键 LEA SI, J ZTABLE MOV CL,0 LOP 3:CMP B

20、L, SI J E LO P 2 INC CL INC SI J MP LOP 3 LOP 2:MOV DX,0640H MOV AL,00H OUT DX,AL LOP 4: MOV DX,0644H IN A L,DX AND AL,0FH CMP AL,0FH J NE LO P 4 CA LL DE LAY LEA DI, DZTAB LE MOV BX,DI MOV AL,C LX LATMOV DX,0642H OUT DX,AL MOV DX,0640H MOV AL,00H OUT DX,AL AAA J MP T1MOV DX,0640HMOV AL,00H OUT DX,A

21、LMOV AH,4CH INT 21HDE LAY P ROC NEAR ; 延时子程序 MOV CX,0F000H DLP : LOOP DLP RET DELAY ENDP CODE ENDS这才是本次课程设计的最终可执行程序。第七章 体会 感慨 建议 1、通 过 这 次 课 程 设 计 ,加 强 了 我 们 动 手 、思 考 和 解 决 问 题 的 能 力 。在 整 个 设 计 过 程 中 , 我 们 通 过 这 个 方 案 包 括 设 计 了 键 盘 扫 描 LED 显 示 。 这 个 方 案 使 用 了 8255 可 编 程 接 口 芯 片 。 2 、在 设 计 过 程 中 ,经 常 会 遇 到 这 样 那 样 的 情 况 ,就 是 心 里 想 老 着 这 样 的 接法可以行得通,但实际接上电路,总是实现不了,因此耗费在这上面 的时间用去很多。 3. 通 过 这 次 课 程 设 计 使 我 懂

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论