回顾之前编程教程,第1篇是I/O篇,I/O主要说明I/O的引脚特性以及如何通过C51控制I/O的电平输入输出;第2篇是中断篇,中断篇中介绍了中断系统必要性以及如何使用单片机中的中断系统(外部中断0、外部中断1、定时器/计数器0、定时器/计数器1、串行中断)。
通过I/O篇与中断篇的学习,其实基本学习完51单片机了。应用篇的出现是为了更好的利用单片机去做项目,通过做项目更好的利用单片机中I/O与中断系统。
言归正传,开始本文内容。
在I/O篇的综合练习中,矩阵键盘用作输入,单片机数据处理与控制I/O口,数码管用作显示,如下图所示。
上面的结构,可以总结成3个部分:
输入部分:键盘
中央处理部分:51单片机
输出部分:数码管
根据具体的项目三个部分,都可以选择不一样的硬件构成。例如,输入部分可以选择红外接收头,接收红外的键值码;中央处理部分,选择其他的单片机;输出部分,可以换成LCD1602,甚至直接将数据上传给其他的上位机(输出数据作为上位的输入)。
LCD1602
实物:
引脚定义:
引脚1与引脚16接地;引脚2与引脚15接+5V;VL为液晶显示偏压信号接可调电阻,可以调节液晶显示的清晰度;
其他引脚均用于读写数据与命令的
原理图:
字符编码与字符图案的关系:
字符编码:指的是字符图案的编码;
字符图案:显示的效果
说明:当字符编码为0x30时,字符图案显示“0”;
LCD的字符编码与ASCII码
上图是ASCII码表,ASCII编码中0x21~0x7F与LCD字符编码的显示图案一样。假设程序将“1”传送给LCD(实际上传送的二进制数是0x31),LCD会显示出“1”(LCD根据0x31会显示“1”)。