{
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模式)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)