整体电路图如下所示:
首先简单介绍一下LCD1602模块,该模块具体的信息网上有很多资源可以参考:
RS:数据或命名选择端。(0:命令 1:数据)
RW:读写控制端。 (0:写 1:读)
E:使能端
D0-D7:数据端
写指令的时候应该:RS=0,RW=0,D0-D7=data,E=1,延时一段时间,E=0;
写数据的时候应该:RS=1,RW=0,D0-D7=data,E=1,延时一段时间,E=0;
接下来详细介绍PIC16F877A的AD转换功能:
直接看官方文档的介绍:
从中可以知道,对于28脚系列的 器件,有5路模拟输入端,对于40/44脚的器件,有8路模拟输入端。输入的模拟电压会被转换为10位的数字量,也就是AD的有效位数为10位。AD转换的参考电压是软件可配置的。
与AD转换模块密切相关的寄存器为:
ADRESH: AD转换结果的高位寄存器
ADRESL: AD转换结果的低位寄存器
ADCON0: AD转换模块的控制寄存器
ADCON1:AD转换模块的控制寄存器