实验室温湿度监控系统的设计(1)(8)

2019-09-02 00:18

[10] 刘宝元,张玉虹,姜旭,段存丽.基于单片机的温湿度监控系统设计[J].国外电子测量技术,2009,(12):77-80.83.

【摘要】 温湿度是影响硝基软片生产和厚度检测的重要因素。采用AT89S52单片机为控制中心,由STH10温湿度传感器及1602字符型液晶模块构成硝基软片生产在线实时温湿度监控系统,实现对硝基软片生产环境的温湿度精确测量与控制。实践证明,该系统电路简单、工作稳定、集成度高,调试方便,测试精度高,保证硝基软片生产线的产品质量与合格率,具有一定的实用价值。

-31-

附录D 部分系统源程序

#include #include #include

unsigned char dispbuf[5]={0}; unsigned char temp[5]; unsigned char T0count; unsigned char timecount; bit flag;

unsigned long F; //频率值 unsigned int pF;//电容量 signed char RH;//湿度

unsigned char Tset,Rset;//默认的温度报警线

unsigned char menu;//菜单变量,0时正常,1时设置温度,2时设置湿度 sbit K0=P2^0;//定义键盘K0 sbit K1=P2^1;//定义键盘K1 sbit K2=P2^2;//定义键盘K2 sbit beep=P1^0;

sbit LCD_RS = P2^7; sbit LCD_E = P2^6;

#define LCD_DATA P0

/************************************************** ** 函数名称: dellay

** 入口参数:h(unsigned int型) ** 出口参数:无

** 功能描述: 短暂延时,使用11.0592晶体,约0.01MS ****************************************************/ void dellay(unsigned int h) {

while(h--); //0.01MS }

/************************************************** ** 函数名称: WriteDataLcd

** 入口参数:wdata(unsigned char型) ** 出口参数:无

** 功能描述: 写数据到LCD

****************************************************/ void WriteDataLcd(unsigned char wdata) {

-32-

LCD_RS=1;

LCD_DATA=wdata;

dellay(100); //短暂延时,代替检测忙状态 LCD_E=1;

dellay(100); //短暂延时,代替检测忙状态 LCD_E=0; }

/************************************************** ** 函数名称: WriteCommandLcd

** 入口参数:wdata(unsigned char型) ** 出口参数:无

** 功能描述: 写命令到LCD

****************************************************/ void WriteCommandLcd(unsigned char wdata) {

LCD_RS=0;

LCD_DATA=wdata;

dellay(100); //短暂延时,代替检测忙状态 LCD_E=1;

dellay(100); //短暂延时,代替检测忙状态 LCD_E=0; }

//LCD初始化

void lcd_init(void) {

LCD_E=0;

WriteCommandLcd(0x38);

WriteCommandLcd(0x38); //显示模式设置 WriteCommandLcd(0x08); //关闭显示

WriteCommandLcd(0x0c);

WriteCommandLcd(0x06); //显示光标移动设置 WriteCommandLcd(0x01); //显示清屏

WriteCommandLcd(0x90); //显示开及光标移动设置 }

/************************************************** ** 函数名称: display_xy

** 入口参数:x(unsigned char型),y(unsigned char型) ** 出口参数:无

** 功能描述: 设置光标位置, x是列号,y是行号

****************************************************/

void display_xy(unsigned char x,unsigned char y)

-33-

{

if(y==1) x+=0x40; x+=0x80;

WriteCommandLcd(x); }

/******************************************************************** ** 函数名称: display_char

** 入口参数:x(unsigned char型),y(unsigned char型),dat(unsigned char型) ** 出口参数:无

** 功能描述: 在具体位置显示单个字符,x是列号,y是行号

*********************************************************************/ void display_char(unsigned char x,unsigned char y,unsigned char dat) {

display_xy(x,y); WriteDataLcd(dat); }

/********************************************************************* ** 函数名称: display_string

** 入口参数:x(unsigned char型),y(unsigned char型),s(指针型) ** 出口参数:无

** 功能描述: 在具体位置显示字符串,以/0结束,x是列号,y是行号

**********************************************************************/ void display_string(unsigned char x,unsigned char y,unsigned char *s) {

display_xy(x,y); while(*s) { WriteDataLcd(*s); s++; } }

//*****************//

//以下是DS18B20驱动程序 //*****************//

unsigned char data temp_data[2]={0x00,0x00}; //读出温度暂放

unsigned char data _1820display[5]={0x00,0x00,0x00,0x00,0x00}; //显示单元数据,共4个数据和一个运算暂用 unsigned int tmp;

-34-

sbit DQ=P2^4;

sbit DQVCC=P2^3; sbit DQGND=P2^5;

//**************温度小数部分用查表法***********// unsigned char code ditab[16]= {

0x00,0x01,0x01,0x02, 0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07, 0x08,0x08,0x09,0x09 };

/*****************11us延时函数*************************/ //

void _18B20_delay(unsigned int t) {

for (;t>0;t--); }

/****************DS18B20复位函数************************/ _18B20_reset(void) {

char presence=1; while(presence) { while(presence) { DQ=1; _nop_();_nop_();//从高拉倒低 DQ=0; _18B20_delay(50); //550 us DQ=1; _18B20_delay(6); //66 us presence=DQ; //presence=0 复位成功,继续下一步 } _18B20_delay(45); //延时500 us presence=~DQ; }

DQ=1; //拉高电平 }

-35-


实验室温湿度监控系统的设计(1)(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:涵洞力学计算书很全面

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

马上注册会员

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