ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:146.72KB ,
资源ID:6842912      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6842912.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课设报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课设报告.docx

1、单片机课设报告第一章绪论1.1课程设计的目的提高学生在单片机应用方面的实践技能, 树立严谨的科学作风,培养学生综合 运用理论知识解决实际问题的能力。学生通过单片机硬件设计和软件设计、组装 焊接、程序调试、整理资料等环节,初步掌握单片机应用系统的开发设计过程。1.2课程设计要求完成一个以单片机为核心的温度检测系统(实物)设计制作。性能参数:温度测量范围:-0 C 100C,测量误差w 0.5 C。主要器件:MCU选用8051系列,显示选用LCD1602使用温度传感器,使用 AD 转换。基本功能:完成实时温度检测并显示。扩展功能:时钟显示(能调整),温度控制(能设定温控区间),温度数据无线 传输,

2、等其他功能。第二章方案设计2.1方案选择2.1.1测温电路方案进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这 是非常容易想到的,所以可以采用一只温度传感器 DS18B20此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求 万案二由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应, 在将随被测温度变化的电压或电流采集过来, 进行A/D转换后,就可以用单片机进行数 据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到 A/D转换电路,感温电路比较麻烦2.1.2显示电路方案方案一:采用数码管动态显示,使用七段LED数码管,采用动态显

3、示的方法来显 示各项指标,此方法虽然价格成本低,但是显示单一,且功耗较大。方案二:采用LCD液晶显示采用1602 LCD液晶显示,此方案显示内容相对丰富,且价格不高。 综合上述原因,采用方案二,使用LCD液晶作显示电路。综合上诉,测温电路选择方案一,显示电路选择方案二。2.2系统设计原理利用温度传感器DS18B2C可以直接读取被测温度值,进行转换的特性,模拟温 度值经过DS18B2C处理后转换为数字值,然后送到单片机中进行数据处理,并与 设置的温度报警限比较,超过限度后通过扬声器报警。同时处理后的数据送到 LED显示。2.3系统组成本设计是以80C51单片机为核心设计的一种数字温度控制系统,系

4、统整体硬件电 路包括:传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主 板电路等组成。系统框图主要由主控制器、单片机复位、报警设置、时钟振荡、 LED显示、温度传感器组成。系统框图如图1所示。主控制器LS显示温度传瞅器报警按迩设祝单片机复位时钟提物图1系统框图1、 主控制器单片机AT80C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满 足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用两节电池供 电。2、 显示电路显示电路采用LED液晶显示数码管,从P3到RXD,TXD串口输出段码。显示电路 是使用的串口显示,这种那个显示的最大优点是使用口资源比较少。3、

5、 温度传感器温度传感器采用DS18B20温度传感器。DS18B20俞出信号全数字化,便于单片机 处理和控制。第三章硬件设计3.1 核心处理器的设计3.1.1 80C51单片机的介绍单片机是电路的核心部分,系统采用了 51系列单片机。在众多的51单片机系列 中,AT89系列单片机在我国得到及其广泛的应用, 越来越受到人们的瞩目。AT8956r8910U121314151617181920PLQ/T2vccPl,irr2 EXPO.OZADOP1JPO.1/AD1PL3P1JPO.3/AD3Pk5AfO$IPQ.4/AP4PL6AiISOP0.J/AD5PL7/SCFCP0.6.AD6RSTPO.

6、7/AD7BA VP?P3JTXD ALE;PROGP3.2/INT0P33/TNT1PSENP2.7/A15P3.4/T0P2.6/A14P3.5/T1P20A13F36AVRF2.4/A12P2.3 AllXTAL2P2,2 A10XTAL1P2.1/A9GNDP2-0/AS393837363534333231302928212625242322214系列单片机是美国ATMEL公司的8位Flash单片机产品。它的最大特点是在片内 含有Flash存储器,在系统的开发过程中修改程序容易,使开发调试更为方便。 AT89系列单片机以8031为内核,是与8051系列单片机兼容的系列,其型号可 以分为

