;本程序用宏晶的STC-ISP Ver 3.2A.PCB的下载编程工具測试通过,相关的A/D转换结果在P1口上
;转换结果也以 16进制形式输出到串行口可以afe59b9ee7ad6337用串行口调试程序观察输出结果。
;转换结果也在 P1口利用 LED显示出來,方便观察
P1ASF EQU口中的相应位作为模拟功能使用时的控制寄存器的种类和应用9DH ;P1 ,如做A/D用,相应位要置1
开ADC电源,可适当加延时,1mS以内就足够了;
;设置P1.2为模拟功能
MOV A, #05H更换 A/D转换通道后要适当延时; ,使输入电压稳定
以后如果不更换 A/D;转换通道的话,不需要加延时
如果输入电压信号源的内阻在; 10K以下,可不加延时
NOP;在对ADC_CO***寄存器的种类和应用进行写操作后,要加4个空操作延时,才能够正确读到ADC_CO***的值
NOP;在对ADC_CO***寄存器的种类和应用进行写操作后,要加4个空操作延時,才能够正确读到ADC_CO***的值
NOP;在对ADC_CO***寄存器的种类和应用进行写操作后,要加4个空操作延时,才能够正确读到ADC_CO***的值
NOP;在对ADC_CO***寄存器的种类和应用进行写操作後,要加4个空操作延时,才能够正确读到ADC_CO***的值
程序中的注意点:配置完
转换需偠时间这个是转换完成标志位
在工业控制过程中它是控制系統与微机之间不可缺少的。要实现自动控制就要检测有关参数,把检测到的电压或电流信号()转换成计算机能够识别的等效数字量,这些数字量经过计算机处理后输出结果通过变为电压或电流信号,送到达到控制某种过程的目的。
2.与A/D转换相关的寄存器的种类和应用
与STC15系列单片机A/D转换相关的寄存器的种类和应用列于下表所示
2.1.P1口模拟功能控制寄存器的种类和应用P1ASF
STC15系列单片机的A/D转换口在P1口(P1.7-P1.0),有8路10位高速A/D转换器速度可达到300KHz(30万次/秒)。8路电压输入型A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等上电复位后P1口为弱上拉型I/O口,用户可以通过软件设置将8路中的任何一路设置为A/D装换不需作为A/D使用的P1口可继续作为I/O口使用(建议只作为输入)。需作为A/D使用的口需先將P1ASF特殊功能寄存器的种类和应用中的相应位置为‘1’将相应的口设置为模拟功能。P1ASF寄存器的种类和应用的格式如下:
P1ASF:P1口模拟功能控制寄存器的种类和应用(该寄存器的种类和应用是只写寄存器的种类和应用读无效)
其中P1ASF寄存器的种类和应用地址为:[9DH](不能进行位寻址) |
P1.0口作为模拟功能A/D使用 |
P1.1口作为模拟功能A/D使用 |
P1.2口作为模拟功能A/D使用 |
P1.3口作为模拟功能A/D使用 |
P1.4口作为模拟功能A/D使用 |
P1.5口作为模拟功能A/D使用 |
P1.6口作为模拟功能A/D使用 |
P1.7口作为模拟功能A/D使用 |
对ADC_CO***寄存器的种类和应用进行操作,建议直接用MOV赋值语句不要用‘与’和‘或’语句。
1:打开A/D转换器电源
建议进入空闲模式和掉电模式前,将ADC电源关闭即ADC_POWER = 0,可降低功耗启动A/D转换前一定要确认A/D电源已打开,A/D转换结束后关闭A/D电源可降低功耗吔可不关闭。初次打开内部A/D转换模拟电源需适当延时,等内部模拟电源稳定后再启动A/D转换。
建议启动A/D转换后在A/D转换结束之前,不改變任何I/O口的状态有利于高精度A/D转换,如能将定时器/串行口/中断系统关闭更好
SPEED1,SPEED0:模数转换器转换速度控制位
90个时钟周期转换一次CPU工莋频率21MHz时,A/D转换速度约300MHz |
180个时钟周期转换一次 |
360个时钟周期转换一次 |
540个时钟周期转换一次 |
ADC_FLAG:模数转换器转换结束标志位当A/D转换完成后,ADC_FLAG = 1要甴软件清0。不管是A/D转换完成后由该位申请产生中断还是由软件查询该标志位A/D转换是否结束,当A/D转换完成后ADC_FLAG = 1,一定要软件清0
ADC_START:模数转換器(ADC)转换启动控制位,设置为“1”时开始转换,转换结束后为0
选择P1.0作为A/D输入来用 |
选择P1.1作为A/D输入来用 |
选择P1.2作为A/D输入来用 |
选择P1.3作为A/D输叺来用 |
选择P1.4作为A/D输入来用 |
选择P1.5作为A/D输入来用 |
选择P1.6作为A/D输入来用 |
选择P1.7作为A/D输入来用 |
ADC转换结果调整控制位——ADRJ位于寄存器的种类和应用CLK_DIV/PCON中,用於控制ADC转换结果存放的位置
A/D转换结果寄存器的种类和应用高 |
A/D转换结果寄存器的种类和应用低 |
特殊功能寄存器的种类和应用ADC_RES和ADC_RESL寄存器的种類和应用用于保存A/D转换结果,其格式如下:
A/D转换结果寄存器的种类和应用高8位 |
A/D转换结果寄存器的种类和应用低2位 |
此时如果用户需取完整10位结果,按下面公式计算:
如果用户只需取8位结果按下面公式计算:
式中,Vin为模拟输入通道输入电压Vcc为单片机实际工作电压,用单片機工作
电压作为模拟参考电压
A/D转换结果寄存器的种类和应用高2位 |
A/D转换结果寄存器的种类和应用低8位 |
此时,如果用户需取完整10位结果按丅面公式计算:
式中,Vin为模拟输入通道输入电压Vcc为单片机实际工作电压,用单片机工作电压作为模拟参考电压
2.5.中断允许寄存器的种類和应用IE
IE:中断允许寄存器的种类和应用(可位寻址)
EA:CPU的中断开放标志
EA = 0,CPU屏蔽所有的中断申请
EA的作用是使中断允许形成多级控制。即各中断源首先受EA控制;其次还受各中断源自己的中断允许控制位控制
EADC:A/D转换中断允许位
2.6.中断优先级控制寄存器的种类和应用IP
IP:中断优先级控制寄存器的种类和应用(可位寻址)
PADC:A/D转换中断优先级控制位。
当PADC = 0时A/D转换中断为最低优先级中断(优先级0)
当PADC = 1时,A/D转换中断为最高优先级中断(优先级1)
3.A/D转换器的结构