1、1微机原理与接口技术-8086CPU 小键盘课程设计导读:就爱阅读网友为您分享以下“微机原理与接口技术-8086CPU 小键盘课程设计”资讯,希望对您有所帮助,感谢您对 的支持!宜春学院物理科学与工程技术学院课 程 设 计 报 告课程名称: 微机原理与接口技术 设计题目:基于8086CPU 的小键盘设计 设计时间: 2014 年 6 月 班 级: 姓 名: 学 号:2一课程设计要求:使用行扫描法或者线反转法识别 4*4的非编码小键盘,并将键入的键值(0-9,A-F )显示在数码管上。 二课程设计目的1. 掌握 8255 的使用和编程方法。1 2. 通过 8255 设计键盘扫描及它们的输入输出
2、方式和它们的控制字。综合运用本学期所学的关于汇编的知识,在实验中进一步熟悉本学期所学的课程并结合实际生活,掌握汇编的应用。3. 注重键盘扫描的方法设计以及解决问题的思路。4. 了解任何微机应用开发工作都离不开接口的技术、选用及连接。微机应用系统需要设计的硬件是一些接口电路,所要编写的软件是控制这些接口电路按要求工作的驱动程序。重点讲述可编程并行接口芯片 8255A 、内部结构、工作方式、初始化编程及其应用实例。总体方案设计设计注意问题在唐都实验箱上实现键盘扫描并显示在 LED 上,比如当按下6时,LED 会显示 6 的字样。总体设计方案如下:31. 实现键盘的扫描(键号与键值的对应) 。2.
3、防抖动措施。3. 防重键的措施。总体思路本次试验报告的整体思路如下:1. 行开放,找到列值并保存;2. 逐行扫描,找到行值并保存;3. 行值和列值组合成键特征值;4. 根据键特征值找到键号;5. 根据键号查表得段码;6. 送出相应位码。键盘扫描逻辑性很强,步步相扣。思路显得尤其重要。2 硬件设计8255 工作原理并行接口是以数据的字节为单位与 I/O 设备或被控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时传递 8 位、16 位或 32 位等。8255 A 可编程外围接口芯片是 Intel 公司生产的通用并行 I/O 接口芯片,它具有 A 、B 、C 三个并行接口,用
4、+5V 单电源供电,能以下三种方式下工作:4方式 0:基 输入/输出方式方式 1:选通输入/输出方式方式 2:双向选通工作方式8255A 的内部结构及引脚如图 3.1 所示,8255 工作方式控制字和 C 口按位 置位/复位控制字格式如图 3.2 所示。双向选通工作方式。8255 的内部结构及引脚如图 3.1 所示,8255 工作方式控制字和 C 口按位置位/复位控制字如图 3.3所示图 3.1 8255 的内部结构及引脚3列 0 列 1 列 2 列 3图 3.2 8255 工作方式控制字和 C 口按位置位/复位控制字键盘工作原理唐都实验箱提供的是 4*4 的小键盘,如下图所示, 列为高电平。
5、并且位选口与行控口共用端口。5键盘原理图 3.2:4图 3.2 键盘原理图键盘工作原理阐述:每一个键跨接在行、列线之间; 在无按键时,列线固定为高电平;列控制口用于读入列线状态,即列值。 行线电平受控于“行控制口”,行控口输出的信号称为行值 某键未按下,该键关联的行、列线不通;按下,则把行线的电平引入列线。设置行线为低电平,则把行线的低电平引入列线。键特征值的形成根据键盘的工作原理可以得到如下键特征值表 3.3:653.3 键特征值表段值的形成显示段值见表 3.468255 接线图图 3.5 8255 接线图寄存器地址选取根据唐都实验仪器提供的手册,选取 IOY1 作为 8255 芯片的片选端
6、口,A1 A0 为片内译码。即:7 PA 口地址: 0640HPB 口地址: 0642HPC 口地址: 0644PD(控制口) 地址: 0646H 软件设计8255 初始化7以 PC 为列控口;以 PA 低 4 位为行控口;列口为输入,行口输出;显示以 PB 为段选口;PB 口输出;PA 低 6 位为位选。根据 3.1 与 3.2 得出 8255 芯片的控制字为:10001001B ,即:89H 。 键盘扫描的处理方法判断是否有键被按下的方法行开放:使所有行线输出低电平,从列控口读入列状态(列值)即:通过行控口,输出全 0 。4 条行线均为低电平。如果没有键按下,则行线低电平不会引入到列线,从
7、列控口读入的必为全 1;只要有一个键按下,如F键,则行 1 的低电平引入列3,从列控口读入的列值为 1110,非全 1,由此得出判断是否有键按下的条件: 读入的列值为全 1,无按键;非全 1,必有按键!判断是否有键被按下的流程:1. 让行线输出全为 0;2. 读列的值;88 3. 判断列值是否全为 0;4. 若不全为 0,则说明有按键按下;5. 全为 0,则说明没有按键按下,继续等待输入。判断是否有键被按下的源程序MOV DX,0640HMOV A L,00HOUT DX,A LJXSR: MOV DX,0644HIN AL,DXAND AL,0FHCMP AL,0FHJE JXSR对源程序的
8、解释:程序中只需要 C 口低四位,所以用“AND AL,0FH” 对低 4 位保存防抖动防抖动措施对按键来说是必需的,可以让微机准确输入,在课程设计中,利用延时子程序来实现防抖动。防抖动的延时子程序DELAY PROC NEAR ; 延时子程序MOV CX,0F000HDLP: LOOP DLP9RETDELAY ENDP9 程序核心部分逐行扫描问题:怎么判断按键说在行的位置?查阅资料,判断按键所在行的位置用逐行扫描的方法。逐行扫描:使行线输出逐一为低电平,从列控口读入列状态(列值) 。 此时如果列值读入为全 1,则按键不在本行;非全 1,在本行。 判断是否有键被按下的流程:1. 使第 0 行
9、为 0(扫描 0 行) ;2. 读入列值;3. 判断列值是否全为 04. 若列值全为 0,则说明按键不在本行;5. 列值移位,再次读入列值,进行判断。逐行扫描的源程序LOP1:MOV DX,0640HOUT DX,ALMOV DX,0644HIN AL,DXAND AL,0FHCMP AL,0FH10JNE ZJSCROL AH,1MOV AL,AHJMP LOP1逐行扫描的源程序的解释:ROL AH,1,行值移位后继续扫描。10 源程序代码根据整体思路以及软件设计得到的代码DATA SEGMENTDZTAB LE DB 3FH,06H,5BH,4FH , 66DB 6DH,7DH,07H,7
10、FH,6FH DB 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,AX11MOV DX,0646HMOV AL,89HOUT DX,AL ;初始化T1: MOV DX,0640H ;行开放MOV AL,00HOUT DX,ALJ XSR: MOV DX,0644HIN
11、A L,DXAND AL,0FHCMP AL,0FHJ E JXSRCA LL DE LAY ;防抖动MOV BL,A L ;保存列值11 MOV AL,0FEH ;逐行扫描 MOV AH,ALLOP 1:MOV DX,0640HOUT DX,ALMOV DX,0644HIN A L,DXAND AL,0FHCMP AL,0FH12J NE ZJSCRO L AH,1MOV AL,AHJ MP LOP 1ZJ SC:SHL BL, 4AND AH,0FHOR B L,AH ;形成键特征值 J NP AAA ;防重键 LEA SI, J ZTABLEMOV CL,0LOP 3:CMP BL, S
12、IJ E LO P 2INC CLINC SIJ MP LOP 3LOP 2:MOV DX,0640HMOV AL,00HOUT DX,ALLOP 4: MOV DX,0644HIN A L,DXAND AL,0FHCMP AL,0FH1312 J NE LO P 4CA LL DE LAYLEA DI, DZTAB LE MOV BX,DIMOV AL,C LX LATMOV DX,0642HOUT DX,ALMOV DX,0640HMOV AL,00HOUT DX,ALAAA J MP T1MOV DX,0640HMOV AL,00HOUT DX,ALMOV AH,4CHINT 21HDE LAY P ROC NEAR ; 延时子程序 MOV CX,0F000H DLP : LOOP DLPRETDELAY ENDPCODE ENDS1413参考文献1.80*86 微机原理指导书2. 微机原理实验和课程设计指导书3. 姚燕南 薛钧义 主编 微机原理与接口技术 高等教育出版社百度搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