7、标准型、低档型和高档型3类。高档型单片机有AT89S51AT89S52AT89S53 和AT89S8252等型号,其中AT89S52为ATME所生产的一种低功耗、高性能CMOS8 位微控制器,内部有8KB的可下载Flash存储器,2KB的EEPRQM提高了存储容 量,系统不必扩展外部程序存储器和数据存储器这样大大的减少了系统硬件部 分。因此,本系统使用80C51单片机作为微处理器.如图2所示。图2 80C51管脚图3.1.2 80C51单片机的中断系统80C51系列单片机的中断系统有5个中断源,2个优先级,可以实现二级中断 服务嵌套。由片内特殊功能寄存器中的中断允许寄存器 IE控制CPU是否响

8、应中断请求;由中断优先级寄存器IP安排各中断源的优先级;同一优先级内各中断 同时提出中断请求时,由内部的查询逻辑确定其响应次序。3.1.3 80C51 单片机的定时/计数器在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定时 扫描等;也经常要对外部事件进行计数。80C51单片机内集成有两个可编程的定 时/计数器:T0和T1,它们既可以工作于定时模式,也可以工作于外部事件计数 模式,此外,T1还可以作为串行口的波特率发生器。3.1.3 复位电路的设计单片机复位电路如图3所示,上电复位就是VCCS过电阻R2和电容C2构成回路, 该回路是一个对电容C2充电和放电的电路,所以复位端口得

9、到一个周期性变化 的电压值,并且有一定时间的电压值高于 CPU复位电压,实现上电复位功能。C2I9RST1工7122uFGNDr0GNDL1QK?PSENALE EA3021图3单片机复位电路3.1.4晶振电路的设计单片机晶振电路的设计如图4所示,19号引脚为反向振荡放大器的输入及内 部时钟工作电路的输入。18号引脚是来自反向振荡器的输出按照理论上 AT89C51 使用的是12MHZ的晶振,但实测使用11.0592MHz所以设计者通常用的是 11.0592MHz3.1.5报警电路的设计报警电路的设计如图5所示,当温度大于等于上限温度时,嗡鸣器实现报警3.1.6 调温调时电路的设计调温调时电路如

10、图6所示,通过按键进行调温调时。3.2 液晶显示模块的设计321 LED液晶显示屏的介绍液晶显示器(LCD)英文全称为Liquid Crystal Display ,它一种是采用了液 晶控制透光度技术来实现色彩的显示器。和 CRT显示器相比,LCD的优点是很明 显的。由于通过控制是否透光来控制亮和暗,当色彩不变时,液晶也保持不变, 这样就无须考虑刷新率的问题。显示接口用来显示系统的状态,命令或采集的电 压数据。本系统显示部分用的是LCD液晶模块,采用一个16X1的字符型液晶显 示模块。点阵图形式液晶由 M行X N列个显示单元组成,假设LCD显示屏有 64行,每行有128列,每8列对应1个字节的

11、8个位,即每行由16字节,共 16X 8=128个点组成,屏上64X 16 个显示单元和显示 RAM区 1024个字节相对 应,每一字节的内容和屏上相应位置的亮暗对应。一个字符由 6X 8或 8X 8点阵组成,即要找到和屏上某几个位置对应的显示 RAMK的8个字节,并且要使每个字节的不同的位为1,其它的为0,为1的点亮,为0的点暗,这样一来 就组成某个字符。但对于内带字符发生器的控制器来说,显示字符就比较简单了, 可让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找 出显示 RAM寸应的地址,设立光标,在此送上该字符对应的代码即可。1602液晶模块简介微功耗、体积小、显示内容

