第一范文网 - 专业文章范例文档资料分享平台

基于单片机的多点温度采集系统

来源:用户分享 时间:2025/6/6 14:48:04 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

********************************************************************/ void ds1820disp()//温度值在LCD显示 { uchar flagdat; disdata[0]=tvalue/1000+0x30; disdata[1]=tvalue00/100+0x30;//十位数 disdata[2]=tvalue0/10+0x30;//个位数 disdata[3]=tvalue+0x30;//小数位 if(tflag==0)

flagdat=0x20; /*正温度不显示符号,0x20对应为空白,可以从1602字符代

码表中查找相关字符所对应的数值*/

else

flagdat=0x2d; //负温度显示负号:- if(disdata[0]==0x30) {

disdata[0]=0x20;//如果百位为0,不显示 if(disdata[1]==0x30) { disdata[1]=0x20;//如果百位为0,十位为0也不显示 } } wr_com(0xc0); //设置下一个要存入数据的CGRAM的地址,即40H单元(40H+80H=C0H),即第二行第一个字节(每行可以显示16个字符,可以显示两行,即1602) wr_dat(flagdat);//显示符号位 wr_com(0xc1); //下一个数据显示在第二行第二个字节 wr_dat(disdata[0]);//显示百位 wr_com(0xc2); //下一个数据显示在第二行第三个字节 wr_dat(disdata[1]);//显示十位 wr_com(0xc3); //下一个数据显示在第二行第四个字节 wr_dat(disdata[2]);//显示个位 wr_com(0xc4); //下一个数据显示在第二行第五个字节 wr_dat(0x2e);//显示小数点 wr_com(0xc5); //下一个数据显示在第二行第六个字节 wr_dat(disdata[3]);//显示小数位 wr_com(0xc6); wr_dat(0xdf); wr_com(0xc7); wr_dat(0x43); }

/******************************************************** 扫描按键

*********************************************************/ uchar key_scan( ) {

36

uchar key_back; key_back=0;

if( !KEY1 | !KEY2 | !KEY3 ) {

delay1ms(5);

if( !KEY1 | !KEY2 | !KEY3 ) { if(!KEY1) key_back=1; else if(!KEY2) key_back=2; else if(!KEY3) key_back=3; while(!KEY1 | !KEY2 | !KEY3); // 等待按键释放 } } return key_back; }

/***************************************************** 函数功能:按键处理

***************************************************/ void key_action( uchar key_back) {

if(Switch==0) {

if(key_back==1) { mode++; if(mode>2) mode=0; }

else if(key_back==2) { if(mode==1) { H_temp++;

if(H_temp>125) H_temp=125; }

else if(mode==2) { L_temp++;

if(L_temp>125) L_temp=125; } }

else if(key_back==3) { if(mode==1) { H_temp--;

37

if(H_temp<-50) H_temp=-50; }

else if(mode==2) { L_temp--;

if(L_temp<-50) L_temp=-50; } } }

if(Switch==1) {

if(key_back==1) { mode2++; if(mode2>2) mode2=0; }

else if(key_back==2) { if(mode2==1) { H_temp2++;

if(H_temp2>125) H_temp2=125; }

else if(mode2==2) { L_temp2++;

if(L_temp2>125) L_temp2=125; } }

else if(key_back==3) { if(mode2==1) { H_temp2--;

if(H_temp2<-50) H_temp2=-50; }

else if(mode2==2) { L_temp2--;

if(L_temp2<-50) L_temp2=-50; } } } }

/***************************************************** 显示数据处理

38

***************************************************/ void display_transaction( ) {

if(Switch==0) /*如果拨动开关关闭,则调整显示传感器1相关数据*/ {

if(mode==0) //模式0,正常显示传感器测得温度 {

init_play(0);

read_temp(0);//读取温度 ds1820disp();//显示 }

if(mode==1) //模式1,显示高温限值TH1 {

init_play(1);

tvalue=H_temp*10; if(H_temp<0) tflag=1; else

tflag=0;

ds1820disp();//显示 }

if(mode==2) //模式2,显示低温限值TH1 {

init_play(2);

tvalue=L_temp*10; if(L_temp<0) tflag=1; else

tflag=0;

ds1820disp();//显示 } }

else /*拨动开关开,则显示温度传感器2相关数据*/ {

if(mode2==0) //模式0,正常显示传感器测得温度 {

init_play(3);

read_temp(1);//读取温度 ds1820disp();//显示 }

if(mode2==1) //模式1,显示高温限值TH1 {

init_play(4);

39

搜索更多关于: 基于单片机的多点温度采集系统 的文档
基于单片机的多点温度采集系统.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2tx993k7ch77xpo5846y5ap1c1kzfj00qep_11.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top