温湿度采集控制电路及C51程序课件

上传人:风*** 文档编号:241769857 上传时间:2024-07-22 格式:PPT 页数:74 大小:2.44MB
返回 下载 相关 举报
温湿度采集控制电路及C51程序课件_第1页
第1页 / 共74页
温湿度采集控制电路及C51程序课件_第2页
第2页 / 共74页
温湿度采集控制电路及C51程序课件_第3页
第3页 / 共74页
点击查看更多>>
资源描述
第一节 电路图和PCB一、系统构成1、温度湿度采集控制电路2、集中显示电路控制温湿度采集控制电路二、温度湿度采集控制电路温度传感器 1、模拟接口2、数字接口18b201第一节 电路图和PCB一、系统构成1223344556677三、集中显示电路控制温湿度采集控制电路1、键盘和数码管显示72792、单片机主控控制电路3、485通信8三、集中显示电路控制温湿度采集控制电路899101011111212一、温度湿度采集控制电路程序main.c主程序,含继电器控制rs232.c(rs232.h)485通信程序ds18b20.c(ds18b20.h)温度湿度采集程序第二节 器件介绍和C51编程13一、温度湿度采集控制电路程序main.c第二节 器件介绍和C#include void relay_control(void);extern void delay(unsigned char);extern void read_tmp(void);extern void read_tmp_1(void);extern void read_tmp_2(void);extern void read_tmp_3(void);sbit r_control=P35;sbit led=P33;sbit ptt=P14;void rev_ptt(void);void send_ptt(void);extern unsigned char datamain.c14#include main.c14extern unsigned char data senddata16;extern unsigned char data revdata8;extern unsigned char data*psenddata;extern unsigned char data*prevdata;extern unsigned char data tmp_l4;extern unsigned char data tmp_h4;unsigned char code me_address=0 x81;unsigned char code temp_table_l21=33,31,30,28,28,28,28,25,25,25,25,25,25,25,21,21,21,21,21,21,21;unsigned char code temp_table_h21=35,33,32,30,30,30,30,28,28,28,28,28,28,28,27,27,27,27,27,27,27;unsigned char data temp_time=20;unsigned int tmp_v;unsigned int test_time=0;extern bit rev_ok;15extern unsigned char data sendmain()ptt=0;TMOD=0 x20;TL1=0 xf4;TH1=0 xf4;SCON=0 x50;PCON=0 x00;TR1=1;ES=1;EA=1;led=0;prevdata=revdata;psenddata=senddata;16main()16 while(1)read_tmp();read_tmp_1();read_tmp_2();read_tmp_3();senddata4=(me_address&0 x0f);senddata5=tmp_h0;senddata6=tmp_l0;senddata7=tmp_h1;senddata8=tmp_l1;senddata9=tmp_h2;senddata10=tmp_l2;senddata11=tmp_h3;senddata12=tmp_l3;17 while(1)17 relay_control();if(!r_control)senddata13=0 xaa;else senddata13=0 x00;if(rev_ok)rev_ok=0;delay(1);ptt=1;delay(1);TI=1;18 relay_control();18void relay_control(void)tmp_v=(tmp_h0&0 x03)*16+(tmp_l0*.0625)+0.5);if(tmp_v=(temp_table_htemp_time-1)r_control=1;return;19void relay_control(void)19二、集中显示电路控制程序main.c主程序rs232.c(rs232.h)485通信程序7279.C(7279.h)键盘程序ds1302.c(ds1302.h)时钟程序24c64.c (24c64.h)EEROM程序utility.htemp.h20二、集中显示电路控制程序main.c20#include#include#include#include main(void)main_init();I_init();ttt2=e_read_block();/ttt1=e_write_block();if(eromimager0=0 xff)senddata5=20;else store_true=1;senddata5=eromimager7;delay(20);main.c21#include main.c21 while(1)v_get1302();time_precess();if(cur_minute!=curtime1)if(number1!=0)|(number2!=0)|(key_press1!=0)key_numcancel();f2_precess();delay(20);f3_precess();delay(20);f4_precess();delay(9000);22 while(1)22void main_init(void)hd7279_rst=0;delay(1500);hd7279_rst=1;led=0;psenddata=senddata;prevdata=revdata;send_byte(cmd_reset);pctime=settime;/v_set1302(pctime);TMOD=0 x20;TL1=0 xf4;TH1=0 xf4;SCON=0 x50;PCON=0 x00;PS=1;EX0=1;TR1=1;ES=1;EA=1;ptt=1;TI=1;key_press=0;v_setcharge();v_get1302();cur_second=curtime0;cur_minute=curtime1;cur_hour=curtime2;cur_date=curtime3;cur_month=curtime4;cur_year=curtime7;delay(10000);key_press3=1;23void main_init(void)23unsigned char h_compute(unsigned char n_w_h,unsigned char n_w_l,unsigned char w_h,unsigned char w_l)unsigned int t1,t2;unsigned char sub_val,temp_val;t1=(int)(n_w_h*16+n_w_l*.0625)+0.5)*10);t2=(int)(w_h*16+w_l*0.0625)+0.5)*10);sub_val=(unsigned char)(t1-t2)/5+0.5);temp_val=(unsigned char)(t1/10);if(sub_val!=0)return(t_htemp_val-1sub_val-1);else return(0);24unsigned char h_compute(unsign三、HD7279A器件介绍及C51编程25三、HD7279A器件介绍及C51编程25262627272828292930303131323233333434353536363737/pin definesbit cs=P15;sbit clk=P16;sbit dat=P17;sbit key=P32;void send_byte(unsigned char out_byte)unsigned char i;cs=0;long_delay();for(i=0;i8;i+)if(out_byte&0 x80)dat=1;elsedat=0;clk=1;short_delay();clk=0;short_delay();out_byte=out_byte*2;dat=0;unsigned char receive_byte(void)unsigned char i,in_byte;dat=1;long_delay();for(i=0;i8;i+)clk=1;short_delay();in_byte=in_byte*2;if(dat)in_byte=in_byte|0 x01;clk=0;short_delay();dat=0;return(in_byte);38/pin defineunsigned char recevoid write7279(unsigned char cmd,unsigned char dta)send_byte(cmd);send_byte(dta);unsigned char read7279(unsigned char command)send_byte(command);return(receive_byte();void long_delay(void)unsigned char i;for(i=0;i0 x10;i+);void short_delay(void)unsigned char i;for(i=0;i4;i+);39void write7279(unsigned char cvoid display_uh_tmp(unsigned char s,unsigned char r)int a,b,c;unsigned char s1;c=(int)(s*16+r*0.0625+0.5)*10);a=(int)(c/100);b=(int)(c-a*100)/10);s1=c-a*100-b*10;b=b|0 x80;write7279(0 x88,0 xff);write7279(0 xcc,0 x0c);write7279(0 x87,s1);write7279(0 x86,b);write7279(0 x85,a);40void display_uh_tmp(unsigned cvoid display_d_tmp(unsigned char s,unsigned char r)int a,b,c;unsigned char s1;c=(s*16+r*0.0625+0.5)*10;a=(int)(c/100);b=(int)(c-a*100)/10);s1=c-a*100-b*10;b=b|0 x80;write7279(0 xc8,0 x0b);write7279(0 x83,s1);write7279(0 x82,b);write7279(0 x81,a);41void display_d_tmp(unsigned chvoid service_int0(void)interrupt 0 /键盘中断 readkey_board();42void service_int0(void)interrvoid readkey_board(void)/按键程序 unsigned char key_r_number;if(!key)key_r_number=read7279(cmd_read);while(!key);cur_minute=curtime1;switch(key_r_number)case 6:/f1 key_f1();break;case 38:/f2 key_f2();break;case 7:/f3 key_f3();break;case 39:/f4 key_f4();break;case 14:/1 key_num0_9(1);break;case 22:/2 key_num0_9(2);break;case 30:/3 key_num0_9(3);break;case 46:/4 key_num0_9(4);break;case 54:/5 key_num0_9(5);break;case 62:/6 key_num0_9(6);break;case 15:/7 key_num0_9(7);break;case 23:/8 key_num0_9(8);break;case 31:/9 key_num0_9(9);break;case 55:/0 key_num0_9(1);break;case 63:/ok key_numok();break;case 47:/cancel key_numcancel();break case 255:break;default:break;return;43void readkey_board(void)四、18b20及C51编程44四、18b20及C51编程4445454646474748484949505051515252ds18b20.c#include#include#include void delay(unsigned char time)unsigned char s;for(s=0;stime;s+);53ds18b20.c#include 53/first 18b20void write_bit(unsigned char bitval)EA=0;DQ=0;_nop_();_nop_();if(bitval=1)DQ=1;EA=1;delay(5);DQ=1;54/first 18b2054unsigned char ow_reset(void)unsigned char presence;DQ=0;delay(120);DQ=1;delay(10);presence=DQ;delay(20);return(presence);55unsigned char ow_reset(void)55unsigned char read_byte(void)unsigned char i;unsigned char ii=0;unsigned char value=0;for(i=0;i8;i+)if(read_bit()ii=0 x01i;value|=ii;delay(5);return(value);56unsigned char read_byte(void)5bit read_bit(void)bit dat;EA=0;DQ=0;_nop_();_nop_();_nop_();DQ=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();dat=DQ;EA=1;delay(5);return(dat);57bit read_bit(void)57void write_byte(unsigned char val)unsigned char i;unsigned char temp;for(i=0;ii;temp&=0 x01;write_bit(temp);58void write_byte(unsigned char void read_tmp(void)/unsigned int a,b;temp=ow_reset();write_byte(0 xcc);write_byte(0 x44);delay(20);temp=ow_reset();write_byte(0 xcc);write_byte(0 xbe);delay(20);tmp_l0=read_byte();tmp_h0=read_byte();59void read_tmp(void)59#include/function definevoid delay(unsigned char);/first 18b20void write_bit(unsigned char);unsigned char ow_reset(void);unsigned char read_byte(void);bit read_bit(void);void write_byte(unsigned char);void read_tmp(void);sbit DQ=P10;ds18b20.h60#include ds18b20.h60unsigned char data tmp_l4;unsigned char data tmp_h4;unsigned char data temp;unsigned char data tmp=0;unsigned char data z8;sbit led=P33;sbit z1=P15;61unsigned char data tmp_l4;61第三节 12864M介绍和GAL逻辑了解12864M液晶;理解单片机总线时序及12864M液晶接口时序学会使用GAL 进行接口逻辑的编程及应用62第三节 12864M介绍和GAL逻辑了解12864M液晶;6module wstitle ADDRESS ENCODEdesigner:YXM VER 1.00 2003,9,01 ws device P22V10;ALE,WR,RD,A8,A9,A10,A11,A12,A13,A14,A15 pin 1,2,3,4,5,6,7,8,9,10,11;EOC,CSRAM,CS0,CS1,CS2,CS3,CS4,CS5,ADALE,ADOE,INT0 pin 13,14,15,16,17,18,19,20,21,22,23;equations CSRAM=A15;CS0=WR#A14#A13#A12#!A15;CS1=WR#A14#A13#!A12#!A15;CS2=WR#A14#!A13#A12#!A15;CS3=WR#A14#!A13#!A12#!A15;CS4=RD#!A14#A13#A12#!A15;CS5=RD#!A14#A13#!A12#!A15;ADALE=!WR&A14&A13&!A12&A15;ADOE=!RD&A14&A13&A12&A15;INT0=!EOC;end ws63module ws63646465656666液晶显示模块概述液晶显示模块概述12864M汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。主要技术参数和显示特性:电源:VDD 3.3V+5V(内置升压电路,无需负压);显示内容:128列 64行显示颜色:黄绿显示角度:6:00钟直视LCD类型:STN与MCU接口:8位或4位并行/3位串行配置LED背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等 67液晶显示模块概述67686812864M写6912864M写6912864M读7012864M读7071717272module decodertitle ADDRESS ENCODEdesigner:Litao VER 1.12 2006,8,23decoder device P22V10;ALE,WR,RD,A15,A14,A13,A12,A11,A10,A9,A8PIN 1,2,3,4,5,6,7,8,9,10,11;DCS,DRW,CS1,CS2,CS3,DACS,EA,RS,PSB,RWPIN 14,15,16,17,18,19,20,21,22,23;equations EA=(WR$RD)&A15&!A14&!A13&!A12&!A11&!A10;RS=A15&!A14&!A13&!A12&!A11&!A10&A9;RW=A15&!A14&!A13&!A12&!A11&!A10&A8;PSB=1;end decoder液晶写命令 0 x8000液晶读命令 0 x8100液晶写数据 0 x8200液晶读数据 0 x830073module decoder7312864时序原理图GAL管脚ABEL程序RSD/I(L/H)v2(21)RSR/WR/W(H/L)v4(23)RWEEEA(20)EAWR$RD当为写时,为WR的反;当为读时,为RD的反。这样EA在对和写的时候都有效,(A15&!A14&!A13&!A12&!A11&!A10)其地址范围为80XX83XXRS=A15&!A14&!A13&!A12&!A11&!A10&A9为高时地址为82XX或83XX,即数据,80XX或81XX为命令RW=A15&!A14&!A13&!A12&!A11&!A10&A8为高时地址为81XX或83XX,即读操作,80XX或82XX为写操作写命令 0 x80 xx;读命令 0 x81xx;写数据 0 x82xx;读数据 0 x83xx7412864时序原理图GAL管脚ABEL程序WR$RD7
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!