




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学 号 11700201天津城建大学单片机原理及接口技术课程设计设计说明书温度控制单片机PWM输出设计起止日期: 2014 年 1 月 6 日 至 2014 年 1 月 17 日学生姓名王博班级11级电信2班成绩指导教师(签字)计算机与信息工程学院2014年 1月 17日天津城建大学课程设计任务书20132014学年 第1学期计算机与信息工程学院 电子信息工程专业 班级 11级电信2班 学号 11700201 课程设计名称: 单片机原理及接口技术 设计题目: 温度控制单片机PWM输出设计 完成期限:自 2014 年 1 月 6 日至 2014 年 1 月 17 日共 2 周设计依据、要求及主要内容:一设计的目的1.进一步熟悉和掌握单片机系统设计和编程原理。2.掌握单片机的接口技术及相关外围芯片的外特性、控制方法。3.通过设计,掌握以单片机核心的电路设计的基本方法和技术。4.通过实际程序设计和调试,掌握模块化程序设计方法和调试技术。5.通过完成一个包括电路设计和程序开发的完整过程,了解开发单片机应用系统的全过程,为今后从事相应开发打下基础。二设计的基本要求1.认真认识设计的意义,掌握设计工作程序,学会使用工具书和技术参考资料,并培养科学的设计思想和良好的设计作风。2.提高模型建立和设计能力,学会应用相关设计资料进行设计计算的方法。3.提高独立分析、解决问题的能力,逐步增强实际应用训练。4.设计的说明书要求简洁、通顺,电路图内容完整、清楚、规范。三设计主要内容a) 设计实现功能STC12C5A60S2(引脚排序及基本功能同AT89S51)作为主控芯片,设计利用LCD1602显示时间、温度、PWM参数和占空比信息。一是扩展DS12C887外围电路,实现时间信息显示;二是DS18B20温度信息显示的设计;三是利用温度控制PWM输出,使占空比与温度成正比变化。b) 原理图设计1.原理图设计要符合项目的工作原理,连线要正确。2.图中所使用的元器件要合理选用,电阻、电容等器件的参数要正确标明。3.原理图要完整,CPU、外围器件、外扩接口、输入/输出装置要一应俱全。c) 程序调计1.根据要求,将总体功能分解成若干个子功能模块,每个功能模块完成一个特定的功能。2.根据总体要求及分解的功能模块,确定各功能模块之间的关系,设计出完整的程序流程图。d) 程序调试1.编写相关程序,并进行仿真。2.将程序下载到单片机,进行运行调试。e) 设计说明书1.原理图设计说明简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。2.程序设计说明对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的描述。3.画出工作原理图,程序流程图并给出相应的程序清单。指导教师(签字): 教研室主任(签字): 批准日期: 2014 年 1 月 2 日目录第1章 设计要求11.1课程设计具体要求11.1.1 原理图设计11.1.2程序调计11.1.3程序调试11.1.4设计说明书11.2设计任务1第2章 设计原理22.1设计思路22.2设计的相关技术22.3主控芯片介绍22.4 LCD1602液晶显示器介绍42.5 PWM的基本原理52.6 温度传感器6 2.6.1温度传感器工作原理6 2.6.2 DS18B20相关介绍7 2.6.3 DS18B20中使用中的注意事项8第3章 系统的软件设计93.1主文件 main93.2波形输出 PWM103.3 LCD液晶显示屏输出控制113.4 DS18B20温度传感器输出14第4章 电路原理图设计17第五章 心得体会19参考文献20第1章 设计要求1.1课程设计具体要求1.1.1 原理图设计a.原理图设计要符合项目的工作原理,连线要正确。b.图中所使用的元器件要合理选用,电阻、电容等器件的参数要正确标明。c.原理图要完整,CPU、外围器件、外扩接口、输入/输出装置要一应俱全。1.1.2程序调计a.根据要求,将总体功能分解成若干个子功能模块,每个功能模块完成一个特定的功能。b.根据总体要求及分解的功能模块,确定各功能模块之间的关系,设计出完整的程序流程图。1.1.3程序调试a.编写相关程序,并进行仿真。b.将程序下载到单片机,进行运行调试。1.1.4设计说明书a.原理图设计说明简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。b.程序设计说明对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的描述。c.画出工作原理图,程序流程图并给出相应的程序清单。1.2设计任务STC12C5A60S2(引脚排序及基本功能同AT89S51)作为主控芯片,设计PWM输出控制电路。一是设计温度模块输出,作为PWM的参数输入;二是用PWM输出控制发光二级管,观察PWM输出不同占空比下发光二级管的亮度变化;三是根据需要扩展LCD1602等,显示相应的输入参数。第2章 设计原理2.1设计思路用PWM输出控制发光二级管,并利用温度值控制占空比,观察PWM输出不同占空比下发光二级管的亮度变化。LED亮暗程度DS18B20模块 液晶模块显示 STC12C5A60S2 主控芯片 调整PWMDS12C887时钟芯片图1 整体设计思路主电路包括:(1)一块主控8位芯片;(2)温度采集模块;(3)LED发光状态显示灯;(4)LCD1602占空比显示屏;(5)时钟芯片模块2.2设计的相关技术脉冲宽度调制(PWM),是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。本次设计的原理就是利用STC12C5A60S2芯片模拟出PWM输出波形,来控制LED灯的两岸程度。在一定的频率的方波中,调整高电平和低电平的占空比,即可实现。同时,本方案使用了一块LCD1602的液晶显示屏来显示输入的参数,清晰的看出设计出的结果。使用红外遥控器控制占空比的输入,达到所需的效果。2.3主控芯片介绍STC12C5A60S2是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。STC12C5A60S2是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC12C5A60S2是一种高效微控制器.主要特性:与MCS-51 兼容;4K字节可编程闪烁存储器;寿命:1000写/擦循环;数据保留时间:10年;全静态工作:0Hz-24MHz;三级程序存储器锁定;1288位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路。 图3 主控芯片 STC12C5A60S22.4 LCD1602液晶显示器介绍1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。1602LCD微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。图4 LCD1602示意图表1 LCD1602管脚功能管脚功能1VSS为电源地2VCC,5V电源正极3V0为液晶显示器对比度调整端4RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6E(或EN)端为使能(enable)端。7-14D0D7为8位双向数据端15-16空脚或背灯电源。15脚背光正极,16脚背光负极 2.5 PWM的基本原理脉冲宽度调制,简称脉宽调制,是将模拟信号转换为脉波的一种技术,一般转换后脉波的周期固定,但脉波的占空比会依模拟信号的大小而改变。在模拟电路中,模拟信号的值可以连续进行变化,在时间和值的幅度上都几乎没有限制,基本上可以取任何实数值,输入与输出也呈线性变化。所以在模拟电路中,电压和电流可直接用来进行控制对象,例如家用电器设备中的音量开关控制、采用卤素灯泡灯具的亮度控制等等。但模拟电路有诸多的问题:例如控制信号容易随时间漂移,难以调节;功耗大;易受噪声和环境干扰等等。与模拟电路不同,数字电路是在预先确定的范围内取值,在任何时刻,其输出只可能为ON和OFF两种状态,所以电压或电流会通/断方式的重复脉冲序列加载到模拟负载。PWM技术是一种对模拟信号电平的数字编码方法,通过使用高分辨率计数器(调制频率)调制方波的占空比,从而实现对一个模拟信号的电平进行编码。其最大的优点是从处理器到被控对象之间的所有信号都是数字形式的,无需再进行数模转换过程;而且对噪声的抗干扰能力也大大增强(噪声只有在强到足以将逻辑值改变时,也可能对数字信号产生实质的影响),这也是PWM在通讯等信号传输行业得到大量应用的主要原因。模拟信号能否使用PWM进行编码调制,仅依赖带宽,这即意味着只要有足够的带宽,任何模拟信号值均可以采用PWM技术进行调制编码,一般而言,负载需要的调制频率要高于10Hz,在实际应用中,频率约在1kHz到200kHz之间。在信号接收端,需将信号解调还原为模拟信号,目前在很多微型处理器内部都包含有PWM控制器模块。图5 PWM原理模式图 2.6温度传感器 2.6.1温度传感器工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。DS18B20功能特点:1. 采用单总线技术,与单片机通信只需要一根I/O线,在一根线上可以挂接多个DS18B20。2. 每只DS18B20具有一个独有的,不可修改的64位序列号,根据序列号访问地应的器件。3. 低压供电,电源范围从35V,可以本地供电,也可以直接从数据线上窃取电源(寄生电源方式)。4. 测温范围为-55+125,在-1085范围内误差为0.5。5. 可编辑数据为912位,转换12位温度时间为750ms(最大)。6. 用户可自设定报警上下限温度。7. 报警搜索命令可识别和寻址哪个器件的温度超出预定值。8. DS18B20的分辩率由用户通过EEPROM设置为912位。9. DS18B20可将检测到温度值直接转化为数字量,并通过串行通信的方式与主控制器进行数据通信。DS18B20有4个主要的数据部件:1. 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位 (28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用 是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 2. DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以 0.0625/LSB形式表达,其中S为符号位。3. DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器 TH、TL和结构寄存器。 4. 配置寄存器。DS18B20内部结构及功能:DS18B20的内部结构如图2-4所示。主要包括:寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分图2-4 DS18B20内部结构2.6.2 DS18B20相关介绍温度的读取:DS18B20在出厂时以配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。DS18B20的初始化: 1. 先将数据线置高电平“1”。2. 延时(该时间要求的不是很严格,但是尽可能的短一点)。3. 数据线拉到低电平“0”。4. 延时750微秒(该时间的时间范围可以从480到960微秒)。5.数据线拉到高电平“1”。6. 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制7. 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。8.将数据线再次拉高到高电平“1”后结束。 DS18B20的写操作: 1. 数据线先置低电平“0”。2. 延时确定的时间为15微秒。3. 按从低位到高位的顺序发送字节(一次只发送一位)。4. 延时时间为45微秒。 5. 将数据线拉到高电平。6. 重复上(1)到(6)的操作直到所有的字节全部发送完为止。7. 最后将数据线拉高。 DS18B20的读操作:1. 将数据线拉高“1”。2. 延时2微秒。3. 将数据线拉低“0”。4. 延时15微秒。5. 将数据线拉高“1”。6. 延时15微秒。7. 读数据线的状态得到1个状态位,并进行数据处理。8. 延时30微秒。 2.6.3 DS18B20使用中的注意事项DS18B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:1. DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示85。2. 在实际使用中发现,应使电源电压保持在5V 左右,若电源电压过低,会使所测得的温度精度降低。3. 较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。4. 在DS18B20的有关资料中均未提及单总线上所挂DS18B20 数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此,当单总线上所挂DS18B20 超过8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。5. 在DS18B20测温程序设计中,向DS18B20 发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20 接触不好或断线,当程序读该DS18B20 时,将没有返回信号,程序进入死循环,这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视 第3章 系统的软件设计采用Keil开发系统,使用C语言进行开发。主要的功能有:控制LED灯的亮灭以及明亮程度、LCD液晶显示屏显示参数、从温度传感器模块中得到输入参数等。软件由:3.1主文件 main()void main() SP=0x60; lcd_init(); DS_init(); write_time(); /DS12C887时间设置 DS18B20_Init(); while(1) write_string_lcd(2,0, PWM:); PWM_init(); /PWM初始化 x=(wen_val-20.0)/0.0390625; PWM0_set (x); zkb=(x/256.0)*100; crt_zkb(2,4); write_string_lcd(2,8, %); write_string_lcd(2,10, t:); (crt_wendu(2,12); if (DS_C & 0x10) != 0) / 显示时间 crt_time(1); Delay2(1); 表2主函数函数表函数名功能void main()主程序lcd_init()液晶1602初始化DS_init()DS12C887初始化write_time()液晶显示时间设置DS18B20_Init()温度传感器初始化while(1)函数无限循环图6主函数逻辑图3.2 波形输出 PWM write_string_lcd(2,0, PWM:); PWM_init(); /PWM初始化 x=(wen_val-20.0)/0.0390625; PWM0_set (x); zkb=(x/256.0)*100; crt_zkb(2,4);表3 PWM函数表函数名功能write_string_lcd(2,0, PWM:)写PWM字符串 PWM_init()PWM初始化PWM0_set (x)对PWM赋予初始值crt_zkb(2,4)在液晶屏显示PWM百分比3.3 LCD液晶显示屏输出控制void lcd_init(void) write_cmd(0x38);/ write_cmd(0x38);/ write_cmd(0x06);/ write_cmd(0x0c);/ write_cmd(0x01);/*显示长整型数据*/void crti(unsigned long dat) BYTE dhi,dli,ddi,dei;unsigned long datah;unsigned long datal;datah=dat;dhi=0;if (datah=10)dodatah/=10;dhi+;while(datah=10);datah=dat;ddi=dhi;for (dli=0;dlidhi;dli+)datal=1;for (dei=0;deiddi;dei+)datal*=10;datah=dat/datal;dat=dat%datal;datah+=0x30;write_data(datah);ddi-;dat+=0x30;write_data(dat);elsedat=dat+0x30;write_data(dat); /*浮点数显示*/void crt_r(float x,unsigned char N) BYTE dli; unsigned int dath; unsigned int datl; unsigned int dat; if (x0) dat=0x2e; write_data(dat); Delay(1); dat=1; for (dli=0;dliN;dli+) dat*=10; dath=(int)(x*dat)-dath*dat; for (dli=1;dli0;i-)DS1820_DQ = 0; /拉低总线,产生写信号 DelayXus(4); /延时4us DS1820_DQ = wData&0x01; /发送1 位 DelayXus(60); /延时60us,写时序至少要60us DS1820_DQ = 1; /释放总线,等待总线恢复 wData=1; /准备下一位数据的传送 /*从DS1820 中读出数据*函数名称:DS1820_ReadData()*/BYTE DS1820_ReadData()BYTE i,TmepData;for (i=8;i0;i-)TmepData=1;DS1820_DQ = 0; /拉低总线,产生读信号 DelayXus(4); /延时4us DS1820_DQ = 1; /释放总线,准备读数据 DelayXus(8); /延时8 微秒读数据 if (DS1820_DQ = 1)TmepData |= 0x80;DelayXus(60); /延时60us DS1820_DQ = 1; /拉高总线,准备下一位数据的读取. return (TmepData);/返回读到的数据 /*延时n微秒程序*/void DelayXus(WORD n) while(-n);/*读取温度程序*/void read_wendu() BYTE i;DS1820_Reset(); /复位DS1820_WriteData(0xcc); /跳过ROM 命令DS1820_WriteData(0x44); /温度转换命令DS1820_Reset(); /复位DS1820_WriteData(0xcc); /跳过ROM 命令DS1820_WriteData(0xbe); /读DS1820 温度暂存器命令for (i=0;i2;i+)temperaturei=DS1820_ReadData(); /采集温度DS1820_Reset(); /复位,结束读数据/*显示温度程序*/void crt_wendu(BYTE line,column) read_wendu(); ah=temperature14; al&=0x0f; ah=ah|al; al=temperature0&0x0f; if (ah&0x80)!=0) if (al=0) ah=ah;ah=ah+1;else ah=ah;al=al;al=al+1;al&=0x0f;wen_val=ah*(-1.0)+al*(-0.0625); else wen_val=ah*1.0+al*0.0625; set_displ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淘宝客服务工合同范本
- 购房协议没写按揭合同
- 淘宝店合伙合同协议书
- 违法辞退赔偿协议合同
- 甲方支付税金合同范本
- 自家管道维修合同范本
- 线下买家交易合同范本
- 车辆合作经营合同范本
- 部门经理劳务合同范本
- 绝缘电缆出售合同协议
- 3.1 生活在新型民主国家(教学课件) 2025-2026学年度道德与法治 九年级上册
- 2025年安徽省政府采购评审专家考试真题库(带答案)
- 急性白血病课件
- GB/T 46142-2025智慧城市基础设施智慧交通快速响应矩阵码应用指南
- 场景速写课件讲解
- 2025广东惠州惠城区招聘社区工作站工作人员66人笔试备考题库及答案解析
- 餐饮四个人合伙合同协议
- 人体十二经络系统解析
- 2025年巷道掘砌工(技师)职业技能鉴定理论考试题库(含答案)
- 2025年交通安全宣传周知识竞赛考试题库及答案(含各题型)
- 2025年广东中考历史试卷真题解读及答案讲评课件
评论
0/150
提交评论