温湿采集控制电路及C程序学习教案_第1页
温湿采集控制电路及C程序学习教案_第2页
温湿采集控制电路及C程序学习教案_第3页
温湿采集控制电路及C程序学习教案_第4页
温湿采集控制电路及C程序学习教案_第5页
已阅读5页,还剩70页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1温湿温湿(wn sh)采集控制电路及采集控制电路及C程序程序第一页,共75页。2第1页/共74页第二页,共75页。3第2页/共74页第三页,共75页。4第3页/共74页第四页,共75页。5第4页/共74页第五页,共75页。6第5页/共74页第六页,共75页。7第6页/共74页第七页,共75页。8三、集中(jzhng)显示电路控制温湿度采集控制电路1、键盘和数码管显示72792、单片机主控控制电路3、485通信第7页/共74页第八页,共75页。9第8页/共74页第九页,共75页。10第9页/共74页第十页,共75页。11第10页/共74页第十一页,共75页。12第11页/共74页第十二页

2、,共75页。13一、温度湿度(shd)采集控制电路程序main.c主程序,含继电器控制(kngzh)rs232.c (rs232.h)485通信程序ds18b20.c (ds18b20.h)温度湿度采集程序第二节 器件(qjin)介绍和C51编程第12页/共74页第十三页,共75页。14#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);exte

3、rn 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.c第13页/共74页第十四页,共75页。15extern unsigned char data senddata16;extern unsigned char data revdata8;extern unsigned char data *psenddata;extern unsigned char data *pre

4、vdata;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,2

5、7;unsigned char data temp_time=20;unsigned int tmp_v;unsigned int test_time=0;extern bit rev_ok;第14页/共74页第十五页,共75页。16main() 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;第15页/共74页第十六页,共75页。17 while(1) read_tmp(); read_t

6、mp_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;第16页/共74页第十七页,共75页。18 relay_control(); if (!r_control) senddata13=0 xaa; else sendda

7、ta13=0 x00; if (rev_ok) rev_ok=0; delay(1); ptt=1; delay(1); TI=1; ;第17页/共74页第十八页,共75页。19void 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;第18页/共74页第十九页,共75页。20二、集中显示(xinsh)电路控制程序main.c主程序rs232.c (rs232.h)485通信程序7279.C (

8、7279.h)键盘(jinpn)程序ds1302.c (ds1302.h)时钟程序24c64.c (24c64.h)EEROM程序utility.htemp.h第19页/共74页第二十页,共75页。21#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(

9、20);main.c第20页/共74页第二十一页,共75页。22 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); ;第21页/共74页第二十二页,共75页。23void main_init(void) hd7279_rst=0;delay(150

10、0);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_

11、hour=curtime2; cur_date=curtime3;cur_month=curtime4;cur_year=curtime7; delay(10000); key_press3=1;第22页/共74页第二十三页,共75页。24unsigned 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*.06

12、25)+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);第23页/共74页第二十四页,共75页。25三、HD7279A器件(qjin)介绍及C51编程第24页/共74页第二十五页,共75页。26第25页/共74页第二十六页,共75页。27第26页/共74页第二十七页,共75页。28

13、第27页/共74页第二十八页,共75页。29第28页/共74页第二十九页,共75页。30第29页/共74页第三十页,共75页。31第30页/共74页第三十一页,共75页。32第31页/共74页第三十二页,共75页。33第32页/共74页第三十三页,共75页。34第33页/共74页第三十四页,共75页。35第34页/共74页第三十五页,共75页。36第35页/共74页第三十六页,共75页。37第36页/共74页第三十七页,共75页。38/pin definesbit cs=P15;sbit clk=P16;sbit dat=P17;sbit key=P32;void send_byte(unsi

14、gned 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;i

15、f(dat)in_byte=in_byte|0 x01;clk=0;short_delay();dat=0;return(in_byte);第37页/共74页第三十八页,共75页。39void 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(

16、i=0;i0 x10;i+);void short_delay(void)unsigned char i;for(i=0;i4;i+); 第38页/共74页第三十九页,共75页。40void 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); write

17、7279(0 xcc,0 x0c); write7279(0 x87,s1); write7279(0 x86,b); write7279(0 x85,a);第39页/共74页第四十页,共75页。41void 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); wri

18、te7279(0 x83,s1); write7279(0 x82,b); write7279(0 x81,a);第40页/共74页第四十一页,共75页。42void service_int0(void) interrupt 0 /键盘(jinpn)中断 readkey_board();第41页/共74页第四十二页,共75页。43void readkey_board(void) /按键(n jin)程序 unsigned char key_r_number; if(!key) key_r_number=read7279(cmd_read); while(!key);cur_minute=cur

19、time1; 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

20、);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; 第42页/共74页第四十三

21、页,共75页。44四、18b20及C51编程第43页/共74页第四十四页,共75页。45第44页/共74页第四十五页,共75页。46第45页/共74页第四十六页,共75页。47第46页/共74页第四十七页,共75页。48第47页/共74页第四十八页,共75页。49第48页/共74页第四十九页,共75页。50第49页/共74页第五十页,共75页。51第50页/共74页第五十一页,共75页。52第51页/共74页第五十二页,共75页。53ds18b20.c#include #include #include void delay(unsigned char time)unsigned chars;

22、for(s=0;stime;s+);第52页/共74页第五十三页,共75页。54/first 18b20void write_bit(unsigned char bitval) EA=0; DQ=0; _nop_();_nop_();if(bitval=1) DQ=1; EA=1; delay(5);DQ=1;第53页/共74页第五十四页,共75页。55unsigned char ow_reset(void)unsigned char presence;DQ=0; delay(120); DQ=1;delay(10);presence=DQ;delay(20);return(presence)

23、;第54页/共74页第五十五页,共75页。56unsigned 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);第55页/共74页第五十六页,共75页。57bit read_bit(void)bit dat; EA=0; DQ=0; _nop_();_nop_();_nop_();DQ=1; _nop_();_nop_();_nop_();_

24、nop_();_nop_(); _nop_();_nop_(); dat=DQ; EA=1; delay(5);return(dat);第56页/共74页第五十七页,共75页。58void write_byte(unsigned char val)unsigned char i;unsigned char temp;for(i=0;ii;temp&=0 x01;write_bit(temp);第57页/共74页第五十八页,共75页。59void read_tmp(void)/ unsigned int a,b; temp=ow_reset(); write_byte(0 xcc); w

25、rite_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();第58页/共74页第五十九页,共75页。60#include /function definevoid delay(unsigned char);/first 18b20void write_bit(unsigned char);unsigned char ow_reset(void);unsigned char read_byt

26、e(void);bit read_bit(void);void write_byte(unsigned char);void read_tmp(void);sbit DQ=P10;ds18b20.h第59页/共74页第六十页,共75页。61unsigned 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;第60页/共74页第六十一页,共75页。62第三节 12864M

27、介绍(jisho)和GAL逻辑了解12864M液晶;理解单片机总线时序(sh x)及12864M液晶接口时序(sh x)学会使用GAL 进行接口逻辑的编程及应用第61页/共74页第六十二页,共75页。63module 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

28、 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

29、; INT0=!EOC;end ws第62页/共74页第六十三页,共75页。64第63页/共74页第六十四页,共75页。65第64页/共74页第六十五页,共75页。66第65页/共74页第六十六页,共75页。67液晶显示模块概述液晶显示模块概述12864M汉字图形点阵液晶显示模块,可显示汉字及图形,内置汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(个中文汉字(16X16点阵)、点阵)、128个字符(个字符(8X16点阵)及点阵)及64X256点阵显示点阵显示RAM(GDRAM)。)。主要技术参数和显示特性主要技术参数和显示特性:电源:电源:VDD 3.3V+5V(内置升压

30、电路,无需负压内置升压电路,无需负压);显示内容:显示内容:128列列 64行行显示颜色:黄绿显示颜色:黄绿显示角度:显示角度:6:00钟直视钟直视LCD类型:类型:STN与与MCU接口:接口:8位或位或4位并行位并行/3位串行位串行配置配置LED背光背光(bigung)多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等 第66页/共74页第六十七页,共75页。68引脚号引脚名称方向功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD驱动电压输入端4RS(CS)H/L并行的指令并行的指令/数据选择信号;串行的片选信号

31、数据选择信号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/L复位 低电平有效18NC空脚19LED_A(LED+5V) 背光源正极20LED_K(LED-OV) 背光源负极第67页/共74页第六十八页,共75页。6912864M写第68页/共74页第六十九页,共75页。7012864M读第69页/共74页第七十页,共75页。71第70页/共74页第七十一页,共75页。72第71页/共74页第七十二页,共75页。73module 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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论