单片机课程设计报告.docx

上传人:b****8 文档编号:9873809 上传时间:2023-05-21 格式:DOCX 页数:13 大小:110.84KB
下载 相关 举报
单片机课程设计报告.docx_第1页
第1页 / 共13页
单片机课程设计报告.docx_第2页
第2页 / 共13页
单片机课程设计报告.docx_第3页
第3页 / 共13页
单片机课程设计报告.docx_第4页
第4页 / 共13页
单片机课程设计报告.docx_第5页
第5页 / 共13页
单片机课程设计报告.docx_第6页
第6页 / 共13页
单片机课程设计报告.docx_第7页
第7页 / 共13页
单片机课程设计报告.docx_第8页
第8页 / 共13页
单片机课程设计报告.docx_第9页
第9页 / 共13页
单片机课程设计报告.docx_第10页
第10页 / 共13页
单片机课程设计报告.docx_第11页
第11页 / 共13页
单片机课程设计报告.docx_第12页
第12页 / 共13页
单片机课程设计报告.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计报告.docx

《单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告.docx(13页珍藏版)》请在冰点文库上搜索。

单片机课程设计报告.docx

单片机课程设计报告

 

课程设计报告

 

 

课程名称:

微控制器原理课程设计

院(系):

电子与信息工程学院

专业:

电子信息科学与技术

班级:

电技14-2班

姓名:

徐临晖

成绩:

 

一、设计要求

基于51单片机实现一控制系统,该系统具有以下功能

1、能将A/D采集的数据通过数码管显示出来

2、根据采样值与设定的阈值比较产生报警提示

3、通过开关,使系统具有解警功能

4、系统具有加热功能,达到设定阈值停止加热

实现方式可以是1)实物制作;2)基于开发板制作;3)protues软件仿真。

二、设计方案

加热模块

1.总体方案

AT89C51

显示电路

DS18B20

<-------->-------->

 

报警电路

<--------

1.1测温模块

DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。

因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计。

DS18B20的特点:

(1)、只要求一个I/O口即可实现通信。

(2)、在DS18B20中的每个器件上都有独一无二的序列号。

(3)、实际应用中不需要外部任何元器件即可实现测温。

(4)、测量温度范围在-55。

C到+125。

C之间。

(5)、数字温度计的分辨率用户可以从9位到12位选择。

(6)、内部有温度上、下限告警设置。

1.2显示模块

LED显示模块是由一个四联共阳七段数码管组成。

七段数码管是由若干发光二极管组合而成的,一般的“8”字形显示块由“a、b、c、d、e、f、g、h”8个发光二极管组成。

四个七段数码管分别与P2口相连,通过对单片机输入程序达到控制显示输出的目的(如图)。

四个七段数码管由单片机的P3.0~P3.3控制亮灭,P3.0~P3.3分别对应1~4,当P3.0~P3.3其中之一置高电平,对应的三级管导通,段码管亮,置低电平,对应的三级管截止,段码管灭。

1.3报警模块

本设计采用蜂鸣器报警电路,它由晶体管和蜂鸣器组成。

由单片机I/O口输出信号控制晶体管的导通或截止,晶体管导通,则蜂鸣器报警。

通过单片机来控制蜂鸣器产生报警声音。

温度超过设定的阈值,LED灯亮,蜂鸣器报警,可通过开关手动关闭报警。

1.4加热模块

利用DS18B20控制与加热装置连接的I/O口的高地电平,以此来控制加热器何时加热

此后显示器将一直显示实测温度。

若实测温度高于设定温度时,则通过控制器电关上加热器并报警;若实测温度低于设定温度,则通过控制器打开加热器。

2.硬件电路设计

3.软件设计

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitds=P1^0;//DS18B20

sbitbeep=P1^1;//蜂鸣器

sbitled1=P1^2;//警报灯

sbithot1=P0^0;//加热器

sbithot2=P0^1;

sbitwx1=P3^0;//位选1