12、丰富、超薄轻巧,常用在袖珍式 仪表和低功耗应用系统中。1602的管脚分布如图7所示。 LCD1602g p Q T f II F 卄,9 Ir i0-T9cc6.O1F-r9TITT图7液晶显示屏3.2.2液晶显示部分与 STC89C5的接口LCD显示分为静态显示和动态显示。这里采用静态显示,系统通过单片机的串 行口来实现静态显示。串行口为方式零状态,即工作在移位寄存器方式,波特率 为振荡频率的1/12。当器件执行任何一条将SBUF乍为目的寄存器的命令时,数 据便开始从RXD端发送。在写信号有效时,相隔一个机器周期后发送控制端 SEND 有效,即允许RXD发送数据,同时允许从TXD端输出移位脉

13、冲。3.3数字温度传感器 DS18B20331 DS18B20 的介绍由dallas半导体公司生产的ds18b20型单线智能温度传感器,属于新一代适配 微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及 控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特 点。3.3.2 DS18B20的性能特点采用单总线的接口方式,测量温度范围宽,测量精度高,在使用中不需要任何外围 元件,持多点组网功能,供电方式灵活,测量参数可配置,负压特性,掉电保护功3.3.3 温度采集电路图8温度采集电路第四章软件设计鉴于课设时间较短,故采用老师已有的设计进行实际操作4.1 程序设

