已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ARM7的温度控制器的设计学院电气学院班级11自一_姓名杜康_学号11020505指导老师王崴基于ARM7的温度控制器的设计2目录一、简介41单片机的发展历程42STM32系列单片机43DS18B20温度传感器5二、总体方案设计71主要功能72设计要求7三、最小系统的设计71唤醒电路82晶振延时电路及复位电路8四、系统硬件分析与设计91系统框图92各模块电路图103元器件111STM32F103RBT632位单片机112TFTLCD液晶123其他元器件13五、系统软件程序设计13基于ARM7的温度控制器的设计31按键控制子流程图142TFTLCD显示子流程图153主流程图16六、仿真与调试171软件调试172下载代码,软硬件联调18七、个人总结20八、参考文献21九、附录221系统电路原理图222程序清单23基于ARM7的温度控制器的设计4一、简介1单片机的发展历程典型的微型计算机包括运算器、控制器、存储器、I/O接口四个基本组成部分。如果在一块芯片上,集成了一台微型计算机的四个基本组成部分,这种芯片就被称为单片微型计算机(SINGLECHIPMICROCOMPUTER),简称单片机。单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补。纵观单片机的发展过程,可以看出单片机的发展普遍呈现微型单片化、低功耗CMOS化、主流与多品种共存的趋势。九十年代以后,单片机在结构上采用双CPU或内部流水线,CPU位数有8位、16位、32位,时钟频率高达20MHZ,片内带有PWM输出、监视定时器WDT、可编程计数器阵列PCA、DMA传输、调制解调器等。芯片向高度集成化、低功耗方向的发展,使得单片机在大量数据的实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网等方面得到大量应用。2STM32系列单片机传统的单片机(如51)使用的是复杂指令集(CISC,且不具备指令流水线;ARM使用的是精简指令集RISC,而且使用了三级流水基于ARM7的温度控制器的设计5线。这使得ARM的制造成本和运行效率相对51有着明显的优势。传统的单片机一般都是8位机。随着信息量的增加,我们会越来越多的需要处理超过8位以上的数据。以32BIT数据的加减法为例,51需要多次处理,而在ARM中只需要1个指令即可。基于ARM内核的芯片种类越来越多,器外围接口(UART/SPI/IIC/USB/CAN/BUS/LCDC,内部一般都加入了DMA,进一步提升了性能。给用户提供了很大的选择空间。典型的如STM32系列单片机。STM32系列32ARM单片机重塑了微控制器市场,克服了应用32位系统的所有障碍,是第一个由半导体厂商提供的基于ARMCOTEXM3的为控制器系列。STM32系列单片机为微控制器的用户带来了全新的自由度。它拥有先进的性能,出色的功耗效率,一流的外设,最大化的集成度,最佳的代码紧凑性,大范围的存储容量选择,最佳的工具与软件平台。3DS18B20温度传感器DS18B20是由DALLAS半导体公司推出的一种的“一线总线”接口的温度传感器。与传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。一线总线结构具有简洁且经济的特点,可使用户轻松地组建传感器网络,从而为测量系统的构建引入全新概念,测量温度范围为55125,精度为05。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9L2位的数字值读数方式。它工作在355V的电压范围,采用多种封装形式,从而基于ARM7的温度控制器的设计6使系统设计灵活、方便,设定分辨率及用户设定的报警温度存储在EEPROM中,掉电后依然保存。其内部结构见下图高温触发器TH存储器与控制逻辑64位ROM和单线接口高速缓存温度传感器低温触发器TL配置寄存器八位CRC发生器I/OVDD图11DS18B20内部结构图ROM中的64位序列号是出厂前被光记好的,它可以看作是该DS18B20的地址序列码,每DS18B20的64位序列号均不相同。64位ROM的排列是前8位是产品家族码,接着48位是DS18B20的序列号,最后8位是前面56位的循环冗余校验码CRCX8X5X41。ROM作用是使每一个DS18B20都各不相同,这样就可实现一根总线上挂接多个。所有的单总线器件要求采用严格的信号时序,以保证数据的完整性。DS18B20共有6种信号类型复位脉冲、应答脉冲、写0、写1、读0和读1。所有这些信号,除了应基于ARM7的温度控制器的设计7答脉冲以外,都由主机发出同步信号。并且发送所有的命令和数据都是字节的低位在前。DS18B20的典型温度读取过程为复位,发SKIPROM命令(0XCC),发开始转换命令(0X44),延时,复位,发送SKIP,ROM命令(0XCC),发读存储器命令(0XBE),连续读出两个字节数据即温度结束。二、总体方案设计1主要功能功能实现开机后能够检测到当前环境温度并实时送到LCD液晶屏上显示出来,按升温按键,电机正转;按降温按键,电机反转。LED指示灯不断闪烁,表明单片机正在执行当前程序。2设计要求开机的时候先检测是否有DS18B20存在,如果没有,则提示错误。当检测到DS18B20之后才开始读取当前环境温度并显示在LCD上,如果发现了DS18B20,则程序每隔200MS左右读取一次数据,并把温度显示在LCD上。按下相应按键,可以控制电机正转或反转。三、最小系统的设计1唤醒电路基于ARM7的温度控制器的设计8图12唤醒电路的设计按下WK_UP按键,即可实现唤醒控制器开始工作。2晶振延时电路及复位电路图13晶振延时电路图14复位电路Y1、Y2、C3、C4、C5、C6、R4等共同构成了外部振荡电路,Y1选择32768KHZ,Y2选择8MHZ,C3、C4、C5、C6均取22PF。复位信号从单片机的NRST引脚输入,按下复位键,即可使单片机复位。复位操作有上电复位和手动复位两种,本次采用手动复位电路。四、系统硬件分析与设计1系统框图基于ARM7的温度控制器的设计9DS18B20数字温度传感器STM32F103RBT632位单片机按键控制TFTLCD液晶显示屏LED指示灯复位电路图15系统总体框图2各模块电路图1温度检测模块图16基于DS18B20的温度检测模块电路2按键控制模块基于ARM7的温度控制器的设计10图17按键控制模块电路3液晶显示模块图18TFTLCD液晶显示模块电路4LED指示灯图19LED指示灯模块电路基于ARM7的温度控制器的设计115电机控制电路图20电机控制H桥电路3元器件1STM32F103RBT632位单片机本次使用的单片机采用LQFP64封装,其芯片内部集成了USB外设,大大减轻了USB电路设计的负担,只需设计USB接口电路,就可以实现基于STM32电路板的USB通信设计,是一款集32位MCU、USB、CAN、7个16位定时器、两个ADC和9个通信接口的芯片。它具有低功耗、直接存储器存取、多达80I/O快速端口等很多性能方面的优势。基于ARM7的温度控制器的设计12图21STM32F103RBT632位ARM引脚排列图2TFTLCD液晶本次使用的是TFTLCD,其引脚排列为1号引脚为片选信号输入,2、3、4号分别为RS、WR和RD,5号引脚为复位端,时钟信号为34号引脚,621为DB1DB17等。采用DB_LCD封装。基于ARM7的温度控制器的设计13图22LCD引脚排列图3其他元器件五、系统软件程序设计1按键控制子流程图基于ARM7的温度控制器的设计14开始初始化按键扫描过程开始有键按下按键处理,电机启动调整温度是否LCD显示温度值T基于ARM7的温度控制器的设计152TFTLCD显示子流程图开始是否有程序执行否是LCD显示T是否有键按下是否LCD显示调整后的温度T结束3主程序流程图基于ARM7的温度控制器的设计16开始初始化扫描复位电路复位键是否按下是单片机复位否检测DS18B20是否存在提示错误否是读取当前环境温度按键是否有按下否是调整温度值T每隔200MS,显示一次温度值LED闪烁基于ARM7的温度控制器的设计17六、仿真与调试1软件调试打开KEILFORARM,进入软件操作界面。新建NEWPROJECT,选择单片机型号为STM32F103RBT6,生成TARGET1SOURCEGROUP1,新建FILE,写入C语言代码,添加到SOURCEGROUP1,选择好各种配置文件,勾选“CREATEHEXFILE“,选择PROJECTREBUILDALLTARGETS进行编译程序,若有错误则纠错到”0ERRORS,0WARNING(S)“为止。图23本次程序编译结果2下载代码,软硬件联调安装USB串口驱动CH340,安装完成后再安装STMISP下载器MCUISP。安装成功后,打开MCUISP软件,点击搜索串口,即可找到已经安装好的USBSERIALCH340串口。点击读器件信息,若前面操作均无错误,那么会看到软件提示“命令执行完毕,一切正常”,如下图所示情况。基于ARM7的温度控制器的设计18图23器件信息读取正常然后将在MDK里已经生成的HEX文件装载到MCUISP中,如下图所示。图24载入HEX文件点击“开始编程”,并把“编程后执行”勾选中。编程完毕如下图所示。图25编程完成程序运行结果如下图所示基于ARM7的温度控制器的设计19基于ARM7的温度控制器的设计20七、个人总结通过本次温控器的设计,我体会到“书到用时方恨少”的道理,从书本上学到的知识对于我们实践来说,是远远不够的。查阅资料和阅读相关文献是非常重要的。我们必须学会怎样查找资源,利用资源,整合资源,从资源中获得我们需要的东西。我们还要更全面地了解单片机的功能,如何应用单片机,各系列单片机的优缺点,适应范围。遇到不会的内容要虚心向别人请教,但同时不能过分依赖别人,本次课程设计我单人完成的,所以更能锻炼我个人解决问题的能力。对待任何事情都要有耐心,遇到问题要冷静地思考,不要程序有错误或者硬件调试不成功就急躁,慌乱,仔细地分析问题出在哪里,一步一步解决问题,直至调试成功。我更深刻的认识到了实践在大学课程中的重要性,书本是实践的基础,学好书本知识,才能更好地应用于实践,而实践反过来又能巩固和检验我们到底学的扎不扎实,同时我也发觉到了自己在学习方面存在的许多不足之处,在以后的学习中我会努力改进这些不足,不断提高自己的动手实践能力。基于ARM7的温度控制器的设计21八、参考文献周立功,ARM嵌入式系统基础教程M北京航空航天大学出版社,200809周立功,ARM嵌入式系统实验教程M北京航空航天大学出版社,200510刘军、张洋,例说STM32第二版M北京航空航天大学出版社,201406张齐,单片机原理与应用系统设计M电子工业出版社,200901钱显毅、钱爱玲,传感器原理与应用M中国水利水电出版社,201302徐爱均、徐阳,智能化测量控制仪表原理与设计M北京航空航天大学出版社,201203基于ARM7的温度控制器的设计22九、附录1系统电路原理图2程序清单主程序INCLUDE“LEDH“INCLUDE“DELAYH“INCLUDE“SYSH“INCLUDE“USARTH“INCLUDE“LCDH“INCLUDE“DS18B20H“INCLUDE“KEYH“INTMAINVOIDU8T0SHORTTEMPERATURESHORTWENDUSHORTXIANSHIDELAY_INIT/延时函数初始化UART_INIT9600/串口初始化为9600LED_INIT/初始化与LED连接的硬件接口基于ARM7的温度控制器的设计23LCD_INITKEY_INITPOINT_COLORRED/设置字体为红色LCD_SHOWSTRING60,50,200,16,16,“DESIGNBYDK“LCD_SHOWSTRING60,70,200,16,16,“DS18B20TEST“LCD_SHOWSTRING60,90,200,16,16,“FROMCIT“LCD_SHOWSTRING60,110,200,16,16,“2014/10/10“WHILEDS18B20_INIT/DS18B20初始化LCD_SHOWSTRING60,130,200,16,16,“DS18B20ERROR“DELAY_MS200LCD_FILL60,130,239,13016,WHITEDELAY_MS200LCD_SHOWSTRING60,130,200,16,16,“DS18B20OK“POINT_COLORBLUE/设置字体为蓝色LCD_SHOWSTRING60,150,200,16,16,“TEMPC“WHILE1IFT1000/每1S读取一次TEMPERATUREDS18B20_GET_TEMPWENDUTEMPERATUREIFWENDUAPB2ENR|1APB2ENR|1CRL/PA0设置成输入GPIOACRL|0X00000008GPIOACRH/15设置成输入GPIOACRH|0X80000000GPIOAODR|1CRLGPIOCCRL|0X00800000GPIOCODR|1KEY1KEY2U8KEY_SCANU8MODESTATICU8KEY_UP1/按键按松开标志IFMODEKEY_UP1IFKEY_UP/去抖动KEY_UP0IFKEY00RETURNKEY0_PRESELSEIFKEY10RETURNKEY1_PRESELSEIFWK_UP1RETURNWKUP_PRESELSEIFKEY01基于ARM7的温度控制器的设计25RETURN0/无按键按下LCD显示子程序VOIDLCD_SHOWXNUMU16X,U16Y,U32NUM,U8LEN,U8SIZE,U8MODEU8T,TEMPU8ENSHOW0FORT0T/判断是不是非法字符IFXWIDTHXX0YSIZEIFYHEIGHTBREAK/退出LCD_SHOWCHARX,Y,P,SIZE,0XSIZE/2P基于ARM7的温度控制器的设计26DS18B20配置子程序/复位DS18B20VOIDDS18B20_RSTVOIDDS18B20_IO_OUT/SETPA0OUTPUTDS18B20_DQ_OUT0/拉低DQDELAY_US750/拉低750USDS18B20_DQ_OUT1/DQ1DELAY_US15/15US/等待DS18B20的回应/返回1未检测到DS18B20的存在/返回0存在U8DS18B20_CHECKVOIDU8RETRY0DS18B20_IO_IN/SETPA0INPUTWHILEDS18B20_DQ_INELSERETRY0WHILEDS18B20_DQ_INRETURN0/从DS18B20读取一个位/返回值1/0U8DS18B20_READ_BITVOID/READONEBITU8DATADS18B20_IO_OUT/SETPA0OUTPUTDS18B20_DQ_OUT0DELAY_US2DS18B20_DQ_OUT1DS18B20_IO_IN/SETPA0INPUTDELAY_US12基于ARM7的温度控制器的设计27IFDS18B20_DQ_INDATA1ELSEDATA0DELAY_US50RETURNDATA/从DS18B20读取一个字节/返回值读到的数据U8DS18B20_READ_BYTEVOID/READONEBYTEU8I,J,DATDAT0FORI1I1RETURNDAT/写一个字节到DS18B20/DAT要写入的字节VOIDDS18B20_WRITE_BYTEU8DATU8JU8TESTBDS18B20_IO_OUT/SETPA0OUTPUTFORJ1J1IFTESTBDS18B20_DQ_OUT0/WRITE1DELAY_US2DS18B20_DQ_OUT1DELAY_US60ELSEDS18B20_DQ_OUT0/WRITE0DELAY_US60DS18B20_DQ_OUT1DELAY_US2基于ARM7的温度控制器的设计28/开始温度转换VOIDDS18B20_STARTVOID/DS1820STARTCONVERTDS18B20_RSTDS18B20_CHECKDS18B20_WRITE_BYTE0XCC/SKIPROMDS18B20_WRITE_BYTE0X44/CONVERT/初始化DS18B20的IO口DQ同时检测DS的存在/返回1不存在/返回0存在U8DS18B20_INITVOIDGPIO_INITTYPEDEFGPIO_INITSTRUCTURERCC_APB2PERIPHCLOCKCMDRCC_APB2PERIPH_GPIOA,ENABLE/使能PORTA口时钟GPIO_INITSTRUCTUREGPIO_PING
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭深度保洁作业操作流程规范
- 养殖废弃物资源化利用制度
- 健康咨询服务问诊话术规范
- 甘薯脱毒苗繁育体系构建方案
- 骨密度检测数据分析指引
- 生态破坏应急调查处理办法
- 淋巴排毒理疗标准流程
- 周年庆活动策划方案执行手册
- 肉牛犊牛断奶补饲饲养管理规范
- 突发环境事件专项应急预案
- 2024年新高考I卷数学高考试卷(原卷+答案)
- 入团考试团校考试题及答案
- 衣食住行见证改革开放时代变迁-(修订)
- 2024购房按揭合同
- 《建筑结构加固工程施工质量验收规范》
- CJT 297-2016 桥梁缆索用高密度聚乙烯护套料
- CJ/T 125-2014 燃气用钢骨架聚乙烯塑料复合管及管件
- 统编版2024年新版七年级上册历史第二单元测试卷(含答案)
- 教学课件-轴承及其画法课件讲解
- 医疗器械质量安全风险会商管理制度
- 视野报告简单分析-课件
评论
0/150
提交评论