大鹏温湿度的控制与实现(6)

2019-07-13 16:32

洛阳理工学院毕业设计(论文)

附录2

#include

#define uchar unsigned char #define uint unsigned int sbit rs=P2^1; sbit rw=P2^2;

sbit lcden=P2^0; //定义1602端口

sbit DQ = P3^6; //定义温度传感器DS18B20通信端口 sbit BZ = P3^7; sbit key1=P3^2; sbit key2=P3^3; sbit key3=P1^0; sbit key4=P1^1; sbit key5=P1^2; sbit key6=P1^3; uint t,wendu,flag;

uint num1=200,num2=400; uchar code table[]=%uchar code table1[]=\void send_init() { TMOD=0x20;;

TH1=0xfd; TL1=0xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; }

23

洛阳理工学院毕业设计(论文)

void delay(uint z) { uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);} //延时1S

delay(5); void delay1(uint i)

{ while(i--);}

void write_com(uchar com) { rs=0;

lcden=0; P0=com; delay(5); lcden=1; delay(5);

lcden=0;} //执行指令

//读取信息 //输入指令 //执行指令

void write_date(uchar date) { rs=1;

lcden=0; } lcden=0; P0=date; delay(5); lcden=1;

//输入数据

void init_1602() { uchar num;

lcden=0; rw=0;

write_com(0x38);//设置点阵8位数据接口 write_com(0x0c);//开显示,不显示光标 write_com(0x06);//地址指针加一 write_com(0x01);//刷新,全部清零

24

洛阳理工学院毕业设计(论文)

write_com(0x80);//给地址,表示从第一行开始写 for(num=0;num<9;num++)

{ write_date(table[num]);

delay(5);}

write_com(0x80+0x40);//第二行 for(num=0;num<9;num++)

{ write_date(table1[num]);

delay(5);} }

void D_init()//DS18B20初始化 { uchar x=0; DQ=1; delay1(8); DQ=0; delay1(80); DQ=1; delay1(14); x=DQ;

delay1(20);}

void D_w(uchar s)//DS18B20写命令 { uchar i=0;

for(i=8;i>0;i--) { DQ=0;

DQ=s&0x01; delay1(5); DQ=1; s=s>>1;} }

uint D_r(void) //DS18B20读数据 { uchar i=0; uchar s=0; for(i=8;i>0;i--)

25

洛阳理工学院毕业设计(论文)

{ DQ=0;

s=s>>1; DQ=1; if(DQ) s|=0x80; delay1(4);

} return(s); }

readT(void)//DS18B20读数据整体处理 { uchar a1=0; uchar b1=0; uint t=0; D_init();

D_w(0xcc); //skip rom D_w(0x44); //Convert T D_init(); D_w(0xcc);

D_w(0xbe); //Read Scratchpad a1=D_r(); //LSB b1=D_r(); //MSB t=b1; t<<=8; t=t|a1; t=t*0.625; return(t);} void TDisp1() { uchar bai,shi,ge,sf;

bai=wendu/1000+'0'; shi= (wendu/100)+'0'; ge= (wendu/10)+'0'; sf= wendu+'0';

26

洛阳理工学院毕业设计(论文)

write_com(0x80+0x09); write_date(bai); write_com(0x80+0x0a); write_date(shi); write_com(0x80+0x0b); write_date(ge); write_com(0x80+0x0c); write_date(0x2e); write_com(0x80+0x0d); write_date(sf); ES=0; flag=0; SBUF=bai;

while(!TI);

TI=0;

SBUF=shi;

while(!TI); TI=0 ;

SBUF=ge;

while(!TI); TI=0; SBUF=0x2e; while(!TI); TI=0; SBUF=sf; while(!TI); TI=0; SBUF=num1; while(!TI);

TI=0;

27


大鹏温湿度的控制与实现(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:BOSS系统行业现状及发展趋势分析

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

马上注册会员

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