人人范文网 范文大全

《EDA课程设计》

发布时间:2020-03-03 04:18:26 来源:范文大全 收藏本文 下载本文 手机版

《EDA课程设计》

课程设计题目:

基于单片机的温湿度采集系统

名:

xxx

号:

xxxx

级:

xxxx

间:

2014.4.21~ 2013.5.5

点:

xxxxx

指 导

师:

xxxxx

一、电路原理图 ..................................................................................2

二、电路PCB图(或实物图) .........................................................2

三、电路效果图 ..................................................................................3

四、设计总结 ......................................................................................3 附录(单片机源代码) ......................................................................4

1

一、电路原理图

二、电路PCB图(或实物图)

2

三、电路效果图

四、设计总结

EDA的实验还是挺有趣的,比较讲究动手能力,当然也不能忽略团体合作。总的来说本次实验还是成功了,虽然每个环节都遇到了困难。在生成原理图的过程中,就曾把导线画成了Placeline而不是Placewire,还有芯片的引脚应该用NET符号而不是用文本符号,所以这些错误都导致我花在原理图上的时间多了点。而在生成PCB电路图的过程中遇到的困难则是自动布线之后,还有电源的几个脚需要手动布线,所以各个元件之间的位置要布置好,以免发生短路。腐蚀的时候,由于腐蚀的时间太长了,有些碳都化开了,导致里面的铜被腐蚀掉了,所以又为我的工作增加了困难。在焊接的时候,要注意元件的正负极,还要检测锡是否都与那些铜连接上了。最终把LED和

3 DHT11的程序烧进去就行了。

本次实验我还是能多多少少学到点什么的,总的来说还是希望能有多一点这样的实习。

附录(单片机源代码)

//51单片机控制温湿度传感器DHT11

LCD1602上显示当前机最小系统。 //LCD 读进去 写出来 #include #include typedef unsigned char BYTE; typedef unsigned int WORD; #define uint unsigned int

//定义无符号整型 #define uchar unsigned char typedef bit BOOL;

//此声明一个布尔型变量即真或假// uchar data_byte,num,i; uchar RH,RL,TH,TL,flag; uchar shuzi[4]; unsigned char code num1[11]={0xc0,0xf9,0xa4,0xb0,0x99,

4

0x92,0x82,0xf8,0x80,0x90,0x7f} ;

sbit dht=P2^4;

//dht11data端接单片机的P2^4口//

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

数************************************* void delay(uchar ms) //延时模块//延时1毫秒

{

}

void delay1()

//一个for循环大概需要8个多机器周期

//一个机器周期为1us晶振为12MHz也就是说本函数延时8us{

}

5 uchar i;

while(ms--)

for(i=0;i

uchar i;

for(i=0;i

P2=0x07;

P0=num1[shuzi[2]]; delay(1); // }

// if(flag==1) // {

P2=0x0b;

P0=num1[shuzi[3]]; delay(1); // } // if(flag==2) // {

P2=0x0d;

P0=num1[shuzi[0]]; delay(1); // } // if(flag==3)

6 // {

P2=0x0e; P0=num1[shuzi[1]]; delay(1); // } }

//**************************dht11

块*************************************// void start()//开始信号

{

dht=1;

delay1();

//主机发出8us高电平,开始信号开始发出 dht=0;

delay(25);

// 主机把总线拉低必须大于18ms

DHT11能检测到起始信号

dht=1;

//delay1();

//以下三个延时函数差不多为24usdelay1(); delay1();

20-40us

}

uchar receive_byte()

//接收一个字节 8位// {

uchar i,temp;

for(i=0;i

{

while(!dht);

//等待40-50us的低电平开始信号结束

delay1();

//开始信号结束之后延时26us-28us

delay1(); delay1();

temp=0;

//时间为26us-28usif(dht==1)

temp=1;

//如果26us-28us

\'0\'

数据为\'1\'

while(dht);

//

\'0\'为26us-28us

\'1\'为70us

} data_byte

//data_byte|=temp;

//接收每一位的数据,相或保存数据

return data_byte;

8 }

void receive() //接收数据// {

uchar T_H,T_L,R_H,R_L,check,num_check,i; start();

//开始信号//调用开始信号子函数

dht=1;

//主机设为输入判断从机DHT11响应信号

if(!dht)

//判断从机是否有低电平响应信号// {

while(!dht); //判断从机发出 40us 的低电平响应信号是否结束//

while(dht);

//判断从机发出 40us 的高电平是否结束 如结束则从机进入发送数据状态,主机进入数据接收状态

//两个while语句加起来就是DHT11的响应信号

R_H=receive_byte(); //湿度高位

调用接受一个字节的子函

R_L=receive_byte(); //湿度低位

T_H=receive_byte(); //温度高位

T_L=receive_byte(); //温度低位

check=receive_byte(); //校验位

//结束信号

dht=0;

//当最后一bit数据接完毕后主机拉低电平50us// for(i=0;i

delay1();

dht=1;

//总线由上拉电阻拉高进入空闲状态

num_check=R_H+R_L+T_H+T_L;

if(num_check==check) //判断读到的四个数据之和是否与校验位相同

{

RH=R_H;

RL=R_L;

TH=T_H;

TL=T_L;

check=num_check; }

shuzi[0]=RH/10; shuzi[1]=RH%10; shuzi[2]=TH/10; shuzi[3]=TH%10;

} }

void main()//主函数模块// {

10 while(1)

//进入死循环

{

receive();

//接收数据

display();

} }

EDA课程设计

EDA 课程设计

eda课程设计

eda课程设计心得体会

EDA数字钟课程设计

EDA课程设计感想

EDA课程设计题库

EDA课程设计论文

EDA课程设计——数字频率计

EDA单片机课程设计

《EDA课程设计》
《《EDA课程设计》.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档