中南大学单片机课程设计报告.docx

上传人:b****6 文档编号:15971959 上传时间:2023-07-09 格式:DOCX 页数:30 大小:200.05KB
下载 相关 举报
中南大学单片机课程设计报告.docx_第1页
第1页 / 共30页
中南大学单片机课程设计报告.docx_第2页
第2页 / 共30页
中南大学单片机课程设计报告.docx_第3页
第3页 / 共30页
中南大学单片机课程设计报告.docx_第4页
第4页 / 共30页
中南大学单片机课程设计报告.docx_第5页
第5页 / 共30页
中南大学单片机课程设计报告.docx_第6页
第6页 / 共30页
中南大学单片机课程设计报告.docx_第7页
第7页 / 共30页
中南大学单片机课程设计报告.docx_第8页
第8页 / 共30页
中南大学单片机课程设计报告.docx_第9页
第9页 / 共30页
中南大学单片机课程设计报告.docx_第10页
第10页 / 共30页
中南大学单片机课程设计报告.docx_第11页
第11页 / 共30页
中南大学单片机课程设计报告.docx_第12页
第12页 / 共30页
中南大学单片机课程设计报告.docx_第13页
第13页 / 共30页
中南大学单片机课程设计报告.docx_第14页
第14页 / 共30页
中南大学单片机课程设计报告.docx_第15页
第15页 / 共30页
中南大学单片机课程设计报告.docx_第16页
第16页 / 共30页
中南大学单片机课程设计报告.docx_第17页
第17页 / 共30页
中南大学单片机课程设计报告.docx_第18页
第18页 / 共30页
中南大学单片机课程设计报告.docx_第19页
第19页 / 共30页
中南大学单片机课程设计报告.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

中南大学单片机课程设计报告.docx

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

中南大学单片机课程设计报告.docx

中南大学单片机课程设计报告

单片机课程设计报告

题目智能电风扇控制器

专业班级电子信息1101班

学号0909110814

姓名周群创

指导老师刘波张金焕

课设时间2015.1.10-2015.1.17

中南大学·信息科学与工程学院

摘要

单片机已经在家电领域中得到了广泛的应用。

本风扇的主控芯片采用价格实惠而且容易购买的STC89C52芯片。

系统能完成采集当前温度,并用LED显示,能设置报警温度,当检测温度超过报警温度时,产生报警信号(蜂鸣器输出),根据不同的温度,通过DA输出来(0832)控制直流电机的转速,通过操作实时时钟芯片,来控制电风扇的定时启动、停止等基本的功能。

系统的软件实现采用功能强大且易于开发的KeilC51环境,且支持ISP下载,因此没使用编程器,用C语言实现系统的软件部分。

此设计具有安全性高、价格低廉便于实现、易于改进等优点。

关键词:

智能电风扇控制器,STC89C52,矩阵键盘,AT24C02

 

ABSTRACT

SCMhasbeenwidelyappliedinthefieldofhomeappliances.ThefancontrollerchipsusingaffordableandeasytobuySTC89C52chips.ThesystemcancompletetheacquisitionofthecurrenttemperatureandLEDdisplay,cansetthealarmtemperature,whenthedetectedtemperatureexceedsthealarmtemperature,analarmsignal(buzzer),dependingonthetemperature,outputbyDA(0832)DCmotorcontrolspeed,real-timeclockchipthroughtheoperationtocontrolthefan'stimetostart,stop,andotherbasicfunctions.Systemsoftwareusesapowerfulandeasy-to-developKeilC51environment,andsupportISPdownload,sodidtheuseofprogramming,usingClanguagesoftwarepartofthesystem.Thisdesignhasasafe,inexpensiveeasytoimplement,easytoimproveon.

KEYWORDS:

Intelligentfancontroller,STC89C52,matrixkeyboard,AT24C02

 

目录

摘要I

第1章前言1

