你好,stc单片机用AD口接一个电位器c程序怎么写才能识别到模数转换

你好,stc单片机用AD口接一个电位器c程序怎么写才能识别到模数转换,第1张

// 定义与 ADC 有关的特殊功能寄存器

sfr P1_ASF = 0x9d//A/D转换功能允许寄存器

sfr ADC_CONTR = 0xbc//A/D转换控制寄存器

sfr ADC_RES = 0xbd //A/D转换结果寄存器

sfr ADC_RESL = 0xbe //A/D转换结果寄存器

uint16 get_AD(uint8 channel)

{

ADC_RES = 0

P1 |= (0x01 <<channel)//要设置为 A/D 转换的P1.x 口,先设为高

P1_ASF &= (~(0x01 <<channel))//设置 A/D 转换输入脚

ADC_CONTR =0xa8 | channel// 选择 A/D 当前通道

while (!(ADC_CONTR &0x10)) // 等待A/D 转换结束

{

}

ADC_CONTR &= 0xF7//1111,0111 令 ADC_START = 0, 关闭A/D 转换,

return (((uint16)ADC_RES )<<2) | (ADC_RESL &0xfc)// 返回 A/D 转换结果

}

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的单片机基本都差不多少,自己修改下就可以了


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存