时间: 2025-01-03 16:55:08 | 作者: 华体会app怎么样
在电子技术中,传感器是一种很重要的器材,传感器的品种也有多种,如温度传感器、光敏传感器、压力传感器……,其特点是能把非电量,如温度、光度、压力等转化成相关的电量(电流或电压)。这些电量都是模仿量,可用Pic 单片机的A/D 转化,将上述的模仿量转化成数字量,再将数字量进行各种处理,如LED、LCD 显现。
Pic16F87X 系列单片机, 具有A/D 转化的功用。Pic16F876/873 芯片为28 引脚, 有5 个模仿输入端的10 位A/D 转化(5 通道);Pic16F877 为40 引脚,有8 个模仿输入端的10位A/D 转化(8 通道)。Pic16F876/873 芯片的模仿输入端为AN0~AN3,其引脚是② ~ ⑤脚和⑦脚AN4,简直占用了Pic16F876/873 一切的A 口。由于Pic 单片机的端口具有复用功用,所以上述的模仿输进口不可能影响I/O 端口的通用特性。
上述芯片的A/D 转化,都已模块化,具有10 位(二进制的)分辨率,所以可彻底满意大多数丈量精度的要求,此外,还可使用Pic 单片机睡觉状态下进行A/D 转化(使用内部自带的RC 振动作时钟),因在睡觉形式下,部分数字电路的开关噪声已中止,所以可获得更高的A/D 转化精度。
Pic 单片机的A/D 转化功用的操作,远比本连载1~13 中介绍的各种功用的C 程序要杂乱些,学会编写A/D 转化的C 程序,也是进一步学习Pic 单片机C程序设计的重要内容之一。由于在修改A/D 转化的C 程序时,会用到芯片内部多个专用寄存器(操控模块),学会相关模块的使用办法,可为修改其它杂乱功用的C 程序树立杰出的思想办法。
ADCON1 是8 位的可读写的寄存器,如图59 所示,其功用是A/D 转化时,挑选芯片引脚输入信号的类型(模仿量A 或数字量D),以及A/D 转化成果寄存的格局(见下文)。
ADCON1 的第6、5、4 位,在A/D 转化中未派上用场,读作“0”。 ADCON1 的第3、2、1、0 位(Bit3、Bit2、Bit1 和Bit0), 是办理Pic16F87X 引脚功用(A 或D)的挑选(可参看相关书藉的A/D 转化引脚功用挑选表,因该表占用版面多,这儿省略),例如在下文C 程序中,设ADCON1=0x8a 时, 挑选Pic16F873A 的AN0(RA0)、AN1(RA1)RA4(AN4)、RA5(AN5)为模仿量输入、(AN6、AN7 为数字量输入),AN3、AN2 参阅电压设置端(十、一)。
⑵ A/D 转化成果寄存器ADRESH、ADRESL。因Pic16F87X 的A/D 转化值是10 位的二进制数(代码),而A/D 转化的成果是寄存在指定的成果寄存器中,因成果寄存器是8 位的,所以A/D 转化成果的10 位数, 使用ADRESH寄存A/D 的高字节;使用ADRESL 寄存A/D的低字节。寄存办法是使用前述的ADCON1( 图59) 的第7 位(bit)ADFM 做出合理的挑选, 当令ADFM=1 时,A/D 转化成果的低8 位寄存在ADREL 中;高两位寄存在ADRESH 中;当令ADFM=0 时,A/D 转化成果的低两位寄存在ADRESL 中,余下的高8 位寄存在ADRESH 中,这由C 言语设计者自由挑选。若对A/D 转化代码的分辨率要求不高(如试验程序),可取A/D转化的高8 位而舍去低2 位,以使C 程序简化。
ADCON0 的功用是用于操控A/D 转化的操作,其相关位的功用如图60 所示。
ADCON0 的第2 位也是重要的功用位:在ADON=1 时,若令=1,发动A/D 转化;若令=0,A/D 转化完结。
此外,在A/D 转化时,还会用到外围接口中止标志寄存器PIR1 的标志位ADIF(Bit6)和外围接口中止使能寄存器PIE1 的使能位ADIE。