非编码键盘的扫描程序设计(共20页).doc
《非编码键盘的扫描程序设计(共20页).doc》由会员分享,可在线阅读,更多相关《非编码键盘的扫描程序设计(共20页).doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上摘 要计算机控制技术是一门以电子技术、自动控制原理、计算机应用技术为基础,以计算机控制技术为核心,综合可编程控制技术、单片机技术、计算机网络技术,从而实现生产技术的精密化、生产设备的信息化、生产过程的自动化及机电控制系统的最佳化的专门学科。企业对具备较强的计算机控制技术应用能力专门人才需求很大。本文在proteus7.5软件上利用8155芯片来扩展8031单片机的I/O接口,在keil软件下采用C语言编程,生成.hex文件,可以仿真实现6*6矩阵键盘的按键识别和消除按键抖动,将识别到的按键更人性化的在lcd1602的液晶显示,主要由方案设计、硬件电路设计、系统软件设计
2、和系统调试四部分组成。关键词:8031单片机 8155芯片 矩阵键盘 I/O口扩展 1602液晶非编码键盘的扫描程序设计1设计方案1.1 设计任务通过8155扩展8031微控制器I/O口组成66行列式键盘行列式键盘。设计非编码键盘的扫描硬件系统,画出电路图;对键盘按键能够正确识别,去抖动;键盘扫描;撰写设计说明书。1.2 设计方案首先,将用8155芯片扩展8031单片机的I/O口,然后需要检测6*6的矩阵键盘的12根导线可分别接在8155的PB0-PB6和PC口,LCD1602的8根数据线可接在8155的PA0口,控制线接在单片机的P2.0-P2.3,由于8155是可编程芯片,所以将的PA、P
3、B和PC口依次设为输出、输出和输入,通过编写键盘扫描程序来识别按键并返回按键值,最后判断将识别到的按键值形象的显示在LCD1602液晶上。主电路结构框图如图1-1所示。 8031单片机6*6矩阵键盘 8155芯片复位电路 LCD1602 晶振 图1-1 系统结构图2系统硬件设计2.1最小应用系统80C31单片机,它是8位高性能单片机。属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,标准MCS-51单片机的体系结构和指令系统。 80C31内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和
4、5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。但80C31片内并无程序存储器,需外接ROM。 此外,80C31还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。本次设计采用80C31的PDIP(40pin)封装形式,管脚图如图2-1所示。 图2-1 8031管脚图80c31单片机的40根管脚,若要单片机正常工作必须满足:1. 电源线2根 Vcc:编程和正常操作时的电源电压,接+5V。 Vss:地电平。 2. 晶振:2根 XTAL1:振荡器的反相放
5、大器输入。使用外部震荡器是必须接地。 XTAL2:振荡器的反相放大器输出和内部时钟发生器的输入。当使用外部振荡器时用于输入外部振荡信号。 所以可以得到单片机的最小应用系统如图2-2所示。图2-2 8031最小应用系统2.2 8155扩展电路8155芯片介绍关于Intel的8155/8156:是一多功能的可编程外围接口芯片, 40脚双列直插封装,有A口、B口、C口和定时器/计数器低8位以及定时器/计数器高8位五个端口,另外8155内部还有一个命令/状态寄存器,所以8155内部共有6各端口。对它们只需要使用即可实现编址,如表1-1所示。表1-1 8155的端口地址编码AD7AD6AD5AD4AD3
6、AD2AD1AD0对应端口000命令/状态寄存器001A口010B口011C口100定时器/计数器低8位101定时器/计数器高8位8155的A口有输入和输出两种工作方式,B口也有输入和输出两种工作方式,而C口有输入方式(ALT1),输出方式(ALT2),A口控制端口方式(ALT3)以及A口 和B口控制端口方式(ALT4)四种工作方式。这些端口的工作方式是由8155内部的命令寄存器(命令字)来控制的。命令字除了规定端口的工作方式还规定了定时器/计数器的工作方式。命令字只能进行写操作。其格式如图2-3所示。图2-3 8155的命令字结合8031和8155的芯片结构和特点,可设计出如图2-4所示的扩
7、展电路。图2-4 8155扩展电路2.3 矩阵键盘接口电路编码键盘与单片机的接口单片机系统所用的键盘有编码键盘和非编码键盘两种。非编码键盘是由一些按键排列成的一个行列矩阵。按键的作用,只是简单地实现接点的接通和断开,但必须有一套相应的程序与之配合,才能产生出相应的键码。非编码键盘几乎不需要附加什么硬件电路,目前,在微型计算机控制系统中使用比较普遍。本次设计有一个6行6列的非编码键盘,按行依次为1-36,键盘的行线接8155C口的六条线PB5PB0,键盘的列线则接8155C口的6条线,而且在C口接下拉电阻。如图2-5所示。图2-5 矩阵键盘接口电路2.4 LCD1602接口电路LCD1602字符
8、型液晶显示模块是一种专门用于可以显示16列*2行显示字母、数字、符号等点阵式LCD, 16*2等的模块。其管脚介绍如下: 第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写
9、入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。图2-6 LCD1602接口电路第15脚:背光源正极。第16脚:背光源负极。综合可设计液晶与8031单片机及8155芯片的接口电路如图2-6所示。2.5 主电路设计综上各子模块电路的设计,可设计出主电路图如图2-7所示图2-7 主电路图3系统软件设计3.1主程序设计主程序主要包括三个部分:初始化程序,调用判断子程序和调用检测子程序,其中显示子程序被调用在检测子程序中。其流程图如图3-1所示。开始初始化 调用判断子程序 有键闭合?Y N Y 调用检测子程序 结束 图3-1 主程序流
10、程图3.2 延时程序设计延时程序是采用双重for语句循环自减的方法,将i赋值t,j赋值110运用循环重复t遍110自减到0。延时时间计算方法:振荡器的频率为12MHz,一个振荡器周期为1/12微秒,一个机器周期为12/12=1微秒 计算机执行每步就需要1微秒,延时时间就是执行步数*1微秒。子程序流程图如图3-2所示。开 始i赋初值tj赋初值110j自减一是否为零i 自减一是否为零 NN Y 结 束 图3-2 延时子程序流程图3.3 键盘扫描子程序设计设置8155的PA、PB和PC口依次设为输出、输出和输入,这样在没有任何键按下时,所有键盘行线成高电平,列线上的信号都是低电平。按键识别有各种方法
11、,此系统只 “行扫描”法:(1)确定是否有按键按下。PB口输出到键盘的行线,然后检测键盘的列线信号。若没有键按下,则为00000。若有任一个按键按下,则有某一条列线为0,也就是当PB5PB0不为时,就表示有键按下。(2)通过“行扫描”确定已按键的行、列位置。所谓行扫描就是依次给每条行线输入1信号,而其余各行都输入0,并检测每次扫描时所对应的列信号。并检测每次所对应的C口输入。只有在某行上有键按下时,在这一行上输入1,在列输出上才能检测到1信号。若是输入为1的这一行上没有按键按下,则收到的列信号仍然全是0。因此,只要记下列信号不全为0时的B口输出及C口输入,就能确定以按键的位置。这样,通过行扫描
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编码 键盘 扫描 程序设计 20
限制150内