发布时间:2018-08-15
下图是一种利用PIC16F873A(28引脚)和LCD(液晶显示模块1602)组成的A/D转换液晶显示的主要电路。该电路的功能是先对柔性薄膜压力传感器的模拟信号进行A/D转换,然后按所需功能进行处理,最后由LCD显示其物理量的功能。当然,所述过程都是由C语言程序完成的。
LCD按其显示方式,可分为段位式(又称笔段式)、字符式和点阵式等。段位式LCD类似于数码管LED的功能,只能显示0~9的数字和简单的字符。字符式LCD不仅可显示数字而且可显示多种字符(字符库)。点阵式LCD不仅可以显示字符、数字,还可显示多种图形、曲线及汉字,实现屏幕的动画。下图中的LCD是字符型的,常用的型号是1602,即16字×2行的。读者在电子市场购买1602模块时,定向商家索取该模块的详细使用说明书。
柔性薄膜压力传感器是一种超薄性(仅0.1mm厚)压力传感器,常用于医学上,该传感器受压时,其输出的模拟信号很小,所以都应加运算放大器进行放大处理后,才能送到单片机的A/D转换输入端,如下图中的RAO/AN1或RAl/AN2端。
下图的Pic16F873A的硬件电路,是一种常规的A/D转换和LCD显示电路,其中Pic16F873A的①脚外接常规的Pic单片机复位电路;(9)、⑩脚外接晶振XT和C1、C2的单片机时钟电路;Pic16F873A的B口,其位RB4、RB3和RB2分别与1602LCD的E、EW和RS的控制端相连,以便Pic单片机控制1602LCD的基本操作。
Pic16F873A的C口,其位RCO~RC7与1602LCD的数据引脚DO~D7分别相连,以便Pic单片机控制1602LCD的指令和数据的读写操作。LCD(1602)的③脚VL为LCD对比度调整端,接正电源时,对比度最低,接地时对比度最高,使用时通过外接10KQ电位器,调整所需的对比度。
该电路是为某医院烧伤科设计的治疗仪部分主要电路,在这里取其A/D转换的C程序部分,以说明Pic单片机的专用寄存器:ADCON1、ADRESH、ADRESL、ADCONO、PIR1和PIE1等,在A/D转换时的使用方法和操作步骤。
以下是Pic16F873A的A/D转换的操作步骤和相关的程序。
A/D转换的初始化,如下图所示。
对于A/D转换程序的初始化一般要经过下图的几个步骤。
A/D转换初始化函数代码如下:
以上流程图和代码是采用中断服务程序来读取A/D转换数值的,虽然通过查询标志位方式也可以达到同样的效果,但是在实际应用中,中断服务方式因方便、可靠、节省芯片运行时间而成为常用的编程结构。对于中断服务程序,越简单越好,因PIC单片机特殊的堆栈结构,不宜在中断服务程序内作数据运算和太多调用函数的操作,原则是取出值后立即退出中断,以保证其它的任务能及时被响应。下图是中断服务流程图。
AD中断C语言的基本写法:
热点排行