sbitwx2=P3^1;//位选2

sbitwx3=P3^2;//位选3

sbitwx4=P3^3;//位选4

uinttp;//温度值

floattpcy;//浮点型

unsignedcharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6};//共阳数码管

//****延时函数

voiddelay(unsignedinti)

{

unsignedcharj;

for(i;i>0;i--)

for(j=255;j>0;j--);

}

//****复位初始化

voiddsreset()

{

uintx;

ds=0;

x=103;

while(x>0)x--;

ds=1;

x=4;

while(x>0)x--;

}

//****读取一位

bitreadbit()

{

bitdat;

uinti;

ds=0;i++;

ds=1;i++;i++;

dat=ds;

i=8;while(i>0)i--;

return(dat);

}

//***读取一字节

uchartpread()

{

uchari,j,dat;

dat=0;

for(i=1;i<=8;i++)

{

j=readbit();

dat=(j<<7)|(dat>>1);

}

return(dat);

}

//***写入

voidtpwrite(uchardat)

{

uinti;

ucharj;

bittestb;

for(j=1;j<=8;j++)

{

testb=dat&0x01;

dat=dat>>1;

if(testb)

{

ds=0;i++;i++;

ds=1;

i=8;while(i>0)i--;

}

else

{

ds=0;

i=8;while(i>0)i--;

ds=1;i++;i++;

}

}

}

//温度转换

voidtpchange()

{

dsreset();

delay

(1);

tpwrite(0xcc);

tpwrite(0x44);

}

//温度获取

uinttpget()

{

uchara,b;

dsreset();

delay

(1);

tpwrite(0xcc);

tpwrite(0xbe);

a=tpread();

b=tpread();

tp=b;

tp<<=8;

tp=tp|a;

tpcy=tp*0.0625;

tp=tpcy*10+0.5;

tpcy=tpcy+0.005;

returntp;

}

//条件

voidtiaojian()

{if(tp<=980)

{led1=1;

beep=0;

hot1=1;

hot2=0;

}

else

{led1=0;

beep=1;

hot1=1;

hot2=1;

}

}

//******显示函数********

voidxianshi()

{

wx1=1;

P2=table[tp/1000];//显示百位

delay(5);

wx1=0;

wx2=1;

P2=table[tp/100%10];//显示十位

delay(5);

wx2=0;

wx3=1;

P2=table[tp%100/10];//显示个位

delay(5);

wx3=0;

wx4=1;

P2=table[12];//显示C字符代表℃

delay(5);

wx4=0;

}

//****主函数

voidmain()

{

while

(1)

{

tpchange();

tpget();

tiaojian();

xianshi();

}

}

4.测试

设定该系统低于98℃,系统开始加热,

系统超过98℃,开始报警,红灯亮起,停止加热,按下开关,关闭警报。

二、设计总结

此次课程设计中,难点在于DS18B20的使用,即对它的时序控制、初始化以及字节的读写方法,任何一个环节出错或是时序控制不到位的话就不能得到正确的数据。

还有掌握AT89C51单片机原理和应用以及对C语言的开发技巧,特别是对数据的处理。

因为DS18B20芯片是16位寄存,而单片机是8位寄存,所以数据要分开高八位和低八位寄存处理。

一开始,自己把程序写完了,仿真时却出错,后来重新修改才解决问题。

从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所有的理论知识用到实际当中,学习单片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。

并且做每一件事都要认真严谨去完成,否则,一个小小的问题都会让你付出更多的时间和代价。

总的来说,自己从这次独立的课程设计中收获了一些知识与经验,一些从书本中学之不来的东西。

 

四、参考文献

[1]郭天祥.51单片机C语言教程北京:

电子工业出版社,2008

[2]谭浩强.C程序设计北京:

清华大学出版社,1991

[3]张毅刚.新编MCS-51单片机应用设计.哈尔滨:

哈尔滨工业大学出版社,2003

[4]DS18B20开发手册

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 科学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2