基于51单片机TLC2543的AD电压采集双通道12864显示程序.pdf

基于51单片机TLC2543的AD电压采集双通道12864显示程序.pdf

ID:50640678

大小:254.43 KB

页数:5页

时间:2020-03-15

基于51单片机TLC2543的AD电压采集双通道12864显示程序.pdf_第1页
基于51单片机TLC2543的AD电压采集双通道12864显示程序.pdf_第2页
基于51单片机TLC2543的AD电压采集双通道12864显示程序.pdf_第3页
基于51单片机TLC2543的AD电压采集双通道12864显示程序.pdf_第4页
基于51单片机TLC2543的AD电压采集双通道12864显示程序.pdf_第5页
资源描述:

《基于51单片机TLC2543的AD电压采集双通道12864显示程序.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于51单片机TLC2543的电压双通道12864显示程序带继电器保护控制(超出设定值继电器断开)冒泡法测量电压采集50次!#include#include#include#defineucharunsignedchar#defineuintunsignedint#definelcd_dataP0uchartable[5];uintsda=8000;sbiteoc=P1^3;sbitclk=P1^4;sbitsdi=P1^5;sbitsdo=P1^6;sbitcs=P1^

2、7;sbitlcd_rs=P2^4;sbitlcd_rw=P2^5;sbitlcd_en=P2^6;sbitlcd_psb=P2^1;sbitlcd_rst=P2^3;sbitkey1=P3^1;sbitkey2=P3^2;sbitkey3=P3^3;sbitkey4=P3^4;sbitLED=P2^0;voiddelay_ms(uchart){uintj,k;for(k=t;k>0;k--)for(j=110;j>0;j--);}voidwrite_com(ucharcom){lcd_rs=0;lcd_rw=0;lcd_en=0

3、;P0=com;delay_ms(5);lcd_en=1;delay_ms(5);lcd_en=0;}voidwrite_dat(uchardate){lcd_rs=1;lcd_rw=0;lcd_en=0;P0=date;delay_ms(5);lcd_en=1;delay_ms(5);lcd_en=0;}voidclear(){write_com(0x01);delay_ms(2);}voidlcd_pos(ucharX,ucharY){ucharpos;if(X==0){X=0x80;}elseif(X==1){X=0x90;

4、}elseif(X==2){X=0x88;}elseif(X==3){X=0x98;}pos=X+Y;write_com(pos);}voiddisplay1(ucharx,uchary,uchar*disp)//显示函数{lcd_pos(x,y);while(*disp){write_dat(*disp);disp=disp+1;delay_ms(1);}}voidlcd_init(){lcd_psb=1;lcd_rst=0;delay_ms(5);lcd_rst=1;delay_ms(5);write_com(0x30);//

5、基本操作指令delay_ms(5);write_com(0x0c);//显示开,关光标delay_ms(5);write_com(0x01);//清除LCD的显示内容delay_ms(5);}uintread(ucharport){ucharch,i,j;uintad;ch=port;for(j=0;j<3;j++){ad=0;ch=port;eoc=1;cs=1;cs=0;clk=0;for(i=0;i<12;i++){if(sdo)ad

6、=0x01;sdi=(bit)(ch&0x80);clk=1;clk=0;ch<<=1;a

7、d<<=1;}}cs=1;/////////转换和读取数值while(!eoc);ad>>=1;return(ad);}voiddisplay(ucharx,uchary,uinttemp)//温度显示函数{uchari=0;table[0]=temp/1000;table[1]=-2;//显示小数点table[2]=temp%1000/100;table[3]=temp%1000%100/10;table[4]=temp%1000%100%10;lcd_pos(x,y);for(i=0;i<5;i++){write_dat('0

8、'+table[i]);}}voidmain(){inti,j,temp;doubleAD1=0,AD2=0;intxdatasum[50];lcd_init();clear();display1(0,0,"测量电压值");display1(1,0,"测量电流值");display1(2,0,"设定电流值");while(1){for(j=0;j<50;j++){sum[j]=read(0x00);//通道0用了冒泡算法delay_ms(1);}AD2=read(0x10);//通道1没有用冒泡算法for(i=0;i<50-1;i

9、++){for(j=i+1;j<50;j++){if(sum[i]>sum[j]){temp=sum[i];sum[i]=sum[j];sum[j]=temp;}}}for(i=0;i<30;i++){AD1=AD1+(sum[10+i]/30);

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

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

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