📄 shui.txt
字号:
#include <absacc.h>
#include <REG52.h>
#include <stdio.h>
#include <intrins.h>
#define ulong unsigned long
#define uint unsigned int
#define uchar unsigned char
#define para1 0x20;
#define dat1 DBYTE[0x30]
#define dat2 DBYTE[0x31]
#define LCMDW XBYTE[0xF0FF]
#define LCMCW XBYTE[0xF1FF]
#define com DBYTE[0x32]
#define O_Y DBYTE[0x33]
#define O_X DBYTE[0x34]
#define code_1 DBYTE[0x35]
sbit ACC_0=ACC^0;
sbit ACC_1=ACC^1;
sbit ACC_3=ACC^3;
sbit csh=P3^2;
sbit jsh=P3^1;
sbit swen=P3^3;
sbit DQ=P3^4;
sbit L1=P2^3;
sbit L2=P3^5;
sbit L3=P2^2;
sbit L4=P2^3;
sbit s_a=P2^7;
sbit s_b=P2^6;
sbit s_c=P2^5;
sbit s_d=P2^4;
unsigned char w_s=1,s_s=1;
unsigned char t=0,tb=0,ts=0,tg=0,shs=13,shz=11,
s_tb=0,s_ts=0,s_tg=0,s_sh=13,kk,mm=0,p=0;
code uchar CCNum[][16]={
/*---转换字符 0 ---*/
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,
/*---转换字符 1 ---*/
0x00,0x00,0x00,0x10,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,
/*---转换字符 2 ---*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x04,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00,
/*---转换字符 3 ---*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x04,0x18,0x04,0x02,0x02,0x42,0x44,0x38,0x00,0x00,
/*---转换字符 4 ---*/
0x00,0x00,0x00,0x04,0x0C,0x14,0x24,0x24,0x44,0x44,0x7E,0x04,0x04,0x1E,0x00,0x00,
/*---转换字符 5 ---*/
0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x58,0x64,0x02,0x02,0x42,0x44,0x38,0x00,0x00,
/*---转换字符 6 ---*/
0x00,0x00,0x00,0x1C,0x24,0x40,0x40,0x58,0x64,0x42,0x42,0x42,0x24,0x18,0x00,0x00,
/*---转换字符 7 ---*/
0x00,0x00,0x00,0x7E,0x44,0x44,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
/*---转换字符 8 ---*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00,
/*---转换字符 9 ---*/
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x26,0x1A,0x02,0x02,0x24,0x38,0x00,0x00,
/*---转换字符 : ---*/ //10
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,
/*----转换字符 空格---*/ //11
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
/*---转换字符 . ---*/
//12
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,
/*---转换字符 A ---*/ //13
0x00,0x00,0x00,0x10,0x10,0x18,0x28,0x28,0x24,0x3C,0x44,0x42,0x42,0xE7,0x00,0x00,
/*---转换字符 B ---*/ //14
0x00,0x00,0x00,0xF8,0x44,0x44,0x44,0x78,0x44,0x42,0x42,0x42,0x44,0xF8,0x00,0x00,
/*---转换字符 C ---*/ //15
0x00,0x00,0x00,0x3E,0x42,0x42,0x80,0x80,0x80,0x80,0x80,0x42,0x44,0x38,0x00,0x00,
//13
/*---转换字符 D ---*/ //16
0x00,0x00,0x00,0xf8,0x44,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x44,0xF8,0x00,0x00,
/*---转换字符 E ---*/ //17
0x00,0x00,0x00,0xFC,0x42,0x48,0x48,0x78,0x48,0x48,0x40,0x42,0x42,0xFC,0x00,0x00,
/*---转换字符 - ---*/ //18
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
code uchar CCTAB[][32]={
/*---转换字符 当 ---*/ //0
0x00,0x80,0x10,0x90,0x08,0x98,0x0C,0x90,0x08,0xA0,0x00,0x80,0x3F,0xFC,0x00,0x04,
0x00,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x04,0x3F,0xFC,0x00,0x04,0x00,0x00,
/*---转换字符 前 ---*/ //1
0x08,0x10,0x06,0x18,0x04,0x20,0xFF,0xFE,0x00,0x00,0x3E,0x08,0x22,0x48,0x3E,0x48,
0x22,0x48,0x22,0x48,0x3E,0x48,0x22,0x48,0x22,0x48,0x2A,0x08,0x24,0x28,0x00,0x10,
/*---转换字符 设 ---*/ //2
0x40,0x00,0x21,0xF0,0x31,0x10,0x21,0x10,0x01,0x10,0x01,0x10,0xE2,0x0E,0x25,0xF8,
0x21,0x08,0x21,0x08,0x20,0x90,0x20,0x90,0x28,0x60,0x30,0x90,0x23,0x0E,0x0C,0x04,
/*---转换字符 定 ---*/ //3
0x02,0x00,0x01,0x00,0x3F,0xFE,0x20,0x04,0x40,0x08,0x1F,0xF0,0x01,0x00,0x11,0x00,
0x11,0x00,0x11,0xF0,0x11,0x00,0x29,0x00,0x25,0x00,0x43,0x00,0x81,0xFC,0x00,0x00,
/*---转换字符 温 ---*/ //4
0x40,0x00,0x27,0xF0,0x24,0x10,0x07,0xF0,0x94,0x10,0x54,0x10,0x17,0xF0,0x20,0x00,
0x2F,0xFC,0xC9,0x24,0x49,0x24,0x49,0x24,0x49,0x24,0x49,0x24,0x5F,0xFE,0x40,0x00,
/*---转换字符 度 ---*/ //5
0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x2F,0xFC,0x22,0x20,0x23,0xE0,
0x20,0x00,0x27,0xF8,0x22,0x10,0x21,0x20,0x20,0xC0,0x41,0x30,0x46,0x0E,0x98,0x04, //6
/*---转换字符 水 ---*/
0x01,0x00,0x01,0x00,0x01,0x08,0x01,0x10,0x7D,0x20,0x05,0xC0,0x05,0x40,0x09,0x20,
0x09,0x20,0x11,0x10,0x11,0x18,0x21,0x0E,0xC1,0x04,0x01,0x00,0x05,0x00,0x02,0x00,
/*---转换字符 位 ---*/ //7
0x09,0x00,0x0C,0xC0,0x10,0x40,0x17,0xFC,0x20,0x00,0x34,0x10,0x52,0x18,0x52,0x10,
0x91,0x10,0x11,0x20,0x11,0x20,0x10,0x20,0x10,0x40,0x1F,0xFE,0x10,0x00,0x00,0x00,
/*---转换字符 。 ---*/ //8
0x00,0x00,0x00,0x00,0x30,0x00,0x48,0x00,0x48,0x00,0x30,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*---转换字符 进 ---*/ //9
0x01,0x10,0x41,0x10,0x21,0x10,0x37,0xFC,0x21,0x10,0x01,0x10,0x01,0x10,0xF7,0xFE,
0x11,0x10,0x11,0x10,0x12,0x10,0x12,0x10,0x14,0x10,0x28,0x00,0x47,0xFE,0x00,0x00,
/*---转换字符 出 ---*/ //10
0x01,0x00,0x01,0x00,0x21,0x04,0x21,0x04,0x21,0x04,0x21,0x04,0x3F,0xFC,0x21,0x04,
0x01,0x00,0x21,0x04,0x21,0x04,0x21,0x04,0x21,0x04,0x3F,0xFC,0x20,0x04,0x00,0x00,
/*---转换字符 停 ---*/ //11
0x08,0x40,0x0C,0x20,0x0B,0xFE,0x10,0x00,0x11,0xF8,0x31,0x08,0x51,0xF8,0x90,0x00,
0x17,0xFE,0x14,0x02,0x11,0xFC,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0xA0,0x10,0x40,
};
/*****************延时函数**************/
void delay(unsigned int t)
{
for(;t>0;t--);
}
/************DS18b20复位函数************/
ow_reset(void)
{
unsigned char presence=1;
while(presence)
{
while(presence)
{
DQ=1;_nop_();_nop_();
DQ=0;delay(50); //550us
DQ=1;delay(6); //66us
presence=DQ; //presence=0继续下一步
}
delay(45); //延时500us
presence=~DQ;
}
DQ=1;
}
/**********DS18b20读一个字节函数**********/
unsigned char read_byte(void)
{
unsigned char i;
unsigned char value = 0;
for (i=8;i>0;i--)
{
DQ=1;_nop_();_nop_();
value>>=1;
DQ=0;_nop_();_nop_();_nop_();_nop_(); //4us
DQ=1;_nop_();_nop_();_nop_();_nop_(); //4us
if(DQ) value|=0x80;
delay(6); //66us
}
DQ=1;
return(value);
}
/************DS18b20写一个字节函数**************/
void write_byte(char val)
{
unsigned char i;
for (i=8; i>0; i--)
{
DQ=1;_nop_();_nop_();
DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_(); //5us
DQ=val&0x01;delay(6); //最低为移出
val=val/2; //右移一位
}
DQ=1;delay(1);
}
/***************读取温度函数**************/
unsigned int read_temperature(void)
{
union{unsigned char c[2];
unsigned int x;
}temp;
ow_reset(); //总线复位
write_byte(0xCC); // 发Skip ROM命令
write_byte(0xBE); // 发读命令
temp.c[1]=read_byte(); //温度低8位
temp.c[0]=read_byte(); //温度高8位
ow_reset();
write_byte(0xCC); //Skip ROM
write_byte(0x44); //发转换命令
temp.x<<=4;
return (temp.c[0]);
//return temp.x/2;
}
/********* 判状态位S1,S0 子程序(读写指令和读写数据状态) ********/
void ST01(void)
{do{ACC=LCMCW;}
while(ACC_0==0&&ACC_1==0);
}
void PR12(void) {ST01();LCMCW=com;}
void PR11(void) { ST01();LCMDW=dat2;PR12();}
void PR1(void) {ST01();LCMDW=dat1;PR11();}
void ST3(void)
{do{ACC=LCMCW;}
while(ACC_3==0);
}
/************初始化子程序*********************/
void chushi_1(void)
{
dat1=0x00; dat2=0x00;com=0x40;PR1();/*设文本显示区域首地址*/
dat1=para1;dat2=0x00;com=0x41;PR1();/* 设文本显示区域宽度 */
dat1=0x00;dat2=0x08;com=0x42;PR1(); /*设图形显示区域首地址*/
dat1=para1;dat2=0x00;com=0x43;PR1(); /*设图形显示区域宽度*/
com=0xa7;PR12(); /*光标形状设置*/
com=0x80;PR12(); /*显示方式设置逻辑"或"合成*/
com=0x9c;PR12(); /*显示开关设置 开文本和图形显示*/
}
/*************清显示子程序**************/
void CLEAR(void)
{
unsigned char i,j;
dat1=0x00;dat2=0x00;com=0x24;PR1();
com=0xb0;PR12();
for(i=0;i<205;i++) /* 205 */
{for(j=0;j<=40;j++) /* 40 */
{ ST3();LCMDW=0x00;}
}
com=0xb2;PR12();
}
/*******16点阵汉字写入(图形方式)子程序 *******/
void CCW2_PR(uchar x1)
{ unsigned char i,count1;
unsigned int j;
i=para1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -