压缩包里有一个后缀为.pdsprj的文件 使用proteus打开 我的是8.6 这个就是仿真文件。
仿真图片有个叫仿真成功的.png的后缀文件。 所有proteus可keil工程文件都在这个压缩包里头。文件不多,一眼就看得出来 .uvproj后缀是keil工程文件
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit Data=P1^6;
- uchar rec_dat[9];
- sbit lcdrs=P2^0;
- sbit lcdrw=P2^1;
- sbit lcden=P2^2;
- void delay(uint n)
- { uint x,y;
- for(x=n;x>0;x--)
- for(y=110;y>0;y--);
- }
- void write_com(uchar com)
- {
- lcdrs=0;
- P0=com;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- void write_dat(uchar dat)
- {
- lcdrs=1;
- P0=dat;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- void init_lcd()
- {
- lcden=0;
- lcdrw=0;
- write_com(0x38);
- write_com(0x0c);
- write_com(0x06);
- write_com(0x01);
- }
- void DHT11_delay_us(uchar n)
- {
- while(--n);
- }
- void DHT11_delay_ms(uint z)
- {
- uint i,j;
- for(i=z;i>0;i--)
- for(j=110;j>0;j--);
- }
- void DHT11_start()
- {
- Data=1;
- DHT11_delay_us(2);
- Data=0;
- DHT11_delay_ms(30);
- Data=1;
- DHT11_delay_us(30);
- }
- uchar DHT11_rec_byte()
- {
- uchar i,dat=0;
- for(i=0;i<8;i++)
- {
- while(!Data);
- DHT11_delay_us(8);
- dat<<=1;
- if(Data==1)
- dat+=1;
- while(Data);
- }
- return dat;
- }
- void DHT11_receive()
- {
- uchar R_H,R_L,T_H,T_L,RH,RL,TH,TL,revise;
- DHT11_start();
- if(Data==0)
- {
- while(Data==0);
- DHT11_delay_us(40);
- R_H=DHT11_rec_byte();
- R_L=DHT11_rec_byte();
- T_H=DHT11_rec_byte();
- T_L=DHT11_rec_byte();
- revise=DHT11_rec_byte();
- DHT11_delay_us(25);
- if((R_H+R_L+T_H+T_L)==revise)
- {
- RH=R_H;
- RL=R_L;
- TH=T_H;
- TL=T_L;
- }
- rec_dat[0]='0'+(RH/10);
- rec_dat[1]='0'+(RH%10);
- rec_dat[2]='%';
- rec_dat[3]=' ';
- rec_dat[4]=' ';
- rec_dat[5]='0'+(TH/10);
- rec_dat[6]='0'+(TH%10);
- }
- }
- void main()
- {
- uchar i;
- init_lcd();
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
数字温度湿度测量仪设计(余浩东 1710720049).zip
(156.19 KB, 下载次数: 533)
|