冰箱控制显示面板 - 课程设计word2003(5)

2019-08-31 14:14

{

reset();

write_byte(0xcc); //直接向18b20发送温度变换命令 write_byte(0x44); //启动18b20进行温度转换 }

uint tmp() //获取温度 {

float tt; uchar a,b; reset();

write_byte(0xcc); //直接向18b20发送温度变换命令 write_byte(0xbe); //读取温度寄存器的温度值 a=read_byte(); //读低八位 b=read_byte(); //读高八位 temp=b;

temp<<=8; //两个字节的值相加 temp=temp|a;

if(temp>>11!=0) //判断是否是负数 {

fushu=1;

temp=~temp; temp=temp+1;

} else {fushu=0;} tt=temp*0.0625; temp=tt; return temp; }

//***************温度数据处理显示*****************************// void display_temp() {

uchar A1,A2,a,b,c,d; uint wendu; tmpchange(); wendu=tmp(); A1=wendu/10; A2=wendu; c=wendu*10; a=A1/10; b=A1; c=A2;

if(fushu==1) // 读出的温度为负数 {

led_send7(1,11);

delay(2); led_send7(2,b); delay(2); led_send8(3,c); delay(2); led_send7(4,d); delay(2); }

else //读出的温度值为正数 {

led_send7(1,a); delay(1); led_send7(2,b); delay(1); led_send8(3,c); delay(1); led_send7(4,d); delay(1); } }

//******获取冷藏室的温度**********// void init_cang(void) //初始化函数 { }

bit read_bitcang(void) //读取一位 { bit temp2; }

uchar read_bytecang(void) //读一个字节 {

uchar i,byte1=0; bit j;

DQ1=0; _nop_(); DQ1=1; _nop_(); temp2=DQ1; delay1(200); return temp2; DQ1=0; delay1(100); DQ1=1; delay1(4); delay1(200);

for(i=0;i<8;i++) {

byte1=_cror_(byte1 ,1); j=read_bitcang();

if(j==0) byte1=byte1|0x00; else byte1=byte1|0x80; }

return byte1; }

void write_bytecang(uchar command1) //写一个字节函数 {

uchar i;

for(i=0;i<8;i++) {

if((command1&0x01)==0) { DQ1=0; delay1(8); DQ1=1; _nop_(); } else { DQ1=0; _nop_(); DQ1=1; delay1(8); }

command1=_cror_(command1,1); } }

void tmp_cang(void) //温度获取命令函数 {

init_cang();

write_bytecang(0xcc); //直接向18b20发送温度变换命令 write_bytecang(0x44); //启动18b20进行温度转换 }

uint tmp_cang1() //获取温度 {

float t; uchar a,b; init_cang();

write_bytecang(0xcc); //直接向18b20发送温度变换命令

write_bytecang(0xbe); //读取温度寄存器的温度值 a=read_bytecang(); //读低八位 b=read_bytecang(); //读高八位 temp1=b;

temp1<<=8; //两个字节的值相加 temp1=temp1|a;

if(temp1>>11!=0) //判断是否是负数 {

fushu_c=1;

temp1=~temp1; temp1=temp1+1;

} else {fushu_c=0;} t=temp1*0.0625; temp1=t; return temp1; }

//***************冷藏室温度数据处理显示*****************************// void display_tempcang() {

uchar a1,a2,a,b,c,d; uint wendu1; tmp_cang(); wendu1=tmp_cang1(); a1=wendu1/10; a2=wendu1; c=wendu1*10; a=a1/10; b=a1; c=a2;

if(fushu_c==1) // 读出的温度为负数 {

led_send7(1,11); delay(2); led_send7(2,b); delay(2); led_send8(3,c); delay(2); led_send7(4,d); delay(2); }

else //读出的温度值为正数 {

led_send7(1,a); delay(2); led_send7(2,b); delay(2); led_send8(3,c); delay(2); led_send7(4,d); delay(2); } }

//********键盘处理函数*******************// char keyscan() //键盘扫描 {

static char key_num=0; uchar num; if(Flag1==1) {

if(k1==0) {

for(num=0;num<10;num++); //延时消除键抖 if(k1==0) { delay(10); if(k1==1)

key_num=key_num+1; } } if(k2==0) {

for(num=0;num<10;num++); //延时,消除键抖 if(k2==0) { delay(10); if(k2==1)

key_num=key_num-1; } }

}

return key_num; }

//*****************键盘显示函数 ******* // display_key() {


冰箱控制显示面板 - 课程设计word2003(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:管理 合同 刚要

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

马上注册会员

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