1.1智能电风扇控制器的定义1

1.2智能电风扇控制器的发展1

第2章系统的设计方案和原理2

2.1系统的设计方案2

2.2智能电风扇控制器的工作原理2

第3章硬件电路设计及描述3

第4章系统的软件设计9

第5章调试与实现14

5.1硬件调试14

5.2软件调试15

第6章课程设计体会16

第7章参考文献16

附录17

第1章前言

1.1智能电风扇的定义

风扇指热天借以生风取凉的用具电扇,是用电驱动产生气流的装置,内配置的扇子通电后来进行转动化成自然风来达到乘凉的效果。

智能风扇可以采集当前温度(DS18B02),并用LED显示,能设置报警温度,当检测温度超过报警温度时,产生报警信号(蜂鸣器输出),根据不同的温度,通过DA输出来(0832)控制直流电机的转速,通过操作实时时钟芯片,来控制电风扇的定时启动、停止等。

 

1.2智能电风扇的发展

进入5月份,天气越来越热,尤其到了盛夏更是酷热难当。

目前可供选择的纳凉工具主要有:

空调、普通电风扇、冷风机以及蒲扇、纸扇等等。

而电风扇以其低廉的价格是她的使用极为广泛。

人们常常通宵达旦的使用,一旦气温稍有变化,感冒人数就会急剧增加;冷风机能增强空气的湿度但使用久了,家里电器会受潮,同时也会让使用者长期裸露在外的关节受到危害;蒲扇和纸扇价格低廉,但不自动,目前使用者微乎其微。

在这种情况下,自动调温电风扇应运而生。

我们的生活加快,人数需要处理的事情越来越多,在炎热的夏天,回到家更想好好休息,消除自己一天的工作疲劳,而自动调温电风扇等设计就解决了这些问题。

自动调温电风扇是通过单片机控制来实现直流电动机运转频率的自动调节,从而达到改变风速的目的。

此设计用到STC89C52RC单片机,它是把微处理器,存储器(RAM和ROM),输入/输出接口以及定时器/计数器集成在一起的集成电路芯片。

他与集成电路相结合,组成一个设定温度,感温,控制和输出与一身的模块。

利用单片机STC89C52RC和一些电路对室温进行探测,从而对电风扇进行开和关断一系列控制。

 

第2章系统的设计方案和原理

2.1系统的设计方案

它使用直流电动机的控制以模拟电路为基础,运算放大器、非线性集成电路以及数字电路组成,使得对电风扇各档风量大调节更加细化,使得电风扇等控制更加人性化,同时它也具有全自动、控制简单、智能化,制作容易,使用温度传感器、专用控制集成电路和单片机,实现当室温达到最佳所设定开启的温度是,电风扇自动开启,并且可以根据室温变化换风速;档室温低于这一设定温度时,电风扇自动关闭。

同时显示当前室内温度,和自己所设定的温度,提醒人们合理使用电风扇。

2.2智能电风扇的工作原理

智能电风扇主要由矩阵键盘、单片机、数码管和外部硬件等部分组成。

流程框图如图2-1所示:

 

图2-1智能电风扇流程框图

 

第3章硬件电路设计及描述

3.1系统框图

本系统共由两部分构成,即硬件部分与软件部分。

其中硬件部分由电源输入部分、键盘输入部分、电路复位部分、晶振部分、数码管显示部分、报警部分、温度检测部分组成,软件部分对应的由主程序、密码储存程序、初始化程序、数码管显示程序、键盘扫描程序、启动程序、关闭程序。

智能电风扇框图如3-1所示:

图3-1电子密码锁系统框图

硬件部分的智能电风扇可以很清晰的看出密码锁的工作流程,输入电路是智能电风扇的电源输入端,保证智能电风扇可以正常工作;按键部分选择的是矩阵式键盘,矩阵式键盘的优点是减少I/O口的占用、按键选择多;数码管显示部分是显示用户输入密码位数,同时也显示显示输入的数据。

