武汉理工大学《计算机控制技术》课程设计说明书
这时,A、B、C口的口地址低8位分别为01H、02H、03H(设地址无关位为0)。 表4-2 8155芯片的I/O口地址 CE 0 0 0 0 0 0 0 IO/M 1 1 1 1 1 1 0 A7-A3 XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX A2A1A0 000 001 010 011 100 101 XXX 所选端口 命令 / 状态寄存器 A口 B口 C口 计数器低8位 计数器高8位 RAM单元 8155的A口、B口可工作于基本I/O方式或选通I/O方式。C口可工作于基本I/O方式,也可作为A口、B口在选通工作方式时的状态控制信号线。当C口作为状态控制信号时,其每位线的作用如下: PC0:A INTR(A口中断请求线) PC1:A BF(A口缓冲器满信号) PC2:ASTB(A口选通信号) PC3:B INTR(B口中断请求线) PC4:B BF(B口缓冲器满信号) PC5:BSTB(B口选通信号) 8155的I/O工作方式选择是通过对8155内部命令寄存器设定控制字实现的。命令寄存器只能写入,不能读出,命令寄存器的格式如图4-3所示。 TM2 TM1 IEB IEA PC2 PC1 PB PA 图4-3 8155命令寄存器的格式 PB、PA:A、B口工作方式:0 输入;1 输出。 PC2、 PC1: C口工作方式:00 ALT1(输入);01 ALT2(输出);10 ALT3(选通); 11 ALT4(选通方式)。
9
武汉理工大学《计算机控制技术》课程设计说明书
IEB IEA: A、B口中断允许位:0 禁止中断;1 允许中断。
TM2 TM1:计数器工作方式:00 无操作;01 停止计数; 10 计满后停止;11开始计数。
在ALT1~ALT4的不同方式下,A口、B口及C口的各位工作方式如下: ALT1:A口,B口为基本输入/输出,C口为输入方式。 ALT2:A口,B口为基本输入/输出,C口为输出方式。
ALT3:A口为选通输入/输出,B口为基本输入/输出。PC0为AINTR,PC1为ABF,PC2为 ,PC3~PC5为输出。
ALT4:A口、B口为选通输入/输出。PC0为AINTR,PC1为ABF,PC2为 ,PC3为BINTR,PC4为BBF,PC5为 。
8155内还有一个状态寄存器,用于锁存输入/输出口和定时/计数器的当前状态,供CPU查询用。状态寄存器的端口地址与命令寄存器相同,低8位也是00H,状态寄存器的内容只能读出不能写入。所以可以认为8155的I/O口地址00H是命令/状态寄存器,对其写入时作为命令寄存器;而对其读出时,则作为状态寄存器。
4.2 硬件电路
4.2.1矩阵式键盘电路
矩阵式键盘将按键设置在行列线的交叉点上,行列线分别连接到按键的两端。行线通过上拉电阻接至+5V电压,即行线的输出被钳位到高电平状态;判断有无按键按下时通过列线送出扫描信号,然后行线读取状态得到。其方法是依次给列线送低电平,检查行线的输入。若行线为高电平,则代表所在行无按键被按下,如果行线出现低电平,则低电平所在的行和出现低电平的列的交叉点处有按键按下。矩阵式键盘电路如图4-4所示。
10
武汉理工大学《计算机控制技术》课程设计说明书
图4-4 矩阵式键盘电路
4.2.2时钟电路和复位电路
时钟振荡器是单片机工作节奏的原始动力,单片机的所有工作时序都是靠时钟振荡信号来控制的,没有时钟振荡,单片机就无法工作。8031的内部时钟电路实际上仅是一个可以构成振荡器的电路。使用时还要外接元件才能变成振荡器。
外部连接的晶振电路如图4-5所示。
11
武汉理工大学《计算机控制技术》课程设计说明书
图4-5 晶振电路
复位的目的是对单片机的片内电路重新进行初始化,使有关部件都恢复到原先规定的初始工作状态。8031的外接复位电路如图4-6所示。
图4-6 复位电路
4.2.3非编码键盘的总电路
图4-7为总电路图。总电路是用8031单片机控制,通过8155扩展I/O口组
12
武汉理工大学《计算机控制技术》课程设计说明书
成的6×6行列式键盘电路。其中8031的P0口与8155的AD0~AD7相连,传递地址、数据、命令与状态信息。PA0~PA5作为列线输出,PC0~PC5作为行线输入。PC0~PC5通过上拉电阻接到+5V上,而当有按键按下时,行线电平状态由与此行线相连的列线电平决定。列线电平如果为低,则行线电平为低;列线电平如果为高,则行线电平亦为高。进行扫描时,先令PA0~PA5均输出0,确定有没有键被按下,若有键被按下,则令PA0~PA5逐个输出为0,其它输出为1,然后读入PC口的数据,看哪一行为零电平,则此行与此列的交叉处的键被按下。
图4-7 非编码键盘总电路图
5系统软件设计
5.1软件思想
编程的依据是键盘扫描的原理。在程序里,先将PA口置零输出,然后读取PC口的值,看PC口有没有为低电平的位,如果有,则表示有按键按下,接下来将PA0~PA5逐位置零,读取PC口的值,看哪一位为零,则改行与该列交点处的按键被按下,计算键值入栈保存。
13
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库非编码键盘的扫描程序设计(3)在线全文阅读。
相关推荐: