温度计设计方案书.docVIP

  • 12
  • 0
  • 约4.45千字
  • 约 6页
  • 2017-11-16 发布于江苏
  • 举报
温度计设计方案书

#includereg52.h #define uchar unsigned char #define uint unsigned int uchar code disp[]=0123456789- ; uchar code disp2[]=Tempreture; /* 自定义文字是8*8点阵构成的 但是前3位是无效的, 有效位是后面5位,前3位是1和0没区别,最好为0*/ uchar user[]={0x07,0x05,0x07,0x00,0x00,0x00,0x00,0x00}; //自定义”°“ sbit lcden=P2^0; sbit lcdrw=P2^1; sbit lcdrs=P2^2; sbit tempt=P2^3; //数据总线 uint u_temp,s_temp; //定义无符号整型形参 float f_temp; //定义浮点型形参 void delay(uint x) //延时500ms程序 { uint i,j; for(i=0;ix;i++) for(j=0;j130;j++); } /* rs=0 输入指令 rs=1 输入数据*/ /* r/w=0 向lcd写入指令或数据 r/w=1 从lcd 读取信息*/ /* en=1时候 读取信息 1→0(下降沿)执行命令*/ void write_com(uchar com) //液晶写命令 { lcdrs=0; lcdrw=0; P0=com; delay(2); lcden=1; delay(2); lcden=0; } void write_data(uchar date) //液晶写数据 { lcdrs=1; lcdrw=0; P0=date; delay(2); lcden=1; delay(2); lcden=0; } void lcd_init() //液晶初始化 { lcden=0; lcdrw=0; write_com(0x38); //初始化液晶第一行 write_com(0x0c); //开显示 不显示光标 不闪烁 write_com(0x06); //每次写入数据后 地址加1 write_com(0x01); //清屏 } void display_tempt(uint date) //温度数据显示 { uchar i,j,k,m; m=date/1000; // 百位 i=(date%1000)/100; //十位 j=(date%100)/10; //个位 k=date%10; //小数位 write_com(0x80+0x40+5); //从液晶显示屏第二行的第5位开始显示 if(date=1000) {write_data(disp[m]); write_data(disp[i]); write_data(disp[j]); write_data(.); write_data(disp[k]);} else if(date=100date1000) { write_data(disp[11]); write_data(disp[i]); write_data(disp[j]); write_data(.); write_data(disp[k]); } else if(date=0date100) { write_data(disp[11]); write_data(disp[11]); write_data(disp[j]); write_data(.); write_data(disp[k]); } } void display_ftemp(uint date) // 显示负数温度 { uchar i,j,k; i=date/100; //十位 j=date%100/10; //个位 k=date%100%10; //小数位 write_com(0x80+0x40+5); //从液晶显示屏第二行的第4位开始显示 if(date=100date600) { write_data(disp[10]); //显示负号 write_d

文档评论(0)

1亿VIP精品文档

相关文档