软件部分的密码储存是放在AT24C02储存芯片里,保证储存、验证用户输入的密码是否正确。

 

3.2模块电路图

3.2.1MCU最小模块

图3-2MCU最小模块图

3.2.2晶振模块

图3-3晶振模块

3.2.4数码管模块

图3-5数码管模块

3.2.5键盘模块

图3-6键盘模块

3.3智能电风扇电路总体结构

本系统总体结构由硬件部分与软件部分构成。

其中硬件部分由电源输入部分、键盘输入部分、数码管显示部分,软件部分由主程序、密码储存程序、键盘扫描程序、启动程序、延时程序等组成。

其工作过程是:

采集当前温度(DS18B02),并用LED显示,能设置报警温度,当检测温度超过报警温度时,产生报警信号(蜂鸣器输出),根据不同的温度,通过DA输出来(0832)控制直流电机的转速,通过操作实时时钟芯片,来控制电风扇的定时启动、停止等。

 

第4章系统的软件设计

4.1储存芯片AT24C02

AT24C02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。

AT24C02有一个16字节页写缓冲器。

该器件通过IIC总线接口进行操作,有一个专门的写保护功能。

AT24C02支持IC,总线数据传送协议IC,总线协议规定任何将数据传送到总线的器件作为发送器。

任何从总线接收数据的器件为接收器。

数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。

主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。

1-A0,2-A1,3-A2地址管脚;4-Vss电源地;5-SDA串行数据;6-SCL串行时钟;7-WP写保护;8-Vcc电源。

VccVss电源供电电压在2-6V之间。

SCL串行时钟,AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。

SDA串行数据/地址,AT24C02双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线(wire-OR)A0、A1、A2器件地址输入端这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。

当使用AT24C02时最大可级联8个器件。

如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2)可悬空或连接到Vss,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0、A1、A2)必须连接到Vss。

 

4.2报警电路的选择

“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P2.1引脚为低电平,三极管T3导通轰鸣器发出噪鸣声报警。

如图4-3所示:

 

图4-3报警电路原理图

 

4.3晶振电路

晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。

AT89C51引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图4-11所示方式连接。

晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C1、C2取值范围在5~30pF之间。

根据实际情况,本设计中采用12MHZ做为系统的外部晶振。

电容取值为20pF。

它的作用的作用是为系统提供基本的时钟信号。

通常一个系统共用一个晶振,便于各部分保持同步。

晶振频率为11.0592MHZ。

4.6主程序流程图

主程序的流程图:

 

图4-5主程序流程图

在主程序初始化之后,开始反复检测各模块相关部分的缓冲区标志,如果缓冲区标志置位,说明有相应的数据需要处理,然后主程序调用响应的处理子模块,对于温度传感器,我们采用定时采集数据的方法,在定时中断子程序中,采集相应的数据,并进行判断,如果是异常数据,则将数据保存在系统缓冲区,同时置对应的缓冲区标志。

然后主程序将会调用相应的子程序进行处理。

软件主流程图见下页图5-2所示。

当有按键按下的时候,采用键盘中断子程序扫描相应的键盘码,然后发给主程序,置对应的键盘按键标志位。

在主程序中,当有键盘按下的时候,调用对应的键盘处理子程序。

第5章调试与实现

5.1硬件调试

单片机应用系统的硬件调试和软件调试是分不开的.许多硬件故障只有通过软、硬件联调才能发现,但一般是先排除系统中比较明显的硬件故障后才和软件一起联调。

常见的硬件故障:

(1)逻辑错误

硬件的逻辑错误是由于设计错误和焊接过程中的工艺错误而造成的,包括错线、开路、短路等,其中最常见的是短路故障。

(2)元器件错误

元器件错误的原因有器件损坏或性能不符合要求,电解电容、二极管的极性接反或集成块装反等。

