|

楼主 |
发表于 2008-11-16 17:23
|
显示全部楼层
原帖由 yzx 于 2008-11-1 13:05 发表
用12F683,就有10位PWM了,但好像PWM和ADC不能同时使用。。。
LZ,12F675的ADC部分是怎么汇编的,一直想用单片机做一个简单的电量检测器
能否给一个汇编例程
只要某端口电压超过xxV,另一个端口就输出低电平(超过基准端一半吧 ...
仅作参考吧,有问题继续交流。具体寄存器设置和你的硬件方案相关,需要调整。
init_regs
bsf ADCON0,ADFM
bsf ADCON0,VCFG
bsf ADCON0,ADON
bsf STATUS,RP0
movlw xx
movwf TRISIO
movlw xx
movwf ANSEL
bcf STATUS,RP0
convert
bcf ADCON0,CHS1
bcf ADCON0,CHS0
bsf ADCON0, GO ; Start A/D Conversion
ad_wait_vp
btfsc ADCON0,GO
goto ad_wait_vp
movf ADRESH,W
=======================
建议采用高精度电压基准,然后用一个引脚采样电压,用2个管脚模拟输出时钟与数据,串行驱动若干个74164,每个164驱动一个数码管,显示精确地电压值。
电压可以通过3296电位器分压引入,这样可以测量更高的电压值。
为提高精度,可以用高精度万用表测量误差之后,通过程序校正。
不要考虑太多功能,把一个功能做好作完美就OK。 |
|