你好,我使用STC12C5410AD进行AD转换,将模拟电压信号从外界输入转换成数字信号输出,想请教C程序怎么写?

你好,我使用STC12C5410AD进行AD转换,将模拟电压信号从外界输入转换成数字信号输出,想请教C程序怎么写?,第1张

uchar get_AD_result(uchar channel)

{

uchar AD_finished=0

ADC_RES = 0

channel &= 0x07

ADC_CONTR = AD_SPEED

_nop_()

ADC_CONTR |= channel

_nop_()

ADC_CONTR |= 0x80

delay(1)

ADC_CONTR |= 0x08

AD_finished = 0

while (AD_finished ==0 )

{

AD_finished = (ADC_CONTR &0x10)

}

ADC_CONTR &= 0xE7

return (ADC_RES)

}

把AD的结果通过IO口输出就可以

这个程序P1.7做AD脚的,你稍微小改下,有什么迷糊的,直接搬下来用就OK了,反正我一直这么用,他也没脾气。

STC的单片机基本都差不多少,自己修改下就可以了

用十位的二进制,除以10,余数就是个位;

商,继续除以10,余数就是十位;

依次类推,可得出百位、千位。

十位的二进制,除以10,可以使用二字节除以一字节的除法子程序,这个子程序可见我前几天写出的答案:

http://zhidao.baidu.com/question/130203351.html

---------------------

一个高8位和一个低2位(******xx)这两者如何结合?

呵呵,这应该另外提出一个新问题。

stc12c5410ad的pwm程序 就是进不去中断 CL不计数,PWM只要启动了就有中断。也就是说PWM是不支持中断的,

pca模块的时钟信号有:

T0的溢出率,

fosc/2,

fosc/12,

p3.4脚的输入时钟信号,

只要PWM模块启动了CR位,

就可以实现连续的输出脉冲,

只能调宽,

不支持中断(在PWM模式)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7832216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存