STC单片机部分型号自带A-D转换器,如STC12C5410AD,模拟输入分布在P1接口的8位引脚上,应用时,只需把模拟信号输入到该引脚即可。STC带A-D转换器的单片机引脚排列如图4-28所示。这些单片机自带有8路8位的A-D转换器,A-D输入采用P1口,当时钟在40MHz以下时,每17个机器周期可完成一次A-D转换。转换后的数据存放在专用寄存中。
1.片内A-D转换器的工作原理
STC 89系列单片机内部,与片内A-D转换器有关的寄存器有P1_ADC_EN、ADC_CON-TR、ADC_DATA,功能见表4-8。
表4-8 STC89系列单片机与A-D转换器相关的寄存器
P1_ADC_EN,P1.X口的A-D使能寄存器。相应位设置为“1”时,对应的P1.X口作为A-D转换使用,内部上拉电阻自动断开。
ADC_CONTR,A-D转换控制寄存器。
ADC_START,A-D转换启动控制位,设置为“1”时,A-D开始转换。
ADC_FLAG,A-D转换结束标志位,当A-D转换完成后,ADC_FLAG=1。
CHS2、CHS1、CHS0:为模拟输入通道选择,比如CHS2、CHS1、CHS0为000时选择P1.0作为A-D输入,100时选择P1.4作为A-D输入。
ADC_DATA,A-D转换结果寄存器。模拟-数字转换结果计算公式为256×VIN/VCC。VIN为模拟输入通道输入电压,VCC为单片机实际工作电压,用单片机工作电压作为模拟参考电压。
2.片内A-D转换器的应用(www.xing528.com)
下面我们可以通过一个实验说明片内A-D转换器的应用方法。如单片机采用STC12C4510AD,利用P1.0作为模拟电压的输入,改变电位器中心抽头位置可以改变输入电压,单片机转换后的数据可以通过串口发送到PC,PC可以通过串行通信助手软件观察A- D数据的变化情况,参考电路如图4-29所示。
图4-28 片内含有A-D转换器的单片机
图4-29 片内A-D转换器测试电路
要实现片内A-D转换器应用,在程序设计时,首先要对与A-D转换器有关的寄存器进行设置,首先定义相关寄存器地址,然后选择A-D转换通道和信号输入引脚,最后启动A-D转换。片内A-D转换器每次转换需要一定的时间,程序中两次转换之间需要插入一定的延时,其程序如下:
在实现这个项目时,单片机的程序运行开始就能通过串行接口向PC发送数据,改变电位器会发现PC接收到的数据会发生变化。
增强型单片机内部特殊的部件还有很多,如PWM模块、IAP模块等。如果单片机系统设计需要这些片内特殊部件,可以依照本节实验进行编程,具体程序设计可参照单片机生产厂家所提供的特殊部件所用的寄存器,这里就不再一一介绍。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。