欢迎来到天天文库
浏览记录
ID:29636147
大小:75.00 KB
页数:7页
时间:2018-12-21
《《片机系统da模块》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第15章单片机系统D/A转换模块第15章单片机系统D/A转换模块[例15-1]利用DAC0832转换产生的锯齿波。#include#include#defineDAC0832Addr0x7FFFF//0832地址#defineucharunsignedchar//uchar代表单个字节无符号数#defineuintunsignedint//uint无符号字Uart_Init();//输出口初始化sbitP26=0xA6;//P2.6位sbitP27=0xA7;//P2.7位voidTransformData(
2、ucharc0832data);//转换数据voidDelay();//延时子程序main(){ucharcDigital=0;//待转换的数字量Uart_Init();//P0=0XFF;//端口初始化为0xFFP1=0XFF;//P2=0XFF;P3=0XFF;Delay();//调用延时程序while(1){TransformData(cDigital);//进行数模转换cDigital++;//数字量加1Delay();//调用延时程序printf("increment");}}voidTransformData(ucharc083
3、2data){*((ucharxdata*)DAC0832Addr)=c0832data;//向DAC0832输出待转换数字量c0832data}157第15章单片机系统D/A转换模块Uart_Init(){SCON=0x52;/*设置串行口控制寄存器SCON*/TMOD=0x21;/*12M时钟时波特率为2400*/TCON=0x69;/*TCON*/TH1=0xf3;/*TH1*/}voidDelay()//延时程序{uinti;for(i=0;i<200;i++);}[例15-2]利用DAC0832转换产生的三角波。#include4、g51.h>#include#defineDAC0832Addr0x7FFFF//0832地址#defineucharunsignedchar//uchar代表单个字节无符号数#defineuintunsignedint//uint无符号字Uart_Init();//输出口初始化sbitP26=0xA6;//P2.6位sbitP27=0xA7;//P2.7位voidTransformData(ucharc0832data);//转换数据voidDelay();//延时子程序main(){bitupFlag=1;xdatacDi5、gital=1;//待转换的数字量Uart_Init();//P0=0XFF;//端口初始化为0xFFP1=0XFF;P2=0XFF;P3=0XFF;Delay();//调用延时程序while(1){TransformData(cDigital);//进行数模转换if((cDigital==255)6、(cDigital==0))upFlag=~upFlag;//标志位取反if(upFlag==1){157第15章单片机系统D/A转换模块cDigital++;//数字量加1}else{cDigital--;//数字量减1}Delay();//调用7、延时程序printf("digitalis%d",cDigital);}}voidTransformData(ucharc0832data){*((ucharxdata*)DAC0832Addr)=c0832data;//向DAC0832输出待转换数字量c0832data}Uart_Init(){SCON=0x52;/*设置串行口控制寄存器SCON*/TMOD=0x21;/*12M时钟时波特率为2400*/TCON=0x69;/*TCON*/TH1=0xf3;/*TH1*/}voidDelay()//延时程序{uinti;for(i=0;i8、<200;i++);}[例15-3]实现两路模拟电压输出。#include#include#defineDAC083201Addr0xDFFFF//第一片0832地址#defineDAC083202Addr0xBFFFF//第二片0832地址#defineDAC0832Addr0x7FFFF//转换时写入地址#defineucharunsignedchar//uchar代表单个字节无符号数#defineuintunsignedint//uint无符号字Uart_Init();//输出口初始化sbitP25=09、xA5;//P2.5位sbitP26=0xA6;//P2.6位sbitP27=0xA7;//P2.7位voidWriteToChip1(ucharc0
4、g51.h>#include#defineDAC0832Addr0x7FFFF//0832地址#defineucharunsignedchar//uchar代表单个字节无符号数#defineuintunsignedint//uint无符号字Uart_Init();//输出口初始化sbitP26=0xA6;//P2.6位sbitP27=0xA7;//P2.7位voidTransformData(ucharc0832data);//转换数据voidDelay();//延时子程序main(){bitupFlag=1;xdatacDi
5、gital=1;//待转换的数字量Uart_Init();//P0=0XFF;//端口初始化为0xFFP1=0XFF;P2=0XFF;P3=0XFF;Delay();//调用延时程序while(1){TransformData(cDigital);//进行数模转换if((cDigital==255)
6、(cDigital==0))upFlag=~upFlag;//标志位取反if(upFlag==1){157第15章单片机系统D/A转换模块cDigital++;//数字量加1}else{cDigital--;//数字量减1}Delay();//调用
7、延时程序printf("digitalis%d",cDigital);}}voidTransformData(ucharc0832data){*((ucharxdata*)DAC0832Addr)=c0832data;//向DAC0832输出待转换数字量c0832data}Uart_Init(){SCON=0x52;/*设置串行口控制寄存器SCON*/TMOD=0x21;/*12M时钟时波特率为2400*/TCON=0x69;/*TCON*/TH1=0xf3;/*TH1*/}voidDelay()//延时程序{uinti;for(i=0;i
8、<200;i++);}[例15-3]实现两路模拟电压输出。#include#include#defineDAC083201Addr0xDFFFF//第一片0832地址#defineDAC083202Addr0xBFFFF//第二片0832地址#defineDAC0832Addr0x7FFFF//转换时写入地址#defineucharunsignedchar//uchar代表单个字节无符号数#defineuintunsignedint//uint无符号字Uart_Init();//输出口初始化sbitP25=0
9、xA5;//P2.5位sbitP26=0xA6;//P2.6位sbitP27=0xA7;//P2.7位voidWriteToChip1(ucharc0
此文档下载收益归作者所有