- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机ADC
单片机第6课;A/D转换:Analog to Digital Converter;模拟量是怎么变成数字量的?;采样;采样;采样;量化;量化;编码;编码;量化编码;ADC实现的过程;比较:获得采样电压对应的“小格子”;我们的单片机自带了AD功能~我们可以很方便的直接使用~~;;看看如何设置I/O成为ADC的通道;我们的开发版引出了三个ADC通道给大家~;;ADC_CONTR寄存器;ADC_CONTR寄存器;ADC_CONTR寄存器;;ADC可以这样初始化:;我们初始化ADC的选择通道可以这样:;Void init_P1.1()
{
ADC_CONTR =0xef; //清零ADC中断 ADC_FLAG = 0;
ADC_CONTR = 0XF8; //设置通道7(P1.1)作为AD输入
ADC_CONTR |= 0X01; //设置通道7(P1.1)作为AD输入
ADC_CONTR |= 0X08; //打开ADC转换一次
While(ADC_CONTR 0X10 != 0); //等待AD转换完成
}
;Void init_P1.0()
{
ADC_CONTR =0xef; //清零ADC中断 ADC_FLAG = 0;
ADC_CONTR = 0XF8; //设置通道7(P1.0)作为AD输入
ADC_CONTR |= 0X00; //设置通道7(P1.0)作为AD输入
ADC_CONTR |= 0X08; //打开ADC转换一次
While(ADC_CONTR 0X10 != 0); //等待AD转换完成
}
;Void init_P1.x(char x)
{
ADC_CONTR =0xef; //清零ADC中断 ADC_FLAG = 0;
ADC_CONTR = 0XF8; //设置通道7(P1.x)作为AD输入
ADC_CONTR |= x; //设置通道7(P1.x)作为AD输入
ADC_CONTR |= 0X08; //打开ADC转换一次
While(ADC_CONTR 0X10 != 0); //等待AD转换完成
}
;ADC转换的结果存在这里:;;int Get_AD_date(){ unsigned long int t1,t2,data; double volte; t1=ADC_RES; //高两位 t2=ADC_RESL; //低八位 date=(t12)+t2; return date;};这样一个结构:; 恭喜大家,大家可以用我们的单片机去测量一个电压值了~~;那么,AD可以做什么呢?;Tips:;然后就需要上节课的内容;void uart_print(int V0,int V1,int V7)//原始数据
{
char string[10];
if (flag==1)
{
flag=0;
if(chr==a)//1.0
{
while(ADC_CONTR 0X10 != 0);
UART_send_string(itoa(V0,string,10));
UART_send_string(\n);
}
;if(chr==b)//1.1
{
while(ADC_CONTR 0X10 != 0);
UART_send_string(itoa(V1,string,10));
UART_send_string(\n);
}
if(chr==c)//1.7
{
while(ADC_CONTR 0X10 != 0);
UART_send_string(itoa(V7,string,10));
UART_send_string(\n);
}
}
} ;整形转字符串函数itoa()库函数没有提供
static char *itoa(int value,char *string,int radix)
{
int i,d;
int flag=0;
char *ptr=string;
/*This implementation only work for decimal numbers.*/
if(radix!=10)
{
*ptr=0;
return string;
}
if(!value)
{
*ptr++=0x30;
*ptr=0;
return string;
};使用itoa()函数之前需要我们先定义一个char string[];为了把数
您可能关注的文档
最近下载
- 人教版九年级数学上册全套课件-(2).ppt VIP
- Q_SY 10016-2023 数据湖管理规范.pdf VIP
- 第5课 动荡变化中的春秋时期【课件】(共27张PPT)(含音频+视频).pptx VIP
- 05G525 吊车轨道联结及车挡(适用于钢吊车梁).pdf
- GNSS测量 GNSS测量 RTK线路放样1.ppt VIP
- 医院信息数据管理制度.docx VIP
- 2025年申论答题卡(练习标准)打印版 .pdf VIP
- 初二作文范文.docx VIP
- 《课外古诗词诵读》之《 赠从弟》-八年级语文上册同步教学精选课件(统编版).pptx VIP
- GNSS定位测量 RTK放样 实验实习实训-GPS-RTK点放样.doc VIP
文档评论(0)