发布时间 : 星期日 文章CAN总线温度控制节点设计更新完毕开始阅读
图2-7 按键与单片机连接图 2.3.2 键盘功能模块软件设计流程
键盘功能模块软件流程为:开始→液晶程序初始化→等待按键被按下→进入设置温度界面→按加减键输入数据→设置温度→结束。
流程图如图2-8所示: 开始
液晶程序初始化
N 按键是否按下?
Y
进入设置界面
按加减键输入
数据
设置温度值
显示
结束
图2-8 温度设置子程序流程图
10
程序如下:
void key() {
if(key0==0) {
delay(10); // 消抖延时 if(key0==0); time1++;
if(time1==91) time1=30;
while(!key0); //等待按键释放 delay(10);
while(key0!=1); stPID.SetPoint=time1; }
if(key1==0) {
delay(10); //消抖延时 if(key1==0); time1--;
if(time1==29) time1=90;
while(!key1); //等待按键释放 delay(10);
while(key1!=1); stPID.SetPoint=time1; } }
2.3.3 按键的软件消抖措施
通常我们在检测单片机的按键时,要等按键确认释放后,才去执行相应的代码。由于单片机执行代码的速度非常快,而且是循环检测按键,所以当按下一个键的时候,单片机会在程序循环中多次检测到键被按下,从而造成错误的结果。 要解决误按问题,在编写单片机的键盘检测程序时,可在检测按下时加入去抖延时,检测松手时可以不用加,这样就可以防止误按的发生,以避免错误结果的生成。
按键检测流程图如图2-9所示:
11
开始 寄存器初始化及单片 机I/O端口初始化
N 检测是否有键
按下?
Y 延时10ms
N 检测是否有键 按下?
Y
N 检测按键是 否释放
Y 读键码 注:
图2-9按键检测流程图
2.4 液晶显示软件设计
本液晶显示模块采用常用液晶LCD1602作为数据输出显示。LCD1602液晶为5V电压驱动,带背光,可显示两行,每行16个字符,不能显示汉字,内置含128个字符的ASCII字符集字库,只有并行接口,无串行接口。
12
2.4.1 1602接口电路及其接口信号说明 接口电路如图2.10
图2-10 接口电路
接口信号说明如表2-2所示:
表2-2 液晶接口信号说明
编号 1 2 3 4 5 6 7 8 符号 VSS VDD VO RS R/W E D0 D1 引脚说明 电源地 电源正极 液晶显示对比度调节端 数据/命令选择端(H/L) 读写选择端(H/L) 使能信号 数据口 数据口 编号 9 10 11 12 13 14 15 16 符号 引脚说明 D2 D3 D4 D5 D6 D7 BLA BLK 数据口 数据口 数据口 数据口 数据口 数据口 背光电源正极 背光电源负极
2.4.2 主要技术参数
13