《温度控制单片机PWM输出设计.docx》由会员分享,可在线阅读,更多相关《温度控制单片机PWM输出设计.docx(25页珍藏版)》请在课桌文档上搜索。
1、学号11700201天律概建衣皆单片机原理及接口技术课程设计设计说明书温度控制单片机PWM输出设计起止日期:2022年1月6日至2022年1月17日学生姓名班级11级电信2班成绩指导教师(签字)计算机与信息工程学院2022年1月17日课程设计任务书20222022学年第1学期计算机与信息工程学院电子信息工程专业班级11级电信2班学号11700201课程设计名称:单片机原理及接口技术设计题R:温度控制单片机PWM输出设计完成期限:自2022年1W6日至2022年1月17日共2周设计依据、要求及主要内容:设计的目的1 .进一步熟悉和掌握单片机系统设计和编程原理。2 .掌握单片机的接口技术及相关外围
2、芯片的外特性、控制方法。3 .通过设计,掌握以单片机核心的电路设计的基本方法和技术。4 .通过实际程序设计和调试,掌握模块化程序设计方法和调试技术。5 .通过完成一个包括电路设计和程序开辟的完整过程,了解开辟单片机应用系统的全过程,为今后从事相应开辟打下基础。二设计的基本要求1.认真认识设计的意义,掌握设计工作程序,学会使用工具书和技术参考资料,并培养科学的设计思想相良好的设计作风。2 .提高模型建立和设计能力,学会应用相关设计资料进行设计计算的方法。3 .提高独立分析、解决问题的能力,逐步增强实际应用训练。4 .设计的说明书要求简洁、通顺,电路图内容完整、清堡、规范。三.设计主要内容a)设计
3、实现功能STC12C5A60S2(引脚排序及基本功能同AT89S51)作为主控芯片,设计利用LCDI602显示时间、温度、PWM参数和占空比信息。一是扩展DS12C887外围电路,实现时间信息显示:二是DS18B2。温度信息显示的设计:三是利用温度控制PWM输出,使占空比与温度成,正比变化。b)原理图设计1 .原理图设计要符合项目的工作原理,连线要正确。2 .图中所使用的元器件要合理选用,电阻、电容等器件的参数要正碉标明。3 .原理图要完整,CPU、外困器件、外扩接口、输入/输出装置要一应俱全。c)程序调计1 .根据要求,将总体功能分解成若干个子功能模块,每一个功能模块完成一个特定的功能。2
4、.根据总体要求及分解的功能模块,确定各功能,模块之间的关系,设计出完整的程序流程困。d)程序调试1 .编写相关程序,并进行仿真。2 .将程序下戴到单片机,进行运行调试。e)设计说明书1 .原理图设计说明简要说明设计目的,原理图中所使用的元器件功能及在国中的作用,各器件的工作过程及顺序。2 .程序设计说明对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之问的关系作较详细的描述。3 .画出工作原理图,程序流程图并给出相应的程序清单。指导教师(签字):教研室主任(签字):批准日期:2022年1月2B目录第1章设计要求11.1 课程设计具体要求11.1.1 原理图设计11.1.2 程序调
5、计11.1.3 程序调试11.1.4 设计说明书11.2 设计任务1第2章设计原理22.1设计思路22.2设计的相关技术21.1 3主控芯片介绍22.4 LCDI602液晶显示器介绍32.5 PWM的基本原理52.6温度传感器6261温度传感器工作原理62.6.2DS18B20相关介绍72.6.3DS18B20中使用中的注意事项8第3章系统的软件设计93.1主文件MAIN93.2波形输出PWM103. 3LCD液晶显示屏输出控制113.4DS18B20温度传感器输出14第4章电路原理图设计17第五章心得体味19参考文献20第1章设计要求1.1 课程设计具体要求1.1.1 原理图设计a.原理图设
6、计要符合项目的工作原理,连线要正确。b.图中所使用的元器件要合理选用,电阻、电容等器件的参数要正确标明。C.原理图要完整,CPU、外围器件、外扩接口、输入/输出装置要一应俱全。1.L2程序调计a.根据要求,将总体功能分解成若干个子功能模块,每一个功能模块完成一个特定的功能。b.根据总体要求及分解的功能模块,确定各功能模块之间的关系,设计出完整的程序流程图。1.13程序调试a.编写相关程序,并进行彷真。b.将程序下裁到单片机,进行运行调试。1.L4设计说明书a.原理图设计说明简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。b.程序设计说明对程序设计总体功能及结
7、构进行说明,对各子模块的功能以及各子模块之问的关系作较详细的描述。c.画出工作原理图,程序流程图并给出相应的程序清单。1-2设计任务STC12C5A60S2(引脚排序及基本功能同AT89S51)作为主控芯片,设计PWM输出控制电路。一是设计温度模块输出,作为PWM的参数输入:二是用PWM输出控制发光二级管,观察PWM输出不同占空比下发光二级管的亮度变化;三是根据需要扩展LCDl602等,显示相应的输入参数。第2章设计原理2.1设计思路用PWM输出控制发光二级管,并利用温度值控制占空比,观察PWM输出不同占空比卜发光二级管的亮度变化。液晶模块显示DS12C887时钟芯片图1整体设计思路主电路包括
8、:(I)一块主控8位芯片:(2)温度采集模块:(3LED发光状态显示灯;(4)LCDl602占空比显示屏:(5)时钟芯片模块2-2设计的相关技术脉冲宽度调制(PWM),是利用微处理器的数字输出来对摹拟电路进行控制的种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。脉冲宽度调制是一种摹拟控制方式,其根据相应载荷的变化来调制晶体管栅极或者基极的偏置,来实现开关稳压电源输出品体管或者晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定.是利用微处理器的数字信号对翦拟电路进行控制的一种非常有效的技术。本次设计的原理就是利用STCI2C5A60S2芯片摹拟出产输出
9、波形,来控制LED灯的两岸程度。在一定的频率的方波中,调整高电平和低电平的占空比,即可实现。同时,本方案使用了块LCD1602的液晶显示屏来显示输入的参数,清晰的看出设计出的结果。使用红外遥控耀控制占空比的输入,达到所需的效果。2.3主控芯片介绍STCI2C5A60S2是一种带IK字节闪存可编程可擦除只读存储器(FPEROMFlashPrOgrammableandEraSableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。STCl2C5A60S2是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。与工业标准的M
10、CS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STCl2C5A60S2是-种高效微控制器.主要特性:与MCS-51兼容:4K字节可编程闪烁存储器:寿命:1000写/擦循环:数据保留时间:10年:全静态工作:OHZ-24MHz:-:级程序存储器锁定:128X8位内部RAM:32可编程I/O线:两个16位定时器/计数器:5个中断源;可编程串行通道:低功耗的闲置和掉电模式;片内振荡器和时钟电路。单片机PIC12PE23PL3.4PMl_5Pl j6口姝PH78lhTV.13 CIKTcrl12 二3 1415Xl19X218RST 9RD (7 WR16,T
11、Tlll12By151617PpppppppKTl KrOTl TDEAPXlX2RESETRD)(2(B3Q5s7PpppppppPD P21 P2 PB PM P25 P35 P27RXD TXD LEP PSEN39 ADo . 38 APl, 37 AD2 . 36 AD3 . 35 AlM . 34 AD5 .33 AD6 / 32 AD7 ,1 AS3 AW All All AI3 A14 A1510 RXD彳TXD29 PSEN图3主控芯片STC12C5A60S22.4LCD1602液晶显示器介绍1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液
12、晶模块。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字九1602LCD微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。1.tNfOLDCDZoO60L(Ng寸图1LCDl602示意图表1LCDl602管脚功能管脚功能1VSS为电源地2VCC,5V电源正极3VO为液晶显示器对照度调整端4RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6E(或者EN)端为使能(enable)端。7-11D0D7为8位双向数据端15-16空脚或者背
13、灯电源。15脚背光正极,16脚背光负极2.5PWM的基本原理脉冲宽度调制,简称脉宽调制.是将摹拟信号转换为豚波的种技术,普通转换后脉波的周期固定,但脉波的占空比会依摹拟信号的大小而改变。在摹拟电路中,举拟信号的值可以连续进行变化,在时间和值的幅度上都几乎没有限制,基本上可以取任何实数值,输入与输出也呈线性变化。所以在摹拟电路中,电压和电流可直接用来进行控制对象.例如家用电器设备中的音量开关控制、采用卤素灯泡灯具的亮度控制等等。但摹拟电路有诸多的问题:例如控制信号容易随时间漂移,难以调节:功耗大:易受噪声和环境干扰等等。与摹拟电路不同,数字电路是在预先确定的范围内取值,在任何时刻,其输出只可能为
14、。,和OFF两种状态,所以电压或者电流会通/断方式的重复脉冲序列加载到摹拟负载。P间技术是一种对摹拟信号旦壬的数字编码方法,通过使用高分辨率计数器(调制频率)调制方波的占空比,从而实现对一个摹拟信号的电平进行编码。其最大的优点是从处理器到被控对象之间的所有信号都是数字形式的,无需再进行数模转换过程;而旦对噪声的抗干扰能力也大大增强(噪声惟独在强到足以将逻辑值改变时,也可能对数字信号产生实质的影响),这也是PWM在通讯等信弓传输行业得到大量应用的主要原因。摹拟信号能否使用PWM进行编码调制,仅依赖带宽,这即意味着只要有足够的带宽,任何摹拟信号值均可以采用PWM技术进行调制编码,普通而言,负载需要
15、的调制频率要高于IoHZ,在实际应用中,频率约在IkHZ到20OkHZ之间。在信号接收端,需将信号解调还原为摹拟信号,目前在不少微型处理器内部都包含有PWM控制器模块。图5PWM原理模式图2.6温度传感器2.6.1 温度传感器工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s*咸为750msDS18B20测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在一55。C所对应
16、的一个基数值计数器1对低温度系数晶振产生的脉冲信号进行减法计数当计数器1的预置值减到0时,温度寄存器的值将加1.计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到。时,住手温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。DS18B2O功能特点:1 .采用单总线技术,与单片机通信只需要一根I/O线,在一根线上可以挂接多个DS18B20o2 .每只DS18B20具有一个独有的,不可修改的64位序列号,根据序列号访问地应的器件。3 .低压供电,电源范闱从35V.可以本地供电,也可以宜接从数据线上窃取电源(寄生电源方式)。4 .测温范
17、围为-55。0+125。(3,在10。085可范困内误差为0.5。(3。5 .可编辑数据为912位,转换12位温度时何为75OmS(最大)6 .用户可自设定报警上下限温度。7 .报警搜索命令可识别和寻址哪个器件的温度超出预定值。8 .DSI8B20的分辩率由用户通过EEPROM设置为9-12位。9 .DS18B20可将检测到温度值直接转化为数字量并通过串行通信的方式与主控制器进行数据通信。DS18B20有4个主要的数据部件:10 光刻RoM中的64位序列号是出厂前被光刻好的,它可以看做是该DSl8B20的地址序列码。64位光刻Re)M的罗列是:开始8位(28H)是产品类型标号,接着的48位是该
18、DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DSI8B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。11 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625OC/LSB形式表达,其中S为符号位。12 DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM.后者存放高温度和低温度触发器TH、TL和结构寄存器。13 配置寄存器。DS18B20内部结构及
19、功能:DS18B20的内部结构如图2-4所示。主要包括:寄生电源,温度传感器,64位ROM和单总线接11,存放中间数据的高速新存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑8位循环冗余校验码(CRC)发生器等7部份61位ROM和单浅接口7 - N7-N 7-N 二/ 高速缓存存储器与控制逻辑温度传感播高温触发器TH低温触发器TL配置寄存器8位CRC发生器图24DS18B20内部结构2.6.2 DS18B20相关介绍温度的读取:DS18B20在出厂时以配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判
20、断正负。前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”后,还要做延时,其延
21、时的时间从发出的高电平算起(第(5)步的时间算起)至少要480微秒。8 .将数据线再次拉高到高电平“1”后结束。DS18B20的写操作:1 .数据线先置低电平“0”。2 .延时确定的时间为15微秒。3 .按从低位到高位的顺序发送字节(一次只发送一位)。4 .延时时间为45微秒。5 .将数据线拉到高电平。6 .重复上(1)到(6)的操作直到所有的字节全部发送完为止。7 .最后将数据线拉高。1DS18B20的读操作:1 .将数据线拉高力气2 .延时2微秒。3 .将数据线拉低“0”。4 .延时15微秒。5 .将数据线拉高力”。6 .延时15微秒。7 .读数据线的状态得到1个状态位,并进行数据处理。8
22、 .延时30微秒。263DS18B20使用中的注意事项DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用II线少等优点,但在实际应用中也应注意以下几方面的问题:1 .DS18B20从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的不然会浮现转换错误的现象,使温度输出总是显示852 .在实际使用中发现,应使电源电斥保持在5V摆布,若电源电压过低,会使所测得的温度精度降低。3 .较小的硬件开消需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等
23、高级语言进行系统程序设计时,对DS1820操作部份最好采用汇编语言实现。4 .在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此,当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这点在进行多点测温系统设计时要加以注意。5 .在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或者断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环.这一点在进行DS18B20硬件连接和软件设计时也要赋予一定
24、的重视第3章系统的软件设计采用KeiI开辟系统,使用C语言进行开辟。主要的功能有:控制LED灯的亮灭以及璀璨程度、LCD液晶显示屏显示参数、从温度传感器模块中得到输入参数等。软件由:3.1 主文件main()voidmain(SP=0x60;lcd-init0;DSJnit0;write.time;/DS12C887时何设置DS18B20JnitO;while(l)(write_string_lcd(2,0.PWM:):PWM.ini(O:/PWM初始化x=(wen.val-20.0)/0.0390625;PWMO_set(x):zkb二(x256.0)*100;crt_zkb(2,4);wr
25、ite_string_lcd(2,8,W);Wrhe_siringjcd(2,10,t:,);(crt_wendu(2,12);if(DS_C&0xl0)!=0)/显示时间crt_time(l);Delay2(l);表2主函数函数表函数名功能voidmainledinitO主程序液晶1602初始化DSinit()DS12C887初始化writetime0液晶显示时间设置DS18B20Init()温度传感器初始化while(1)函数无限循环图6主函数逻辑图3.2 波形输出PWMwrite_stringjcd(2,O,PWM:勺;PWM.initO;PWM初始化x=(wen_val-20.0)/0
26、.0390625:PWMeLSel(x);zkb=(x256.0)*100;crt_zkb(2,4);表3PWM函数表函数名功能writestringlcd(2QPWM:)写PWW字符串PWMinit()PWM初始化PWMOset(x)对PW赋予初始值crtzkb(2,4)在液晶屏显示PWM百分比3.3 LCD液晶显示屏输出控制voidIcdJnit(Void)writecmd(0x38)/writecmd(0x38)/writecmd(0x06)/writeCmd(OxOc)/writeCmd(OxOl)/*水*事*3ie*3c*冰*显示长整型数据*/voidcrti(unsignedlon
27、gdat)(BYTEdhi,dli,ddi,dei;unsignedlongdatah;unsignedlongdatal:datah二dat;dhi=O;if(datah=IO)(do(datah/=IO;dhi+;whilc(datah=10):datah二dat;ddi二dhi;for(dli=O;dlidhi;dli+)data!=Idata1*=10;for(dei=O;deiddi:dci+)datah=datdatal;dat=dat%datal:datah+=0x30;write-data(datah);ddi一;dat+=Ox3O;u-rite_data(dat);else(
28、dat=dat+Ox3O;write_data(dat);*季*浮点数显示*浜*米米来*冰.voidcrt_r(floatx,unsignedcharN)BYTEdli;unsignedintdath;unsignedintdatl;unsignedintdat;if(xO)dat=Ox2e;writc-data(dat);Dclay(I);dat=l:for(d!i=O;dliN;dli+)dat*=10;dath=(int)(x*dat)-dath*dat:for(dli=l;dli0;i-)(DS1820-DQ=0;拉低总线,产生写信号DelayXus(4);延时4usDS1820_DQ
29、=WData&OxOl;发送I位DCIayXUS(60);延时60us,写时序至少要60usDS182O_DQ=1,释放总线,等待总线恢复WDala=1;/Z准备下一位数据的传送*从DS1820中读出数据率函数名称:DSl820_ReadData()BYTEDS182O_ReadData()(BYTEiJmepData;for(i=8;i0;i-)(TmepData=l;DS1820-DQ=0;拉低总线,产生读信号DelayXus(4);延时4usDS1820.DQ=1;释放总线,准备读数据DelayXus(8);延时8微秒读数据if(DS182(LDQ=I)(TmepData=0x80;)D
30、elayXus(60);延时60usDS1820.DQ=1;拉高总线,准备卜一位数据的读取.)return(TmePData);返回读到的数据/1:* 延时n微秒程序voidDelayXus(WORDn)(whilc(-n);* 读取温度程序voidread-wendu()BYTEi;DS182CLReSeI();复位DS182(LWriteDaIa(OXCc);跳过ROM命令DS182(LWriIeData(0x44);温度转换命令DS182(LReSet();复位DS182(LWriteData(OXCc);跳过ROM命令DS1820_WriteData(0xbe);/iDS1820温度暂
31、存器命令for(i=0;i2;i+)temperaturei=DS1820_ReadData();/J集温度DS1820_Resel();t|位,结束读数据中显示温度程序voidCrt_wcndu(BYTEIinC,column)read-wendu();ah=tcmpcraturcl4;al&=OxOf;ah=ahal;al=temperature0&0x0f;if(ah&0x80)!=0)if(al=O)ah=nah;ah=ah+l;elseah=ah;al=al;al=al+l;al&=OxOf;wen.val=ah*(-l0)+al*(-0.0625);elsewenval=ah*1.
32、0+al*0.0625;SeLdiSplay_place(IinC,column);crt_r(wen_val,l);write_data(Ox2O);函数名功能VoidDS18B20Jnit()DS18B20初始化bitDS182(LReSe1()DS18B20复位函数voidDS1820WriteData(BYTEwData)写数据到DS1820BYTEDS1820_ReadData()从DS1820中读出数据voidread_wendu()读取温度程序voidcrt_wendu(BYTEline,column)显示温度程序第4章电路原理图设计根据要求,使用PrOteUS软件绘制出电路的仿
33、真图,包括主控芯片、LED灯、LCD液晶显示器、外用电路、温度传感器芯片。根据要求,在温度传感器产生变化时,P曲会产生不同的初始值。并通过PC311产生相应的占空比。在Ied液晶显示屏上显示相应的值。其中包括温度,时间,PWM百分比。第5章心得体味这是我第次做单片机课程设计,说起来有些紧张和新鲜。在此之前我并没有接触过单片机,我本以为与之前的光学实验及其它实验差不多,可我进到实验室之后,我就改变了这个看法。第、对要编写的程序不够熟悉,很长期都不能编写出想要的程序。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程设计,我的第一大心得体味就是作为一位工程技术人员,要
34、求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚毅,有足够的毅力与决心,有足够的挑战艰难的勇气,就没有什么办不到的。在这次难得的课程设计过程中我锻炼了自己的思量能力和动手能力。通过题目选择和设计电路的过程中,加强了我思量问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题.解决问题的能力。并且我们熟练掌握了有关器件的性能及测试方法。参考文献1潘永雄.新编单片机原理与应用.西安.西安电子科技大学出版社.第二版2李朝青.单片机原理及接II技术.北京航空航天大学出版社3阎石.数字电子技术基础.北京.高等教育出版社.20224兰吉昌.51单片机应用设计百例.北京:化学工业出版社5潘新民.微型计算机控制技术.电子工业出版社