基于proteus的c51单片机的da数模转换双通道例程

基于proteus的c51单片机的da数模转换双通道例程

ID:20564914

大小:191.48 KB

页数:10页

时间:2018-10-13

基于proteus的c51单片机的da数模转换双通道例程_第1页
基于proteus的c51单片机的da数模转换双通道例程_第2页
基于proteus的c51单片机的da数模转换双通道例程_第3页
基于proteus的c51单片机的da数模转换双通道例程_第4页
基于proteus的c51单片机的da数模转换双通道例程_第5页
资源描述:

《基于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_

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

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

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