单片机学习项目 (13) AD DA转换器及其应用

单片机学习项目 (13) AD DA转换器及其应用

ID:40634048

大小:293.02 KB

页数:7页

时间:2019-08-05

单片机学习项目 (13) AD DA转换器及其应用_第1页
单片机学习项目 (13) AD DA转换器及其应用_第2页
单片机学习项目 (13) AD DA转换器及其应用_第3页
单片机学习项目 (13) AD DA转换器及其应用_第4页
单片机学习项目 (13) AD DA转换器及其应用_第5页
资源描述:

《单片机学习项目 (13) AD DA转换器及其应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单片机学习项目项目13-A/D、D/A转换器及其应用ADC0832(项目13.1)一:功能原理ADC0832 是美国国家半导体公司生产的一种8 位逐次比较型COMS双通道A/D转换器。该器件有8和14引脚两种封装,采用5V电源供电,模拟电压输入范围为0~5V,内部时钟250kHz时转换速度为32微秒。封装图见图5-4-1所示。二:ADC0832应用由于ADC0832操作简单,因此ADC0832驱动只需依照该器件的工作情况设计即可。在图5-4-2所示的仿真电路中,调节电位器PV1可以产生一个模拟的0~5V电压源,

2、输入ADC0832的CH0端口,ADC0832转换后的数据范围为0~255,由三位数码管输出。ADC0832的DI与DO线与后接单片机的P3.2口,CS接P3.0口,CLK接P3.1口。为了得到CH0通道转换得到的数据,程序中需要在CLK第2、3个下降沿来到时向DI发送1、0,然后才能接收ADC0832的转换数据,每次转换结束时让CS 无效。 主程序/*预处理*/#include#include#include"ADC0832.c"#defineucharunsigned

3、charcode  ucharseven_seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};ucharcp1,cp2,dat_ad;/*T0初始化*/voidtimer0_init(void){   TMOD=0x01;   TH0=0xec;   TL0=0x78;   TR0=1;   EA  =1;   ET0=1;}/*T0中断服务*/voidtimer0_isr(void)interrupt1                      

4、//中断服务函数{   TH0=0xec;   TL0=0x78;   cp1++;   if(cp1>=100)                                                          //0.5秒        {                    cp1=0;                    dat_ad=dac0832_ch0();//0.5秒让ADC0832转换一次         }         P0=0xff;         switch(

5、cp2)         {                    case0:P0=seven_seg[dat_ad  %10];P2=0x01;break;                    case1:P0=seven_seg[dat_ad%100/10];P2=0x02;break;                    case2:P0=seven_seg[dat_ad/100];P2=0x04;break;         }         cp2++;         if(cp2>=3) 

6、        cp2=0;}/*主函数*/voidmain(void){         timer0_init();         dac0832_init();            while(1);}/*结束*/ADC0832驱动程序/*预处理*/#include#include#defineucharunsignedchar#definenop_nop_()sbitCS=P3^0;sbitCLK=P3^1;sbitDIDO=P3^2;/*对ADC0832初始

7、化*/voiddac0832_init(void){      CS=1;nop;      CLK=1;      CS=0;}/*对转换CH0通道的模拟信号*/uchardac0832_ch0(void)//包含11个CLK下降沿{                        uchari,dat1;       dac0832_init();       DIDO=1;CLK=0;nop;CLK=1;nop;//SCK第1个下降沿来到时,DI=1启动DAC0832       DIDO=1;CLK=0;

8、nop;CLK=1;nop;//SCK第2个下降沿       DIDO=0;CLK=0;nop;CLK=1;nop;//SCK第3个下降沿,发送1、0选择通道ch0       DIDO=1;//释放总线       for(i=0;i<8;i++)//SCK第4个下降沿到第11个下降沿,{                     CLK=0;nop;           if(DI

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。