background image
宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商   www.MCU-Memory.com   STC12C5410AD 系列 1T 8051 单片机中文指南
59
Mnemonic
Add Name
 7
 6
 5
 4
 3
 2
 1
 0
Reset Value
ADC_CONTR C5h A/D 转换控制寄存器
 ADC_POWER  SPEED1 SPEED0
ADC_FLAG
ADC_START CHS2
CHS1 CHS0 0xx0,0000
ADC_DATA
C6h A/D 转换结果寄存器,高8位
 -
 -
 -
 -
 -
 -
 -
 -
xxxx,xxxx
ADC_LOW2
BEh A/D 转换结果寄存器,低2位  -
 -
 -
 -
 -
 -
 -
 -
xxxx,xxxx
A/D 转 换 控 制 寄 存 器
 ADC_POWER SPEED1
SPEED0
ADC_FLAG ADC_START CHS2 CHS1 CHS0 0xx0,0000
ADC_CONTR  特殊功能寄存器
:  A/D 转换控制特殊功能寄存器
C H S 2
C H S 1
C H S 0
A n a l o g   I n p u t   C h a n n e l   S e l e c t
 
 
P 1 . 0   作
A / D 输
 
 
P 1 . 1   作
A / D 输
 
 
P 1 . 2   作
A / D 输
 
 
P 1 . 3   作
A / D 输
 
 
P 1 . 4   作
A / D 输
 
 
P 1 . 5   作
A / D 输
 
 
P 1 . 6   作
A / D 输
 
 
P 1 . 7   作
A / D 输
CHS2 / CHS1 / CHS0:模拟输入通道选择,CHS2 / CHS1 / CHS0
A D C _ S T A R T :   模数转换器( A D C ) 转换启动控制位,设置为“1”时,开始转换, 转换结束后为 0 。
ADC_FLAG:   模数转换器转换结束标志位,当 A/D 转换完成后,ADC_FLAG = 1,要由软件清 0。
ADC_DATA / ADC_LOW2  特殊功能寄存器
:  A/D 转换结果特殊功能寄存器
模拟 / 数字转换结果计算公式如下:
结果
 
 ADC_DATA[7:0],ADC_LOW2[1:0] 
)  =  1024  x  Vin / Vcc
Vi n 为模拟输入通道输入电压,V c c 为单片机实际工作电压,用单片机工作电压作为模拟参考电压。
   STC12C5410AD 系列带 A/D 转换的单片机在 P1 口,有 8 路 10 位高速 A/D 转换器,  速度可达 100KHz。
P1.7 - P1.0 共 8 路电压输入型 A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等。上电复位
后 P1 口为弱上拉型 I/O 口,用户可以通过软件设置将 8 路中的任何一路设置为 A/D 转换,不需作为 A/D 使
用的口可继续作为 I/O 口使用。需作为 A/D 使用的口需先将其设置为高阻输入或开漏模式。在 P1M0、P1M1
中对相应的位进行设置。
   
       A/D 转换 及 A/D 转换测试程序
P1M0【 7: 0】
地 址 : 91h
P1M1【 7: 0】
地 址 : 92h
I/ O     口 模 式 ( P1.x   如 做 A/D 使 用 , 需 先 将 其 设 置 成 开 漏 或 高 阻 输 入 )
准 双 向 口 ( 传 统 8051    I/O    口 模 式 ) ,
灌 电 流 可 达 20mA , 拉 电 流 为 230µA
推 挽 输 出 ( 强 上 拉 输 出 , 可 达 20mA, 尽 量 少 用 )
仅 为 输 入 ( 高 阻 ) , 如 果 该 I/O口 需 作 为 A/D使 用 , 可 选 此 模 式
开 漏 (Open  Drain) , 如 果 该 I/O口 需 作 为 A/D 使 用 , 可 选 此 模 式
S P E E D 1 ,S P E E D 0 :模数转换器转换速度控制位
S P E E D 1
S P E E D 0
A / D 转
2 1 0 个
C P U 工
2 0 M H z 时
A / D 转
1 0 0 K H z
4 2 0 个
6 3 0 个
8 4 0 个
ADC_POWER:   ADC 电源控制位。
     0 :关闭 A D C 电源;1 :打开 A / D 转换器电源
   启动 A D 转换前一定要确认 A D 电源已打开,A D 转换结束后关闭 A D 电源可降低功耗,也可不关闭。
   初次打开内部 A / D 转换模拟电源,需适当延时,等内部模拟电源稳定后,再启动 A / D 转换
   建议启动 A / D 转换后,在 A / D 转换结束之前,不改变任何 I / O 口的状态,有利于高精度 A / D 转换
ADC_DATA
C6h A/D 转换结果寄存器,全部8位有效,为10位A/D转换结果的高8位
 -  -  -  -  -  -  -  - xxxx,xxxx
ADC_LOW2
BEh A/D 转换结果寄存器,只有低2位有效,为10位A/D转换结果的低2位
 x  x  x  x  x
x  -  - xxxx,xxxx
取 ADC_DATA 的 8 位为 ADC 转换的高 8 位,取 ADC_LOW2 的低 2 位为 ADC 转换的低 2 位,则为 10 位精度。
如果舍弃 ADC_LOW2 的低 2 位,只用 ADC_DATA 寄存器的 8 位,则 A/D 转换结果为 8 位精度。
                             
 结果
 
 ADC_DATA[7:0] 
 =   256  x  Vin / Vcc
             不管是 A/D 转换完成后由该位申请产生中断,还是由软件查询该标志位 A/D 转换是否结束,
         当 A/D 转换完成后,ADC_FLAG = 1,一定要软件清 0。