/**************************************************************************************
实验现象: 下载程序后,打开串口调试助手,波特率设置为9600,可以用一根导线
将P06管脚与3.3V或者GND连接测试,可在串口助手上显示对应的AD值(0-4095)。
当然也可以将外部模拟信号接入到P06口,模拟信号范围0-5V
接线说明: 1:STC8A单片机-->模拟信号
P06-->3.3V/GND
注意事项: USB连接线给开发板通电下载程序,STC下载软件中内部IRC时钟选择11.0592MHZ
***************************************************************************************/
#include "STC8.H"
#include "intrins.h"
#include "uart.h"
#define MAIN_Fosc 11059200L //定义主时钟
#define uint8 unsigned char
#define uint16 unsigned int
uint8 code table2[]="ADC_VAL:"; //要显示的内容2放入数组table2
/**************************************
功能描述:延时函数
入口参数:uint16 x ,该值为1时,延时1ms
返回值:无
***************************************/
void delay_ms(uint16 x)
{
uint16 j,i;
for(j=0;j<x;j++)
{
for(i=0;i<1100;i++);
}
}
/**************************************
功能描述:ADC口初始化
入口参数:无
返回值:无
***************************************/
void ADC_config(void)
{
ADC_CONTR|=0x80; //开AD转换电源
delay_ms(10); //适当延时等待AD转换供电稳定
ADC_CONTR|=0x0E; //选择P0.6作为模拟功能AD使用
ADC_CONTR&=0xFE; //选择P0.6作为模拟功能AD使用
ADCCFG&=0xFC; //AD转换速度为96个时钟周期转换一次
ADCCFG|=0x0C; //AD转换速度为96个时钟周期转换一次
ADC_CONTR&=0xDF; //清AD转换完成标志
EADC=0; //禁止ADC转换中断
ADCCFG|=0x20; //ADC转换结果ADC_RES存高4位,ADC_RESL存低8位
ADC_CONTR|=0x40; //启动AD转换,ADC_START=1
}
/**************************************
功能描述:ADC口检测AD转换值函数
入口参数:无
返回值:ADC 12位数据
***************************************/
uint16 Get_ADC12bitResult(void)
{
uint16 AD_Dat=0;
ADC_CONTR&=0xDF; // 将ADC_FLAG清0
ADC_CONTR&=0xBF; //关闭AD转换,ADC_START=0
//12位AD结果的高4位放ADC_RES的低4位,低8位在ADC_RESL
AD_Dat = ADC_RES; //将ADC_RES低4位移到应在的第9位至第12位
AD_Dat <<= 8;
AD_Dat|= ADC_RESL; //将ADC_RESL的8位移到应在的低8位
ADC_CONTR|=0x40; //启动AD转换,ADC_START=1
return AD_Dat;
}
/***************************************************************************
* 描 述 : 主函数
* 入 参 : 无
* 返回值 : 无
**************************************************************************/
int main()
{
uint16 TempPhoto,Temp;
uint8 strPhoto[6];
P3M1 &= 0xFE; P3M0 &= 0xFE; //设置P3.0为准双向口
P3M1 &= 0xFD; P3M0 |= 0x02; //设置P3.1为推挽输出
ADC_config(); //ADC初始化
UartInit(); //串口1初始化
delay_ms(10); //初始化后延时
while (1)
{
memset(strPhoto, 0, sizeof(strPhoto)); //strTemp数组清零
TempPhoto = Get_ADC12bitResult(); //实时读取P0.6通道的AD转换结果
delay_ms(100);
strPhoto[0] = TempPhoto/1000+48; //千位
strPhoto[1] = (TempPhoto%1000)/100+48; //百位
strPhoto[2] = ((TempPhoto%1000)%100)/10+48; //十位
strPhoto[3] = ((TempPhoto%1000)%100)%10+48; //个位
//通过串口1将ADC检测值上报
U1SendString(table2);
U1SendString(strPhoto);
U1SendString(" ");
U1SendString("\r\n"); //输出回车换行符,方便观察数据
delay_ms(1000); //1000ms检测一次,此时间可调,但不宜过小
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于STC8A8K64S4A12-LQFP44单片机ADC实验(STC8内部ADC)串口助手显示实验软件例程源码.rar
共11个文件
c:2个
uvopt:1个
template:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 13 浏览量
2023-05-24
10:13:57
上传
评论
收藏 224KB RAR 举报
温馨提示
基于STC8A8K64S4A12_LQFP44单片机ADC实验(STC8内部ADC)串口助手显示实验软件例程源码 /************************************** 功能描述:ADC口初始化 入口参数:无 返回值:无 ***************************************/ void ADC_config(void) { ADC_CONTR|=0x80; //开AD转换电源 delay_ms(10); //适当延时等待AD转换供电稳定 ADC_CONTR|=0x0E; //选择P0.6作为模拟功能AD使用 ADC_CONTR&=0xFE; //选择P0.6作为模拟功能AD使用 ADCCFG&=0xFC; //AD转换速度为96个时钟周期转换一次 ADCCFG|=0x0C; //AD转换速度为96个时钟周期转换一次 ADC_CONTR&=0xDF; //清AD转换完成标志 EADC=0;
资源推荐
资源详情
资源评论
收起资源包目录
基于STC8A8K64S4A12_LQFP44单片机ADC实验(STC8内部ADC)串口助手显示实验软件例程源码.rar (11个子文件)
template.M51 13KB
uart.h 400B
template 45KB
template.uvgui.Administrator 133KB
STC8A8K64S4A12_LQFP44单片机开发板原理图.pdf 206KB
template.uvproj 13KB
template_Target 1.cfg 20B
uart.c 3KB
template.hex 3KB
main.c 4KB
template.uvopt 7KB
共 11 条
- 1
资源评论
- WUDI233322024-05-23资源很实用,内容详细,值得借鉴的内容很多,感谢分享。
GJZGRB
- 粉丝: 2890
- 资源: 7695
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- python-leetcode题解之166-Fraction-to-Recurring-Decimal.py
- python-leetcode题解之165-Compare-Version-Numbers.py
- python-leetcode题解之163-Missing-Ranges.py
- python-leetcode题解之162-Find-Peak-Element.py
- python-leetcode题解之161-One-Edit-Distance.py
- python-leetcode题解之160-Intersection-of-Two-Linked-Lists.py
- python-leetcode题解之157-Read-N-Characters-Given-Read4.py
- python-leetcode题解之156-Binary-Tree-Upside-Down.py
- python-leetcode题解之155-Min-Stack.py
- python-leetcode题解之154-Find-Minimum-in-Rotated-Sorted-Array-II.py
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功