欢迎来到天天文库
浏览记录
ID:20564914
大小:191.48 KB
页数:10页
时间:2018-10-13
《基于proteus的c51单片机的da数模转换双通道例程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于proteus的c51单片机adcO832D/A数模转换双通道例程C1HhU1XTAtlXTALiPC&ACCPCVA01P02>*C2PC2.AD2■OCMI>ha?02•:c01SvccLCD1uMOia.ils8i.8o88S88SRST/K<<•Pl.o1•:P11PUc-w(h41stPis1—Picrn./P1-T1ejfrOTW.7.^Kfl•20V10C$RP1
2、RtSPAC<-«U3#include#include〈intrins.h〉^defineuintunsignedint#defineucharunsignedchar#definedelay4us(){_nop_();_nop_();_nop_();_nop_();)sbitADCS=P3A0;//ADC0832chipseclectsbitADDI=P3A2;//ADC0832datainsbitADDO=P3A2;//ADC0832dataoutsbitADCLK=P3A1;//ADC0832clocksigna
3、lvoiddelayO;//延时函数sbitRS=P1AO;sbitRW=P1A1;sbitE=P1A2;//一位整数,两位小数的数字电压显示缓冲voidDelayMS(uintms){uchart;while(ms—)for(l=0;t<120;t++);}////定义四线制接口//sbitc!k=FlA3;sbitcs=PlA4;//片选sbitdin=Pl八5;//数据入口sbitkl=P2A0;sbitk2=P2Al;//sbitdout=P3A5;//数据出口////主函数ucharreadad[2J;voidDA_Conve
4、r(uintDA_Value);voidDAC();//AD转换voidAdc0832(ucharchannel);读ADC0832函数//采集并返回voidAdc0832(ucharchannel)uchari=0;ucharj;uintdat=0;ucharndat=0;if(channel==0)channel=2;if(channel==1)channel=3;ADDI=1;_nop_();_nop_();ADCS=0;//拉低CS端_nop_();_nop_();ADCLK=1;//拉高CLK端_nop_();_nop_();
5、ADCLK=0;//拉低CLK端,形成下降沿1_nop_();_nop_();ADCLK=1;//拉高CLK端ADDI=channel&Ox1;一nop」);_nop_();ADCLK=0;//拉低CLK端,形成下降沿2_nop_();_nop_();ADCLK=1;//拉商CLK端ADDI=(channel»1)&0xl;_nop_();_nop_();ADCLK=0;//拉低CLK端,形成卜‘降沿3ADDI=1;//控制命令结束_nop_();_nop_();dat=O;for(i=0;i<8;i++){dat
6、=ADDO;//收数
7、据ADCLK=1;_nop_();_nop_();ADCLK=O;//形成一次吋钟脉冲_nop_();_nop一();dat«=l;if(i==7)dat
8、=ADD0;}for(i=0;i<8;i++){j=0;j=j
9、ADDO;//收数据ADCLK=1;_nop_();_nop_();ADCLK=O;//形成一次时钟脉冲_nop_();_nop_();j=j«7;ndat=ndat
10、j;if(i<7)ndat»=l;}ADCS=l;//#ir^CSASADCLK=O;//拉低CLK端ADD0=1;//拉高数据端,冋到初始状态reada
11、d[O]=dat;readad[ll=ndat;}/////////////ledvariable/////////////////unsignedcharwordl
12、J6j={nCH="};codeucharword2[16]={"WellcomeTo"};codeucharword3f16]={HMyshowtime")/////////////////endofledvariable///////////////////////////startofled1602///////////////////LCD忙状态检测bitLCD_
13、Busy_Check()bitresult;RS=O;RW=1;E=1;delay4us();result=(bit)(P0&0x80);E=0;returnresult;}//写LCD命令voidLCD_
此文档下载收益归作者所有