Microchip
直播中

张旭

7年用户 986经验值
私信 关注
[问答]

如何使用pic16f887来通过LCD显示ADC值

您好,我使用pic16f887来做一些简单的事情,比如通过LCD显示ADC值;但是,我发现了相当多的障碍。虽然我的LCD随着电压的增加和降低而更新,但是显示的值是错误的。当我到达2.5V时,我得到1344的小数,并且值并没有从那里增加。我试着通过我的LCD显示寄存器的值(比如D),我注意到当我把输入放入一个特定的端口时,我的LCD只有在我拔掉输入时才会在寄存器中显示正确的值。****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************nt.h>/*对于uint8_t定义*/include/*对于true/false定义*/includeinclude"system.h"/*System funct/params,比如osc/.config*/include"user.h"/include"pic16f887.h"include"lcd.h"。“#._XTAL_FREQ 4000000define RS RB2define EN RB3define D4 RB4define D5 RB5define D6 RB6define D7 RB7//pragma配置语句应该在项目文件包括.//使用项目枚举而不是define for ON和OFF.//CONFIG1pragma config FOSC=INTRC_CLKOUT//振荡器Sel之前。分段位(INTOSC振荡器:RA6/OSC2/CLKOUT管脚上的CLKOUT函数,RA7/OSC1/CLKIN上的I/O函数)#pragma配置WDTE=OFF//看门狗定时器启用位(WDT禁用并且可以由WDTCON寄存器的SWDTEN位启用)#pragma配置PWRTE=OFF//上电定时器启用位(PWRT禁用)#pragma config MCLRE=OFF//RE3/MCLR pin函数选择位(RE3/MCLR pin函数是数字输入,MCLR内部绑定到VDD)#pragma config CP=OFF//代码保护位(程序存储器代码保护被禁用)#pragma config CPD=OFF//数据代码保护位(数据存储器)y代码保护被禁用)#pragma配置BOREN=ON//Brown Out重置选择位(启用BOR)#pragma配置IESO=OFF//内部外部切换位(禁用内部/外部切换模式)#pragma配置FCMEN=OFF//故障安全时钟监视启用位(故障安全时钟k Monitor被禁用)#pragma config LVP=OFF//低压编程启用位(RB3引脚具有数字I/O,MCLR上的HV必须用于编程)//CONFIG2pragma config BOR4V=BOR40V//Brown-out Reset Selection位(Brown-out Reset set to 4.0V)#pragma config WRT=OFF//Flash Progra内存自写启用位(写保护)钟声响起选择,GO是损坏的,ADC启用ADCON1=0X00;//表达式必须正确地调整,以便行(ADRESH<<8)+ADRESL工作站格式化结果ADFM=1;ADRESH=0X00;ADRESL=0X00;;,而(1){Lcd_Clear();u._us(50);u GO_nDONE=1;(GO_nDON=1);E) {{a=(ADRESH<<8)|ADRESL;sprintf(s,“sec:%04x”,a);Lcd_Set_Cursor(1,1);Lcd_Write_String(s);ADRESH=0X00;ADRESL=0X00;}}

回帖(1)

丁亚念

2020-5-13 14:10:29
我不知道这是否是您的问题,但是您正在为ADC使用Frc时钟,并且如果您在转换期间不睡觉,那么当运行速度超过1MHz时,不建议使用这个时钟。您正在使用VDD和VSS作为Vref+和Vref-,但是您没有透露您的Vdd值。正在产生什么A12上的电压。如果它是电位器,它是否满足10K最大阻抗规范?你不应该包括“PIC16F87.H”,因为XC.H已经为你包含了它。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分