14、计4.1.1程序框图系统软件设计主要包括显示子程序, 报警子程序,温度传感器的子程序。以是 主程序与各个子程序的程序流程图。主程序框图如下。图9主程序图读出温度子程序的主要功能是读出 RAM中的9字节,在读出时需进行CR(校验, 检验有错时不进行温度数据的改写。温度转换命令子程序主要是发温度转换开始命令,当采用 12位分辨率时转换时间约为750ms在本程序设计中采用1s显示程序延时法等待转换的完成。温 度转换命令子程序流程图,如图10。4*暧:販鏗陀.CRZ咬S发DS1SE20复位命令发號过ROM命令JF电开始侖令图10子程序图4.1.2 程序#in clude#i ncludesbit RS

15、 = P2A0; /定义 1602 端口sbit RW = P2A1;sbit EN = P2A2;sbit KEY_A J仁P。; /定义温设按键输入端口sbit KEY_AJ2=P1A1;sbit KEY_AJ3=P1A2; /定义时间按键输入端口sbit KEY_AJ4=P1A3;sbit SPK=P2A3; II 定义喇叭端口# defi ne uint un sig ned int#defi ne RS_CLR RS=0#defi ne RS_SET RS=1#defi ne RW_CLR RW=0#defi ne RW_SET RW=1#defi ne EN_CLR EN=0#de

16、fi ne EN_SET EN=1#defi ne DataPort P0un sig ned char set=30;un sig ned char setg;un sig ned char sets;un sig ned char setb;un sig ned char temp=60;un sig ned char tempg;un sig ned char temps;un sig ned char tempb;unsigned int TIME=O;un sig ned char TIMESS;un sig ned char TIMESG;unsigned char TIMEFS;

17、unsigned char TIMEFG;un sig ned char TIMEMS;un sig ned char TIMEMG;void DelayUs2x(unsigned char t); 函数声明void DelayMs( un sig ned char t);void Display (un sig ned char FirstBit,u nsig ned char Num);void Ini t_TimerO(void);void init_adc(void); 初始化ADuin t get_adc(void); 获取AD结果,返回UINT型值/* uS延时函数,含有输入参数

18、un sig ned char t,无返回值unsigned char是定义无符号字符变量,其值的范围是0255这里使用晶振12M,精确延时请使用汇编,大致延时长度如下T=tx2+5 uS */void DelayUs2x( un sig ned char t)while(-t);/* mS延时函数,含有输入参数 unsigned char t,无返回值unsigned char是定义无符号字符变量,其值的范围是0255这里使用晶振12M,精确延时请使用汇编 */void DelayMs( un sig ned char t)while(t-)II大致延时1mSDelayUs2x(245);D

19、elayUs2x(245);判忙函数 */bit LCD_Check_Busy(void)DataPort= OxFF;RS_CLR;RW_SET;EN_CLR;_nop_();EN_SET;return (bit)(DataPort & 0x80);/* 写入命令函数 */void LCD_Write_Com (un sig ned char com)/ while(LCD_Check_Busy(); / 忙则等待DelayMs (5);RS_CLR;RW_CLR;EN_SET;DataPort= com;_nop_();EN_CLR;/* 写入数据函数 */void LCD_Write_D

20、ata(u nsig ned char Data) while(LCD_Check_Busy(); / 忙则等待DelayMs (5);RS_SET;RW_CLR;EN_SET;DataPort= Data;_nop_();EN_CLR;/* 清屏函数 */void LCD_Clear(void)LCD_Write_Com(0x01);DelayMs (5);/* 写入字符串函数 */void LCD_Write_Stri ng(un sig ned char x,un sig ned char y,un sig ned char *s)if (y = 0)LCD_Write_Com(0x80

21、 + x); 表示第一行elseLCD_Write_Com(OxCO + x); 表示第二行while (*s!=0)LCD_Write_Data( *s);s +;/* 写入字符函数 */void LCD_Write_Char( un sig ned char x,un sig ned char y,un sig ned char Data)if (y = 0)LCD_Write_Com(0x80 + x);elseLCD_Write_Com(OxCO + x);LCD_Write_Data( Data);/*AD*/void ini t_adc(void)1.0P1ASF = 0x10;

22、/AD功能寄存器,设置I /O口作为AD转换实用。使用P口。ADC_RES = 0;ADC_RESL = 0;ADC_CONTR = 0x84;为0, 540个时钟,清理结果寄存器的值清理结果寄存器的值开启AD电源并设置转换周期为 540个时钟周期转换一次。ADC_POWER=1; CHS2,1,0 为 0,用 p1.0 作为输入。SPEED1,0DelayMs(2); uint get_adc(void)uint d=0;ADC_CONTR = 0X8C;_nop_();_nop_();_nop_();_nop_();while(!(ADC_CONTR & 0X10);ADC_CONTR &

23、= 0X10;d |= ADC_RES;d = 2;d |= ADC_RESL; return d;/* 初始化函数 */void LCD_I nit(void)LCD_Write_Com(0x38);DelayMs(5);LCD_Write_Com(0x38);DelayMs(5);LCD_Write_Com(0x38);DelayMs(5);LCD_Write_Com(0x38);LCD_Write_Com(0x08);LCD_Write_Com(0x01);LCD_Write_Com(0x06);DelayMs(5);LCD_Write_Com(0x0C); */*显示模式设置*/*显示

24、关闭*/*显示清屏*/*显示光标移动设置*/*显示开及光标设置*/按键控制设置温度*/void KEY_TempSet(void)if(!KEY_AJ1) 如果检测到低电平,说明按键按下if(set0) / 减操作set-;/*按键控制时间*/void KEY_SETtime(void)if(!KEY_AJ3) 如果检测到低电平,说明按键按下 TIME+=3600;if(!KEY_AJ4) 如果检测到低电平,说明按键按下TIME+=60;/* 主函数 */* 1602显示函数 */void write_1602(void)TIMEMG=(TIME%3600)%60)%10+0:TIMEMS=(

25、TIME%3600)%60)/10+0:TIMEFG=(TIME%3600)/60)%10+0:TIMEFS=(TIME%3600)/60)/10+0:TIMESG=(TIME/3600)%10+0:TIMESS=(TIME/3600)/10+0:LCD_Write_Char(O,O,T);LCD_Write_Char(1,0,T);LCD_Write_Char(2,0,M);LCD_Write_Char(3,0,E);LCD_Write_Char(5,0,TIMESS);LCD_Write_Char(6,0,TIMESG);LCD_Write_Char(7,0,:); LCD_Write_Char(8,0,TIMEFS);LCD_Write_Char(9,0,TIMEFG);LCD_Write_Char(10,0,:);LCD_Write_Char(11,0,TIMEMS);LCD_Write_Char(12,0,TIMEMG);/* */setg=(set%100)%10+0;sets=(set%100)/10+0; setb=set/1OO+O;LCD_Write_Char(0,1,H);LCD_Write_Char(1,1,:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1