(3)可靠性差

应用系统可靠性差的原因很多,如内部和外部的干扰、电压纹波系数过大、器件负载过重等均会造成系统的可靠性差。

另外,走线和布置的不合理也会造成系统可靠性差。

(4)电源故障

电源故障包括:

电压值不符合设计要求、电源功率不足、负载能力差、纹波太重等。

硬件调试办法

脱机调试是在加电前,先用万用表等工具,按图纸仔细核对线路是否正确,并对元器件的安装、型号、规格等进行仔细检查,特别焊接时有无走线之间相互短路等。

5.2软件调试

程序在KEILC51上调试,采用模块程序设计技术,则逐个模块调好后再进行系统程序总调。

对于模块结构程序.要一个个子程序分别调试。

调试时,一定要符合入口条件和出口条件,调试可用单步运行和断点运行方式,通过检查用者系统的CPU现场情况、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求,有无循环错误、有无机器码错误以及转移地址的错误,同时,还可以发现系统中存在的硬件设计错误和软件算法错误。

各程序模块通过后,则可以把相关功能块连在一起进行总调。

这个阶段若有故障,可以考虑各子程序运行时是否破坏了现场,缓冲单元、工作寄存器是否发生冲突,标志位的建立和清除是否有误,堆栈区是否有溢出,输入设备的状态是否正常等等,若用者系统是在开发机的监控程序下运行时,还要考虑用者缓冲单元是否和监控程序的工作单元发生冲突。

单步和断点调试后,还应进行连续调试,用以确定定时精度、CPU的实时响应等问题。

当全部调试和修改完成后,将程序固化到AT89S51中。

进行整机调试。

各功能实现则调试完成。

 

 

第6章课程设计体会

本次单片机课程设计,我通过编写初始化程序,运用定时器0﹑1﹑2,处理中断程序,调用库函数和.H文件,加深了对课堂上学习知识的理解。

在调试程序的过程中,自己的分析问题﹑解决问题的能力有所提高。

基于单片机实现温度控制直流电机转速的设计完成很大程度上满足了我们生活的需要,例如小型的智能风扇、电脑上的散热风扇等等。

传统的模拟电路设计太为繁琐,制作复杂,调试起来也不方便,使用起来更麻烦。

本次设计的成果恰恰可以解决人们的一些烦恼,既可以从液晶屏上直接的读取温度数据,而且可以个根据周围的温度环境改变直流电机的转速,控制精确、稳定。

常规的晶闸管只留调速系统中大量硬件都用软件替代,从而简化系统的结构,减少了电子元件的虚焊,接触不良的漂移等引起的一些故障,而且维修方便,借助于丰富的软件,易于实现各类自适应和复合控制。

第7章参考文献

[1]郭天祥.51单片机C语言教程.电子工业出版社.2013

[2]楼苗然,李光飞.单片机课程设计指导.北京航空航天大学出版社2007

 

附录

代码清单:

#include

#include

#include

#defineC8279XBYTE[0xE001]

#defineD8279XBYTE[0xE000]

voiddelay(unsignedchari1);

voiddelay1(unsignedchari2);

voiddelayus(unsignedcharnum);

voiddisp8279(void);

voidinit8279(void);

voidinit_int(void);//中断1启动程序

voidGET_T(unsignedchar*temp);

voidWR_1820(unsignedchari);

unsignedcharRD_1820(void);

unsignedchargetkey(void);

voidT_COV(void);//温度处理

voidTO_BCD(void);//温度数值处理

voidtemp_b(void);//风速处理程序

unsignedcharINIT_1820(void);

voidCHA8279(void);//实时温度显示处理

sbitDQ=P3^2;//温感

sbitbj=P2^3;//蜂鸣

sbitpwm=P2^4;//电机

sbitkey1=P2^2;//风扇定时方式,启动定时,停止定时

bitkey_flag;

