数字电压表毕业设计(5)

2019-06-17 12:41

void write_com(uchar com)//往1602液晶写命令函数 { rs=0; P0=com; delay(5); ep=1; delay(5); ep=0;

}

void write_dat(uchar dat)//往1602液晶写数据函数 { rs=1; P0=dat; delay(5); ep=1; delay(5); ep=0; }

void init_1602()//对1602液晶的初始化函数 {

rs=0; rw=0; 21

}

write_com(0x38); delay(1); write_com(0x0c); delay(1); write_com(0x06); delay(1); write_com(0x01); delay(1);

void init_timer0()//定时计数器0初值化函数, { }

void display(uchar x,uchar y,uint dat)//显示电压值的函数,x行y列开始显示 {

uint add; uchar i,a[5]; TMOD=0x01;//方式一

TH0=(65536-50000)/256;//每50ms中断一次 TL0=(65536-50000)%6; IE=0x82;//打开中断 TR0=0;//定时器首先不可工作

22

write_com(add); add=add+y; }

case 1:add=0x80+0x40;break; switch(x) {

case 0:add=0x80;break;

for(i=0;i<5;i++)

{ }

a[i]=dat; dat=dat/10;

write_dat(a[4]+0x30); write_dat(a[3]+0x30); write_dat(a[2]+0x30); write_dat('.');

write_dat(a[1]+0x30); }

void display_zifu(uchar x,uchar y,uchar *str)//显示字符函数,x行y列开始显示

write_dat(a[0]+0x30);

23

{ uint add; switch(x) { case 0:add=0x80;break; case 1:add=0x80+0x40;break;

}

add=add+y; write_com(add); while(*str!='\\0') { write_dat(*str); str++;

}

}

uint read_AD(uchar con_way)//读取AD转换值操作函数{ uint dat=0; uchar i; cs=0; clk=0; con_way<<=4;

for(i=0;i<12;i++) 24

{

con_way<<=1;/*选择0通道,在输入该控制数据的同时输出前一次AD

转结果*/ input=CY;

dat<<=1;

if(output)/*输出AD转换结果*/

dat=dat|0x01;

delay(2); clk=1; delay(5); clk=0;

} cs=1; return dat;

}

uint read_value() { long float dq; long float dat_v;

dq=read_AD(0);//把读取得的AD转换值给变量dq

if(!flag_3)

dat_v=(200*dq)/4096*100;//二档,量程为200V else if(!flag_2)

dat_v=(20*dq)/4096*100;//二档,量程为20V

25


数字电压表毕业设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:公园桥施工组织设计(正)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: