(实验四)单片机矩阵键盘检测和液晶仿真实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四单片机矩阵键盘检测和液晶仿真实验
(4学时)
一、实验任务
利用51单片机实现4X4矩阵键盘和LCD1602液晶显示人机交互系统,编程实现:
(1)按键扫描(1、2、……9、A、B、C、D、E、F)和LCD1602显示按键的键号,格式为:KEYNUM+按键号;
(2)LCD1602的第一行显示加1功能,初始数字为980,显示位置自己确定,每次按下某一个按键,数字加1,范围为15---20;
二、实验目的
1、掌握仿真软件Proteus和单片机联调的方法;
2、掌握矩阵键盘扫描检测的原理,并且编程实现键盘按键的检测;
3、掌握LCD1602液晶显示的原理,并且编程实现LCD1602的显示功能;
4、掌握利用单片机实现键盘检测和液晶显示的功能组合,并掌握独立编程控制的能力。
三、实验设备
电脑、Proteus软件、Keil软件
四、实验原理
(一)矩阵键盘扫描检测原理
按照按键结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点开关按键,如电气式按键、磁感应按键等。在单片机应用系统中,通过按键实现控制功能和数据输入是非常普遍的。在所需按键数量不多时,系统常采用独立式按键。独立式按键是指每个按键单独占有一根I/O口线,且其工作状态不会影响其他I/O口线的工作状态。这种按键的电路配置灵活,软件结构简单。不过在实际应用中,由于不同的系统对按键的要求不同,因此,对按键程序的设计要考虑全面,以便更好地完成按键所设定的功能。在按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图4.1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一
个按键加以连接。这样一个端口(如P1口)就可以构成4×4=16个按键,比直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出1键(共9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些。图4.1中,列线与行线通过按键连接。假如将行线所接单片机的I/O口置高电平,作为输入端;将列线所接I/O口置低电平,作为输出端。当按键没有按下时,所有行线都是高电平,所有列线都是低电平。一旦有按键按下,则对应的行线输入端就会被拉低变成低电平,通过读入行线的状态就可得知是否有键按下了。
图4.1 矩阵键盘示例
(一)LCD1602液晶显示原理
1602液晶为5V电压驱动,带背光,可两行显示,每行16个字符,不能显示汉字,内含28个字符的ASCII字符集字库。其有两种显示形式,一是在液晶的任意位置显示字符;另一是滚动显示一串字符。
图4.2 LCD1602液晶引脚功能
具体操作时序等资料,请查阅课本知识。
(二)步骤
1、Proteus仿真电路设计;
(1)设计原理图;(2)放置仿真元器件;
2、在Keil软件里面设计程序,生成HEX文件;
3、将HEX文件加载到仿真系统的51单片机里面,运行仿真,调试程序。
五、实验报告要求
1、截图仿真界面,包括程序、proteus原理图,显示的界面,图片不宜过大;
2、详细的画出矩阵键盘检测的C语言流程图。
3、请写下自己对于LCD1602时序的理解,一百字左右。