unsignedcharbuffer[8],temp_v[2],TEMPER_N,temp_a;

unsignedcharport[]={1,0};

//temp_a当前温度,,count秒计时count_a分计时

unsignedchartemp_l=15;//最低温度,低于时,风扇不动

unsignedchartemp_h=35;//报警温度

unsignedcharcount=0;

unsignedcharcount1=0;

unsignedcharcount_a=0;

unsignedchartime[]={1,5,10};//定时时长单位分钟

unsignedcharchange[3]={20,25,30};//温度风速等级

voidmain(void)

{

init8279();

buffer[0]=0x00;

buffer[1]=0x00;

buffer[2]=0x18;

buffer[3]=0x0c;

buffer[4]=0x12;

buffer[5]=0x12;

buffer[6]=0x00;

buffer[7]=0x00;

EA=1;

TMOD=0X01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TMOD|=0x10;

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

ET1=1;

TR1=1;

init8279();

disp8279();

delay(10);

while

(1)

{

INIT_1820();

GET_T(temp_v);

T_COV();

CHA8279();

disp8279();

key_flag=getkey();

//......定时启动、停止.........

if(!

key1)//key1低电平,电机转;1、2、3键表示风扇定时停止时长

{

delay(100);

if(!

key1)

{

temp_b();

if(key_flag==1)

{

init_int();

if(count_a==time[0])

{

port[0]=0;

port[1]=0;

}

}

elseif(key_flag==2)

{

init_int();

if(count_a==time[1])

{

port[0]=0;

port[1]=0;

}

}

elseif(key_flag==3)

{

init_int();

if(count_a==time[2])

{

port[0]=0;

port[1]=0;

}

}

else;

}

}

else//key1高电平,风扇不转动;1,2,3键表示风扇定时启动时长

{

TR0=0;

ET0=0;

if(key_flag==1)

{

init_int();

if(count_a==time[0])

{

temp_b();

}

}

elseif(key_flag==2)

{

init_int();

if(count_a==time[1])

{

temp_b();

}

}

elseif(key_flag==3)

{

init_int();

if(count_a==time[2])

{

temp_b();

}

}

else;

}

//报警温度设置

if(key_flag==4)

{

temp_h++;

}

if(key_flag==5)

{

temp_h--;

}

if(temp_a>temp_h)//报警

{

if(count1==20)

{

bj=~bj;

}

}

}

}

voidGET_T(unsignedchar*temp)

{

INIT_1820();

WR_1820(0x0CC);

WR_1820(0x44);

delay(100);

INIT_1820();

delay(100);

WR_1820(0x0CC);

WR_1820(0x0be);

temp[0]=RD_1820();

temp[1]=RD_1820();

INIT_1820();

}

voidWR_1820(unsignedcharcmp)

{

unsignedchari;

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

{

DQ=1;

if(cmp&0x01==0x01)

{

DQ=0;

DQ=1;

delayus(5);

}

else

{

DQ=0;

delayus(5);

DQ=1;

}

cmp=cmp>>1;

}

DQ=1;

}

unsignedcharcodekey[16]={0x23,0x2b,0x33,0x3b,0x22,0x2a,0x32,0x3a,

0x21,0x29,0x31,0x39,0x20,0x28,0x30,0x38};

unsignedchargetkey(void)

{unsignedchari,temp,kk;

i=0;

while(i==0)

{

temp=C8279;

i=temp&0x07;

}

temp=D8279;

for(i=0;i<16;i++)

{if(temp==key[i])

{

kk=i;

break;

}

}

returnkk;

}

unsignedcharRD_1820(void)

{unsignedchari,tmp;

tmp=0;

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

{

tmp>>=1;

DQ=1;

_nop_();

_nop_();

DQ=0;

_nop_();

_nop_();

DQ=1;

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

if(DQ==1)

tmp=tmp|0x80;

delayus(5);

}

return(tm

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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