欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:15971959       资源大小:200.05KB        全文页数:30页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、中南大学单片机课程设计报告 单片机课程设计报告 题 目 智能电风扇控制器 专业班级 电子信息1101班 学 号 0909110814 姓名 周群创 指导老师 刘波 张金焕 课设时间 2015.1.10-2015.1.17 中南大学信息科学与工程学院 摘 要单片机已经在家电领域中得到了广泛的应用。本风扇的主控芯片采用价格实惠而且容易购买的 STC89C52芯片。系统能完成采集当前温度,并用LED显示,能设置报警温度,当检测温度超过报警温度时,产生报警信号(蜂鸣器输出),根据不同的温度,通过DA输出来(0832)控制直流电机的转速,通过操作实时时钟芯片,来控制电风扇的定时启动、停止等基本的功能。系

    2、统的软件实现采用功能强大且易于开发的KeilC51环境,且支持ISP下载,因此没使用编程器,用C语言实现系统的软件部分。此设计具有安全性高、价格低廉便于实现、易于改进等优点。 关键词:智能电风扇控制器,STC89C52,矩阵键盘,AT24C02 ABSTRACTSCM has been widely applied in the field of home appliances. The fan controller chips using affordable and easy to buy STC89C52 chips. The system can complete the acquis

    3、ition of the current temperature and LED display, can set the alarm temperature, when the detected temperature exceeds the alarm temperature, an alarm signal (buzzer), depending on the temperature, output by DA (0832) DC motor control speed, real-time clock chip through the operation to control the

    4、fans time to start, stop, and other basic functions. System software uses a powerful and easy-to-develop KeilC51 environment, and support ISP download, so did the use of programming, using C language software part of the system. This design has a safe, inexpensive easy to implement, easy to improve

    5、on.KEY WORDS:Intelligent fan controller, STC89C52, matrix keyboard, AT24C02 目 录摘 要 I第1章 前 言 11.1智能电风扇控制器的定义 11.2智能电风扇控制器的发展 1第2章 系统的设计方案和原理 22.1 系统的设计方案 22.2智能电风扇控制器的工作原理 2第3章 硬件电路设计及描述 3第4章 系统的软件设计 9第5章 调试与实现 145.1 硬件调试 145.2 软件调试 15第6章 课程设计体会 16第7章 参考文献 16附 录 17 第1章 前 言1.1 智能电风扇的定义 风扇指热天借以生风取凉的用具电

    6、扇,是用电驱动产生气流的装置,内配置的扇子通电后来进行转动化成自然风来达到乘凉的效果。智能风扇可以采集当前温度(DS18B02),并用LED显示,能设置报警温度,当检测温度超过报警温度时,产生报警信号(蜂鸣器输出),根据不同的温度,通过DA输出来(0832)控制直流电机的转速,通过操作实时时钟芯片,来控制电风扇的定时启动、停止等。1.2智能电风扇的发展 进入5月份,天气越来越热,尤其到了盛夏更是酷热难当。目前可供选择的纳凉工具主要有:空调、普通电风扇、冷风机以及蒲扇、纸扇等等。而电风扇以其低廉的价格是她的使用极为广泛。人们常常通宵达旦的使用,一旦气温稍有变化,感冒人数就会急剧增加;冷风机能增强

    7、空气的湿度但使用久了,家里电器会受潮,同时也会让使用者长期裸露在外的关节受到危害;蒲扇和纸扇价格低廉,但不自动,目前使用者微乎其微。 在这种情况下,自动调温电风扇应运而生。我们的生活加快,人数需要处理的事情越来越多,在炎热的夏天,回到家更想好好休息,消除自己一天的工作疲劳,而自动调温电风扇等设计就解决了这些问题。 自动调温电风扇是通过单片机控制来实现直流电动机运转频率的自动调节,从而达到改变风速的目的。此设计用到STC89C52RC单片机,它是把微处理器,存储器(RAM和ROM),输入/输出接口以及定时器/计数器集成在一起的集成电路芯片。他与集成电路相结合,组成一个设定温度,感温,控制和输出与

    8、一身的模块。利用单片机STC89C52RC和一些电路对室温进行探测,从而对电风扇进行开和关断一系列控制。第2章 系统的设计方案和原理 2.1 系统的设计方案 它使用直流电动机的控制以模拟电路为基础,运算放大器、非线性集成电路以及数字电路组成,使得对电风扇各档风量大调节更加细化,使得电风扇等控制更加人性化,同时它也具有全自动、控制简单、智能化,制作容易,使用温度传感器、专用控制集成电路和单片机,实现当室温达到最佳所设定开启的温度是,电风扇自动开启,并且可以根据室温变化换风速;档室温低于这一设定温度时,电风扇自动关闭。同时显示当前室内温度,和自己所设定的温度,提醒人们合理使用电风扇。2.2智能电风

    9、扇的工作原理 智能电风扇主要由矩阵键盘、单片机、数码管和外部硬件等部分组成。流程框图如图2-1所示: 图2-1 智能电风扇流程框图 第3章 硬件电路设计及描述 3.1 系统框图 本系统共由两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、电路复位部分、晶振部分、数码管显示部分、报警部分、温度检测部分组成,软件部分对应的由主程序、密码储存程序、初始化程序、数码管显示程序、键盘扫描程序、启动程序、关闭程序。智能电风扇框图如3-1所示: 图3-1 电子密码锁系统框图 硬件部分的智能电风扇可以很清晰的看出密码锁的工作流程,输入电路是智能电风扇的电源输入端,保证智能电风扇可以正

    10、常工作;按键部分选择的是矩阵式键盘,矩阵式键盘的优点是减少I/O口的占用、按键选择多;数码管显示部分是显示用户输入密码位数,同时也显示显示输入的数据。 软件部分的密码储存是放在AT24C02储存芯片里,保证储存、验证用户输入的密码是否正确。3.2 模块电路图 3.2.1 MCU最小模块 图3-2 MCU最小模块图3.2.2 晶振模块 图3-3 晶振模块3.2.4 数码管模块 图3-5 数码管模块3.2.5 键盘模块 图3-6 键盘模块3.3 智能电风扇电路总体结构 本系统总体结构由硬件部分与软件部分构成。其中硬件部分由电源输入部分、键盘输入部分、数码管显示部分,软件部分由主程序、密码储存程序、

    11、键盘扫描程序、启动程序、延时程序等组成。 其工作过程是:采集当前温度(DS18B02),并用LED显示,能设置报警温度,当检测温度超过报警温度时,产生报警信号(蜂鸣器输出),根据不同的温度,通过DA输出来(0832)控制直流电机的转速,通过操作实时时钟芯片,来控制电风扇的定时启动、停止等。 第4章 系统的软件设计 4.1储存芯片AT24C02 AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。AT24C0

    12、2支持IC,总线数据传送协议IC,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。1-A0,2-A1,3-A2 地址管脚;4-Vss 电源地;5-SDA 串行数据;6-SCL 串行时钟;7-WP 写保护;8-Vcc 电源。Vcc Vss 电源供电电压在2-6V之间。SCL 串行时钟,AT24C02串行时钟输入管脚用于产生器件所有数据发送

    13、或接收的时钟,这是一个输入管脚。SDA 串行数据/地址,AT24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线(wire-OR)A0、A1、A2 器件地址输入端这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。当使用AT24C02 时最大可级联8个器件。如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2 )可悬空或连接到Vss,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0、A1、A2 )必须连接到Vss。 4.2 报警电路的选择“叮”声,每按一下,发声一次,密码

    14、正确时,不发声直接开锁,当密码输入错误时,单片机的P2.1引脚为低电平,三极管T3导通轰鸣器发出噪鸣声报警。如图4-3所示: 图4-3 报警电路原理图 4.3晶振电路 晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。AT89C51引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图4-11所示方式连接。晶振、电容C1C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在033MHz之间,电容C1、C2取值范围在530pF之间。根据实

    15、际情况,本设计中采用12MHZ做为系统的外部晶振。电容取值为20pF。它的作用的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。晶振频率为11.0592MHZ。 4.6 主程序流程图 主程序的流程图: 图4-5 主程序流程图 在主程序初始化之后,开始反复检测各模块相关部分的缓冲区标志,如果缓冲区标志置位,说明有相应的数据需要处理,然后主程序调用响应的处理子模块,对于温度传感器,我们采用定时采集数据的方法,在定时中断子程序中,采集相应的数据,并进行判断,如果是异常数据,则将数据保存在系统缓冲区,同时置对应的缓冲区标志。然后主程序将会调用相应的子程序进行处理。软件主流

    16、程图见下页图5-2所示。当有按键按下的时候,采用键盘中断子程序扫描相应的键盘码,然后发给主程序,置对应的键盘按键标志位。在主程序中,当有键盘按下的时候,调用对应的键盘处理子程序。 第5章 调试与实现 5.1 硬件调试单片机应用系统的硬件调试和软件调试是分不开的许多硬件故障只有通过软、硬件联调才能发现,但一般是先排除系统中比较明显的硬件故障后才和软件一起联调。常见的硬件故障: (1)逻辑错误 硬件的逻辑错误是由于设计错误和焊接过程中的工艺错误而造成的,包括错线、开路、短路等,其中最常见的是短路故障。 (2)元器件错误 元器件错误的原因有器件损坏或性能不符合要求,电解电容、二极管的极性接反或集成块

    17、装反等。 (3)可靠性差 应用系统可靠性差的原因很多,如内部和外部的干扰、电压纹波系数过大、器件负载过重等均会造成系统的可靠性差。另外,走线和布置的不合理也会造成系统可靠性差。 (4)电源故障 电源故障包括:电压值不符合设计要求、电源功率不足、负载能力差、纹波太重等。 硬件调试办法 脱机调试是在加电前,先用万用表等工具,按图纸仔细核对线路是否正确,并对元器件的安装、型号、规格等进行仔细检查,特别焊接时有无走线之间相互短路等。 5.2 软件调试程序在KEIL C51上调试,采用模块程序设计技术,则逐个模块调好后再进行系统程序总调。 对于模块结构程序要一个个子程序分别调试。调试时,一定要符合入口条

    18、件和出口条件,调试可用单步运行和断点运行方式,通过检查用者系统的CPU现场情况、RAM的内容和IO口的状态,检测程序执行结果是否符合设计要求,有无循环错误、有无机器码错误以及转移地址的错误,同时,还可以发现系统中存在的硬件设计错误和软件算法错误。 各程序模块通过后,则可以把相关功能块连在一起进行总调。这个阶段若有故障,可以考虑各子程序运行时是否破坏了现场,缓冲单元、工作寄存器是否发生冲突,标志位的建立和清除是否有误,堆栈区是否有溢出,输入设备的状态是否正常等等,若用者系统是在开发机的监控程序下运行时,还要考虑用者缓冲单元是否和监控程序的工作单元发生冲突。 单步和断点调试后,还应进行连续调试,用

    19、以确定定时精度、CPU的实时响应等问题。 当全部调试和修改完成后,将程序固化到AT89S51中。进行整机调试。各功能实现则调试完成。 第6章 课程设计体会 本次单片机课程设计,我通过编写初始化程序,运用定时器012,处理中断程序,调用库函数和.H文件,加深了对课堂上学习知识的理解。在调试程序的过程中,自己的分析问题解决问题的能力有所提高。 基于单片机实现温度控制直流电机转速的设计完成很大程度上满足了我们生活的需要,例如小型的智能风扇、电脑上的散热风扇等等。传统的模拟电路设计太为繁琐,制作复杂,调试起来也不方便,使用起来更麻烦。 本次设计的成果恰恰可以解决人们的一些烦恼,既可以从液晶屏上直接的读

    20、取温度数据,而且可以个根据周围的温度环境改变直流电机的转速,控制精确、稳定。常规的晶闸管只留调速系统中大量硬件都用软件替代,从而简化系统的结构,减少了电子元件的虚焊,接触不良的漂移等引起的一些故障,而且维修方便,借助于丰富的软件,易于实现各类自适应和复合控制。 第7章 参考文献 1 郭天祥. 51单片机C语言教程.电子工业出版社.20132 楼苗然,李光飞. 单片机课程设计指导. 北京航空航天大学出版社2007 附 录代码清单:#include #include #include #define C8279 XBYTE0xE001#define D8279 XBYTE0xE000 void d

    21、elay(unsigned char i1);void delay1(unsigned char i2);void delayus(unsigned char num);void disp8279(void);void init8279(void) ;void init_int(void);/中断1启动程序void GET_T (unsigned char *temp);void WR_1820 (unsigned char i);unsigned char RD_1820 (void) ;unsigned char getkey(void);void T_COV (void);/温度处理vo

    22、id TO_BCD (void);/温度数值处理void temp_b(void);/风速处理程序unsigned char INIT_1820(void);void CHA8279 (void);/实时温度显示处理sbit DQ=P32; /温感sbit bj=P23;/蜂鸣sbit pwm=P24;/电机sbit key1=P22;/风扇定时方式 ,启动定时,停止定时bit key_flag;unsigned char buffer8,temp_v2,TEMPER_N,temp_a; unsigned char port=1,0; /temp_a当前温度,,count秒计时count_a分

    23、计时unsigned char temp_l=15;/最低温度,低于时,风扇不动unsigned char temp_h=35;/报警温度unsigned char count=0;unsigned char count1=0;unsigned char count_a=0;unsigned char time=1,5,10;/定时时长单位分钟unsigned char change3=20,25,30; /温度风速等级void main (void) init8279(); buffer0=0x00; buffer1=0x00; buffer2=0x18; buffer3=0x0c; buf

    24、fer4=0x12; buffer5=0x12; buffer6=0x00; buffer7=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

    25、=getkey(); /.定时启动、停止. if(!key1) /key1低电平,电机转;1、2、3键表示风扇定时停止时长 delay(100); if(!key1) temp_b(); if(key_flag=1) init_int(); if(count_a=time0) port0=0; port1=0; else if (key_flag=2) init_int(); if(count_a=time1) port0=0; port1=0; else if (key_flag=3) init_int(); if(count_a=time2) port0=0; port1=0; else;

    26、 else /key1高电平,风扇不转动;1,2,3键表示风扇定时启动时长 TR0=0; ET0=0; if(key_flag=1) init_int(); if(count_a=time0) temp_b(); else if (key_flag=2) init_int(); if(count_a=time1) temp_b(); else if (key_flag=3) init_int(); if(count_a=time2) temp_b(); else; /报警温度设置 if(key_flag=4) temp_h+; if(key_flag=5) temp_h-; if(temp_a

    27、temp_h) /报警 if (count1=20) bj=bj; void GET_T (unsigned char *temp) INIT_1820(); WR_1820(0x0CC); WR_1820(0x44); delay(100); INIT_1820(); delay(100); WR_1820(0x0CC); WR_1820(0x0be); temp0=RD_1820(); temp1=RD_1820(); INIT_1820();void WR_1820 (unsigned char cmp) unsigned char i; for(i=8;i0;i-) DQ=1; if(

    28、cmp&0x01=0x01) DQ=0; DQ=1; delayus(5); else DQ=0; delayus(5); DQ=1; cmp=cmp1; DQ=1; unsigned char code key16=0x23,0x2b,0x33,0x3b,0x22,0x2a,0x32,0x3a, 0x21,0x29,0x31,0x39,0x20,0x28,0x30,0x38;unsigned char getkey(void) unsigned char i,temp,kk; i=0; while(i=0) temp=C8279; i=temp&0x07; temp=D8279; for(i=0;i0;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


    注意事项

    本文(中南大学单片机课程设计报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开