DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 200|回复: 0
打印 上一主题 下一主题

PIC16F688的数字电压表设计制作

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-18 00:50:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
简介
  该项目介绍了如何使用PIC单片机的数字电压表。一个HD44780的基于字符的LCD用于显示被测电压。在这个项目中使用的是PIC单片机PIC16F688,有12个I / O引脚可以作为内置10位ADC的模拟输入通道,其中8。要测量的电压被馈送到8个模拟通道之一。选择AD转换的参考电压是电源电压VDD(+5 V),。在输入端使用一个电阻分压器网络是映射到ADC的输入电压范围(0-5 V)输入电压范围。该技术是表现为输入电压范围从0-20 V,但它可以进一步扩展与选择适当的电阻和做的数学描述如下。
  电路图
  由于PIC端口不能直接输入20V,输入电压成比例下降,使用一个简单的电阻分压器网络。电阻R1和R2的规模下的输入电压范围从0 - 20V ,0 - 5V,适用于PIC16F688的模拟输入通道,AN2的。在端口引脚AN2和地面之间的并行连接一个5.1V的齐纳二极管提供保护的情况下的PIC针20V输入电压不小心超出。液晶显示器是在4位模式下,连接的ICSP头,你可以重新编程和测试PIC,而它在电路使固件的开发更容易。当你满意,并希望从实验电路板的电路转移到PCB上或通用的原型板,你?需要的ICSP头。实验板的电路图和内置的原型如下所示。



?
  重要事项 :您需要受规管的+5 V电源的输出精度 。ADC使用VDD转换参考,并完成所有的计算与VDD = 5V。你可以得到一个稳压+5 V,使用一个LM7805线性稳压器IC 。
  



?
  从LM7805 IC获得+5 V的受规管
  



                          
                       
                          
                                可变功率测试将DVM的供应来源
?
  ADC的数学的准确性取决于在输入端的电阻的精度和稳定的参考电压,VDD = 5 V。我发现,VDD是稳定的,以5.02五,我测R1和R2,和它们的值是1267和3890欧姆 。因此,这给了5.02 V模拟的I / P ---> 0-1023数字计数 =>分辨率=(5.02 - 0)/(1023-0)= 0.004907 V /计数
  VA = 1267 * VIN /(1267 3890)= 0.2457 *输入电压
  =>我/ P电压= 4.07 * VA = 4.07 *数字计数* 0.004907
  = 0.01997 *数字计数
  = 0.02 *数字计数(约)
  为了避免浮点运算,使用的I / P电压= 2 *计数。
  例如,假设VIN = 7.6V。然后,
  VA = 0.2457 *输入电压为1.87V
  =>数码计数= 1.87/0.004907 = 381
  =>计算的I / P电压= 2 * 381 = 0762 = 07.6V(4位产品的前3位数字 )
  固件
  固件写入和mikroC编译器编译。LCD_D6的代码是在这里。
  SBIT LCD_D7 RC3_bit;
  在TRISC4_bit SBIT LCD_RS_Direction;
  TRISC5_bit SBIT LCD_EN_Direction;
  TRISC0_bit SBIT LCD_D4_Direction;
  TRISC1_bit SBIT LCD_D5_Direction;
  TRISC2_bit SBIT LCD_D6_Direction;
  SBIT TRISC3_bit LCD_D7_Direction;
  / /高端液晶模块的连接
  字符Message1 [] =“DVM项目“;
  unsigned int类型ADC_Value,DisplayVolt;
  CHAR *伏=“00.0”;
  无效的主要(){
  :ANSEL = 0b00000100; / / RA2/AN2是模拟输入
  ADCON0的= 0b00001000; / /模拟输入通道选择AN2的
  ADCON1 = 0X00;
  CMCON0 =为0x07; / / Disbale比较
  TRISC = 0b00000000; / / PORTC的所有输出
  TRISA = 0b00001100; / / PORTA所有输出,除RA3和RA2的
  Lcd_Init(); / /初始化液晶
  Lcd_Cmd(_LCD_CLEAR); / /清除显示
  Lcd_Cmd(_LCD_CURSOR_OFF) / /游标关闭
  Lcd_Out(1,1 Message1);
  Lcd_Chr(2,10,“V”);
  {
  ADC_Value = ADC_Read(2)
  DisplayVolt = ADC_Value * 2;
  伏[0] = DisplayVolt/1000 + 48 ; ;
  伏[1] =(DisplayVolt/100)%10 + 48;
  伏[3] =(DisplayVolt/10)10%+ 48;
  Lcd_Out(2.5伏);
  delay_ms(100);
  }(1) ;
  }
  输出
                          
                       
                          
                                DVM是测试各种不同的输入电压范围从0-20 V的发现是非常准确的。在这里测试的一些快照。
?
  



?
  



?
  



?
  



                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-6-8 12:07 , 耗时 0.087396 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表