1、课 程 设 计 报 告课程名称:单片机原理及应用课程设计设计题目: 手机键盘 系 别: 通信与与控制工程系 专 业: 电子信息专业 班 级: 09 电二 学生姓名: 学 号: 起止日期: 指导教师: 教研室主任: 2指导教师评语:指导教师签名: 年 月 日成绩项 目 权重1、设计过程中出勤、学习态度等方面 0.22、课程设计质量与答辩 0.53、设计报告书写及图纸规范程度 0.3成绩评定总 成 绩 教研室审核意见:教研室主任签字: 年 月 日教学系审核意见:主任签字: 年 月 日3摘 要本设计利用的 8255A 芯片有 3 个 8 位并行 I/O 口, 8255A 作为单片机与多种外设连接时的
2、中间接口电路提供与主机相连的 3 个总线接口,即数据线、地址线、控制线接口。设计中由单片机控制 8255A 的 PC 口对对 3*3 矩阵键盘进行扫描,判断是否有键按下,并通过计时器计算两次按键之间的间隔。再根据不同的情况,用查表法由 PA 口和 PB 口输出对应的数字。用动态扫描的方法实现三个数字同时输出,以实现手机键盘的模拟。关键词:单片机;8255A 芯片;矩阵键盘;数码管4目 录设计要求.51 方案论证与对比.51.1 方案一.51.2 方案二.51.3 方案对比与选择.62 硬件电路设计.62.1 8255A 芯片引脚连接 .62.2 键盘电路.72.3 系统复位电路的设计.72.4
3、 LED 动态显示模块电路的设计.82.5 晶振电路设计.83.系统软件设计.93.1 8255A 芯片 .93.2 矩阵键盘的设计.103.3 数码管的设计.103.4 定时器 T0 的设计.124 系统调试与功能测试.124.1 系统调试.124.2 系统功能测试.125 详细仪器清单.126 总结与思考及致谢.13参考文献.14附录.15附录一:总电路图.15附录二:总程序.165手机键盘设计要求由开发板上 4*4 的键盘中取 3*3 的键值来模拟手机键盘中的拼音键,由这 9 个按键实现 a 到 z 的输出,由数码管来显示对应的 1-26 的值,如:键值 a 则显示 1,键值 d 则显示
4、 4。提示:用定时器测量两次按键的间隔,进行手机键盘的模拟。测试:能正确输出字母对应的数字,6 位数码管显示 3 次按键的最终结果。1 方案论证与对比1.1 方案一方案一由 STC89C52 单片机直接连接键盘和 6 位 LED,通过对键盘按下的不同返回值的判断,由查表法实现不同情况 LED 下的显示。同时用计时器判断两次按键间的间隔,使数字输出到不同的数码管上。框图如图 1 所示。图 1 方案一框图1.2 方案二方案二的系统由单片机、数码管和键盘扫描 3 部分组成。单片机是整个系统的核心,其定时器的设置是实现所有功能的关键。整个系统的运行方式如:通过程序控制键盘动态扫描及定时,LED 数码管
5、显示器输出扫描显示,用定时器测量两次按键的间隔来控制键盘的调整和数码管的输出,中断返回后即按照设定的模式进入工作状态。框图如图 2 所示:STC89C52键盘6 位 LED 显示6图 2 扫描流程图1.3 方案对比与选择方案一由 STC89C52 单片机直接连接键盘和 6 位 LED,能快速的实现对键盘按键的判断和处理,但不能实现三个数字同时显示。为了解决这个问题,采用 8255A作为中间转换芯片,键盘也采用扫描电路。通过对 8255A 不同端口的选择来实现 6位 LED 的选通和显示,使手机键盘的功能完全的、更好的实现。所以方案二是更好的选择。2 硬件电路设计本设计主要用 STC89C52
6、做主控芯片,由 8255A 作为中间转换芯片连接矩阵键盘和 6 位 LED 数码管。晶振电路和中断电路直接连 STC89C52。总电路框图如图3。图 3 总电路框图2.1 8255A 芯片引脚连接8255A 芯片是一种典型的可编程通用并行接口芯片,用来扩展单片机的端口,它具有 3 个 8 位的并行口,有三位工作方式,可作为单片与各种外部设备连接的接STC89C528255A6 位 LED 显示键盘扫描STC89C52键盘电路 键盘晶振电路中断电路8255A显示电路 数码管7口电路 1。其中 PA 口连接选择数码管的三极管,PB 口连接各数码管的公共端,PC口连接矩阵键盘,如图 4 所示。CS:
7、片选信号线,该引脚为低电平时,8255A 被选中,允许 8255A 与 CPU 通讯。RESET:复位输入线,当该引脚为高电平时,内部寄存器被清除,所有 I/O 口均被置成输入方式。A0、A1:地址输入线,当 A0A1=00 时,PA 口被选中,当 A0A1=00 时,PA 口被选中,当 A0A1=01 时, PB 口被选中,当 A0A1=10 时,PC 口被选中。图 4 8255A 芯片引脚图2.2 键盘电路在单片机系统中键盘中按钮数量较多时,为了减少 I/O 口的占用,常常将按钮排列成矩阵形式。而在本设计中为了通过键盘来调整输出数值,数值要在数码管上显示出来,故我们采用 3*3 矩阵键盘的
8、按键(按键 S5,S6,S7,S9,S10,S11,S13,S14,S15)分别来改变数码管的数值,如图 5 所示:图 5 键盘扫描电路82.3 系统复位电路的设计如单片机的复位电路图 6 示:RST:复位输入。晶振工作时,RST 脚持续 2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出 96 个晶振周期的高电平。特殊寄存器 AUXR 上的DISRT0 位可以使此功能无效。DISRT0 默认状态下,复位高电平有效。图 6 复位电路图2.4 LED 动态显示模块电路的设计 在该电路的设计中需要用到数码管,每个数码管的 8 段由芯片 8255 的 PB 口控制亮灭。PB 口为高
9、电平,则对应的段不亮, PB 口为低电平,则对应的段为亮,所以改变 PB 口的输入就可以输出对应的数字,对应数字的段码可得表 1。数码管的公共用脚分别由 8255 的的 PA0-PA5 经三极管扩流后进行控制 2,由于要输出不同的数字,则只能用动态扫描的方法,每次选通一个数码管。如图 7 所示:图 7 数码管电路原理图92.5 晶振电路设计 本系统采用的是 12MHZ 的晶振,其电路图如图 8 所示:图 8 晶振电路图XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.系统软件设计如图 9 所示,程序首先初始化定时器,定义 8255 工作方式,定时
10、器开启进入键盘扫描,通过程序判断是否有按键按下,获取键值通过数码管显示,定时器中断服务,用定时器测量两次按键的间隔来控制数码管的显示,中断返回后即按照设定的模式进入工作状态,以此来模拟手机键盘的功能。图 9 程序流程图103.1 8255A 芯片随着大规模集成电路的发展,接口电路也被集成在单一的芯片上,许多芯片可以通过编程方法设定工作方式,这种接口芯片被称为可编程 I/O 接口芯片,8255A芯片是最常用的一种。使用 8255A 芯片前,必须对其各个端口地址进行设置,不然无法进行与 CPU 进行通信。由于本设计中需要通过 8255 的 PA、PB、PC 口分别来控制数码管的位选信号、段选信号、
11、键盘的输入,同时还需要对其方式控制字进行设置。3.2 矩阵键盘的设计矩阵键盘是本设计中的一个关键。在对键盘进行判断和处理时采用的是动态扫描的方法:先将 PA0 拉高,然后扫描 PC 各行的电平状态,若哪一行出现高电平,即可知道该行的按键被按下。当按键每被按下一次,所对应的数码管的数值就会显示出相对应的数值,每个按键连续按下 3 次,又将回到该按键的初始值。从而很容易地实现了手机键盘一键多输出的功能的可调。NY图 10 键盘流程图3.3 数码管的设计数码管的显示首先应该了解其结构,本组用到的数码管是共阳极的,当在公共引脚接上电源正极,笔画脚通过一个 1k 的电阻接负极,对应的笔画就会点亮。显示键盘扫描开始键盘消抖键盘是否按下键盘消抖键值处理返回