欢迎来到天天文库
浏览记录
ID:17514725
大小:53.50 KB
页数:17页
时间:2018-09-02
《基于单片机的数字温度计c程序(microcontroller based digital thermometer c program)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于单片机的数字温度计c程序(MicrocontrollerbaseddigitalthermometerCprogram)#包括<2、键--增加键P3^了S3=2;//定义按键--减小键P3^了S4=6;//闹钟查看键P3^了RD=7;普通哔=P2^3;//定义蜂鸣器端函数代码temp_disp_title[]={“当前温度:“};函数current_temp_display_buffer[]={“临时”};函数代码alarm_temp[]={“报警温度高低”};函数alarm_hi_lo_str[]={“嗨:Lo:“};函数temp_data[2]={0x00,0x00};函数temp_alarm[2]={0x00,0x00};函数显示[5]={0x00,0x00,0x00,0x00,0x00};函数3、显示[3]={0x00,0x00,0x00};函数代码df_table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};函数,=0;//当前读取的温度整数部分函数temp_value[]={0x00,0x00};//从DS18B20读取的温度值函数display_digit[]={0,0,0,0};//待显示的各温度数位点ds18b20_is_ok=1;//传感器正常标志//-------------------------------------延时//1//-------------------------------------无效的极限(个4、X){我的函数;当(x)为(i=0;i<200;i+);}//-------------------------------------延时//2//-------------------------------------虚空Delay(个X){(x);}//------------------------------------//忙检查//------------------------------------无效write_com(UCHARCOM)/液晶写命令函数{RS=0;lcden=0;P0=COM;极限(5);lcden=1;极限(5);lcden=0;}5、write_lcd_data(void函数日期)/液晶写数据函数{RS=1;lcden=0;P0=日期;极限(5);lcden=1;极限(5);lcden=0;}//-----------------------------//设置液晶显示位置//---------------------------------无效set_disp_pos(ucharPos){write_com(POS6、0x80);}//-----------------------------//液晶初始化//---------------------------------无效initialize_7、lcd(){函数数;RD=0;//软件将矩阵按键第4列一端置低用以分解出独立按键班杜拉=0;//关闭两锁存器锁存端,防止操作液晶时数码管会出乱码维拉=0;lcden=0;write_com(0X38);//初始化1602液晶write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);//设置显示初始坐标对于(num=0;数<14;数++)/显示年月日星期{write_lcd_data(temp_disp_title[民]);极限(5);}}//-------------------------------8、------//函数功能:初始化DS18B20//出口参数:现状——DS18B20是否复位成功的标志//-------------------------------------init_ds18b20()函数{函数的状态;//储存DS18B20是否存在的标志,状态=0,表示存在;状态=1,表示不存在DQ=1;Delay(8);////6微秒略微延时约先将数据线拉高DQ=0;Delay(90);//再将数据线从高拉低,要求保持480~960us600/略微延时约微秒以向DS18B20发出一持续480~960us的低电平复位脉冲
2、键--增加键P3^了S3=2;//定义按键--减小键P3^了S4=6;//闹钟查看键P3^了RD=7;普通哔=P2^3;//定义蜂鸣器端函数代码temp_disp_title[]={“当前温度:“};函数current_temp_display_buffer[]={“临时”};函数代码alarm_temp[]={“报警温度高低”};函数alarm_hi_lo_str[]={“嗨:Lo:“};函数temp_data[2]={0x00,0x00};函数temp_alarm[2]={0x00,0x00};函数显示[5]={0x00,0x00,0x00,0x00,0x00};函数
3、显示[3]={0x00,0x00,0x00};函数代码df_table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};函数,=0;//当前读取的温度整数部分函数temp_value[]={0x00,0x00};//从DS18B20读取的温度值函数display_digit[]={0,0,0,0};//待显示的各温度数位点ds18b20_is_ok=1;//传感器正常标志//-------------------------------------延时//1//-------------------------------------无效的极限(个
4、X){我的函数;当(x)为(i=0;i<200;i+);}//-------------------------------------延时//2//-------------------------------------虚空Delay(个X){(x);}//------------------------------------//忙检查//------------------------------------无效write_com(UCHARCOM)/液晶写命令函数{RS=0;lcden=0;P0=COM;极限(5);lcden=1;极限(5);lcden=0;}
5、write_lcd_data(void函数日期)/液晶写数据函数{RS=1;lcden=0;P0=日期;极限(5);lcden=1;极限(5);lcden=0;}//-----------------------------//设置液晶显示位置//---------------------------------无效set_disp_pos(ucharPos){write_com(POS
6、0x80);}//-----------------------------//液晶初始化//---------------------------------无效initialize_
7、lcd(){函数数;RD=0;//软件将矩阵按键第4列一端置低用以分解出独立按键班杜拉=0;//关闭两锁存器锁存端,防止操作液晶时数码管会出乱码维拉=0;lcden=0;write_com(0X38);//初始化1602液晶write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);//设置显示初始坐标对于(num=0;数<14;数++)/显示年月日星期{write_lcd_data(temp_disp_title[民]);极限(5);}}//-------------------------------
8、------//函数功能:初始化DS18B20//出口参数:现状——DS18B20是否复位成功的标志//-------------------------------------init_ds18b20()函数{函数的状态;//储存DS18B20是否存在的标志,状态=0,表示存在;状态=1,表示不存在DQ=1;Delay(8);////6微秒略微延时约先将数据线拉高DQ=0;Delay(90);//再将数据线从高拉低,要求保持480~960us600/略微延时约微秒以向DS18B20发出一持续480~960us的低电平复位脉冲
此文档下载收益归作者所有