基于51单片机的数字电压表设计 一、 电路原理 该数字电压表电路由三个模块组成:A/D转化模块、数据处理模块和显示模块。利用51单片机作为主控芯片,模拟量输入范围为直流0v-5v。模拟量经A/D(ADC0804)模数转换芯片,把模拟量转换为数字量输入到单片机的P0口,再由单片机控制LCD1602液晶显示模拟量输入的电压值。(其中ADC0804是一款逐次逼近式8位单通道A/D转化芯片,可以将模拟量转化为数字量,其转换时间大约为100us) 二、电路原理图
三、PCB图
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
四、电路实物照片与实测性能
电路实测性能: 通过USB接口给电路供电,再将外电源的正负极接到电路的接线端口,LCD1602液晶则会显示外电源相应的电压值。
五、设计小结
1、画原理图和PCB时布线要整齐有序,便于检查电路问题。
2、画PCB图时元件摆放要紧凑,尽量画小一点,布完线后检查有没有漏线的地方。
3、画PCB图时尽量减少跳线次数,以减小测量误差,使测量数据更准确。
4、焊接电路时要小心仔细,焊接好电路后检查有没有虚焊的地方。
5、在测量电压时注意外电源的电压值,防止电压过高而超出电压表的量程。
单片机源程序如下:
- #include <adc.h>
- u8 adc0804()
- {
- u8 ind;
-
- C_S = 1;
- W_R = 1;
-
- C_S = 0;
- W_R = 0;
-
- _nop_();
-
- W_R = 1;
-
- P1 = 0xff;
-
- R_D = 1;
- R_D = 0;
-
- _nop_();
-
- ind = P1;
-
- R_D = 1;
- C_S = 1;
-
- return ind;
- }
- u16 V_out()
- {
- u8 rnd;
- u16 end;
-
- rnd = adc0804();
- end = rnd * 50000 / 256;
- return end;
- }
复制代码
所有资料51hei提供下载:
电压表.zip
(5.39 MB, 下载次数: 79)
|