




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计任务书学院专业学生姓名班级学号课程设计题目基于单片机温度控制系统设计-显示电路设计实践教学要求与任务:1) 构成单片机温度控制系统2) 显示电路设计3) 实验调试4) THFCS-1现场总线控制系统实验5) 撰写实验报告工作计划与进度安排:1) 第12天,查阅文献,构成单片机温度控制系统2) 第34天,显示电路设计3) 第56天,实验调试4) 第79天,THFCS-1现场总线控制系统实验5) 第10天,撰写实验报告指导教师:201年 月曰专业负责人:201 年 月曰学院教学副院长:201 年 月曰摘要本论文着重阐述了温度控制系统的设计方法,以 AT89C51 单片机作为主控 核心,按键
2、、数码管等较少的辅助硬件电路相结合,采用模块设计,利用软件实 现对温度进行控制。 本系统具有体积小、 硬件少、电路结构简单、 软件功能完善, 控制系统可靠,性价比较高等优点。论文主要论述了基于单片机的温度控制系统的设计过程。 主要工作如下: 重 点论证了系统方案的选择及其实现方法;全文详细论述了系统的软、硬件电路, 其中硬件部分重点介绍了单片机的基本结构和各引脚以及晶振电路、 复位电路的 工作原理,软件部分重点叙述主程序和子程序的 C 语言实现;硬件、软件电路 调试过程;所有源程序均采用 C语言编译,并在Keil uVision2软件里编译、调 试;在Proteus环境下实现软、硬件电路仿真。
3、实验结果证明了设计方案的正确 性与可行性,以此为理论基础,对我们设计彩灯电路具有很强的使用和参考价值。 关键词:温度控制系统; AT89C51 单片机;模块设计目录1 绪论 42 系统概述 52.1 设计思路 52.2 原理分析 53.系统软件设计 63.1 软件设计主要思路 63.2 显示程序流程图及其源代码 64.系统调试 94.1 软件调试 94.2 软件仿真结果及分析 10结束语 11附录 121 绪论在工业自动化高度发达的今天,对一些过程控制要求很高。传统的度监控一 般都采用模拟电路设计。其缺点是:转换速率低,实时性差。抗干扰能力弱,特 别是在高频电路中,很容易产生自激。而采用单片机
4、控制能很好弥补以上缺点。 a) 精度高,实时性强,能及时发现问题。b) 采用数字电路,抗干扰能力强。单片微型计算机简称单片机,又称为微控制器( MCU ),它的出现是计算机 发展史上的一个重要里程碑, 它以体积小、 功能全、 性价比高等诸多优点而独具 特色。随着社会的发展、 科技的进步, 各种方便于生活的自动控制系统开始进入 了人们的生活,以单片机为核心的控制系统就是其中之一。本温控系统主要 以 AT89C51 单片机作为主控核心, 18B20 温度传感器和 MAX7219 驱动芯片为辅以及按键、数码管等较少的其它辅助硬件电路相结合, 采用模块设计,利用软件实现对温度进行控制。本系统具有体积小
5、、硬件少、电 路结构简单、软件功能完善,控制系统可靠,性价比较高等优点。2系统概述2.1设计思路运用单片机AT89C2051对可编程数字温度传感器 DS18B2C进行编程控制,采 集实时温度。通过数码管显示该温度。并设置相应的默认工作温度,当实际温度 小于默认工作温度,启动加热装置。另外,通过一些按键,可以调节工作温度, 以便适合不同的场所需求。2.2原理分析图2-2-1温度监控器结构如图1所示,首先,由单片机送出温度传感器的初始化控制信号,温度传感 器进行复位操作。接着发出读温度命令,温度传感器开始工作。并将采集到的温 度信号以十六进制代码形式通过 AT89C2051引脚送到单片机内部。经过
6、软件将温 度信号送到MAX7219并在数码管上显示。同时,将采集的温度与设定默认温度比较,并通过AT89C205啲P1.4端口控制继电器是否工作。此外,通过外部中 断程序调节默认设定温度。3.系统软件设计3.1 软件设计主要思路本系统主要有四部分组成,即温度采集环节,显示环节,继电器控制环节以 及调节环节。因此程序也主要由以上四部分组成。程序首先开外中断 1,并设置相关参数,其次,测试数码管显示。然后进入 一个死循环, 即每个三秒用 18B20 采集一次温度, 然后用 MAX7219 驱动数码管 显示采集温度的温度。 与此同时, 每次采集得到的温度都要与已设定温度进行比 较,如果温度小于设定温
7、度,那么接通继电器,是加热装置工作,否则不工作。为了保证调节的灵敏度,故把调节部分放到中断之中。当程序进入中断,那 么就可以通过按键增加或减小设定的默认温度, 即继电器工作的零界温度。 由此 完成了整个温度控制系统的设计。3.2 显示程序流程图及其源代码3.2.1 显示程序流程图本子程序主要通过 MAX7219 驱动数码管显示温度的。首先获取要现实的数 据,判断数据是否大于零,如果大于 0,贝U symbol=0;否则symbol=1,并取反 且在第一位数码管中显示负号。然后,所得到的数据进行处理,并得到个位,十 位及小数点后一位,将这些数据送入 MAX7219 中在后三位显示。如图 5:图3
8、-2-1显示程序流程图3.2.2显示程序部分源代码/*向MAX7219写入一个字节数据*/void Sen dchar(uchar ch)uchar i,code1;_nop_();_nop_();_nop_();for(i=0;i8;i+)code1=ch&0x80;ch=ch1;if(code1)DIN=1;CLK=0;CLK=1;elseDIN=0;CLK=0;CLK=1;/*向 MAX7219 写入一个字( 16 位)*/ void Sendword(uchar addr,uchar number) LOAD=0;_nop_();_nop_();_nop_();Sendchar(add
9、r);_nop_();_nop_();_nop_();Sendchar(number);_nop_();_nop_();_nop_();LOAD=1;/*MAX7219 初始化 */void Start()Sendword(Scanbit,Scannum);Sendword(Decode,Demode);Sendword(Light,Lightgrade);Sendword(Lowpower,Norpw);详细程序见附录4.系统调试4.1 软件调试4.1.1 单片机 C 语言单片机 C 语言程序设计不同于通用计算机应用程序设计,它必须针对具 体的微控制器及外围电路来完成,为了便于学习单片机应用
10、程序设计和系统开 发,很多公司退出了单片机实验箱、 仿真器和开发板等, 这些硬件设备可用于验 证单片机程序,开发和调试单片机应用系统。开发 8051 单片机系统时,使用 C 语言会使开发周期大为缩短, 开发效率大幅提高, 程序可读性好且易于移植, 所 以使用C语言开发单片机系统已经成为必然趋势17 C语言在单片机系统开发 中的优势: 用 C 语言编写的程序可读性强; 在不了解单片机指令系统而仅熟悉 8051 单片机存储结构时就可以开 发单片机程序; 寄存器分配和不同存储器寻址及数据类型等细节可由编译器管理; 程序可分为多个不同的函数,这使程序设计结构化; 函数库丰富,数据处理能力强; 程序编写
11、及调试时间大大缩短,开发效率远高于汇编语言; C 语言具有模块化编程技术,已编写好的通用程序模块很容易植入新 程序,这进一步提高了程序开发效率。4.1.2 Keil uVision4C51单片机支持HEX文件,我采用的编译器是 Keil uVision2软件,该软 件是美国 Keil Software 公司开发的,关于 8051 系列 MCU 的开发工具,是目前 世界上最好的 51 单片机开发工具之一。 软件本身支持数百种 51 系列单片机芯片, 可以用来编译 C 源码,汇编源程序以及两者的混合编程代码,连接重定位目标 文件和库文件,创建 HEX 文件,调试目标程序等,是一种集成化的文件管理编
12、 译环境。4.2 软件仿真结果及分析完成单片机系统仿真电路图设计后, 即可开始仿真运行单片机绑定的程序 文件,双击单片机,打开单片机属性窗口(也可以先在单片机上单击右键,再单 击左键,或者选中单片机后按下(Ctrl+E组合键),在“ Program Files”项中选 择对应的 HEX 文件。在仿真电路和程序都没有问题时,直接单击Proteus 主窗口下的“运行”(Play)按钮,即可仿真运行单片机系统,在运行过程中如果希望观察内存、24C0X、温度寄存器、时钟芯片等内部数据可在运行时单击“单步”(Step)或“暂停”(Pause按钮,然后再“调试” (Debug)菜单中打开相应设备。如果要观
13、察仿真电路中某些位置的电压或波形等, 可向电路中添加相应的 虚拟仪器,例如,电压表、示波器等。结束语通过本次的设计,使我了解了 51 系列单片机的基本工作原理。以及对其编 程的技巧和注意事项等。 对自动控制原理有了一个新的认识, 学到许多书本上没 有的知识。 特别是实际动手方面的能力。 在此过程中也 遇到很多的困难, 经过 自己的思考,翻阅资料及老师耐心的讲解问题都 得到了解决。并且把这些经历 作为宝贵的经验记录了下来。 以便以后查阅。 使我学以至用, 把书本与实际联系 起来。为我们今后的发展打下了坚实的基础。附录基于单片机的温控系统完整程序代码/规定默认设定温度为 T0=50 度, K0 键
14、为开始设置键, K1 键为加一度键, K2 键为减一度键#include/MAX7219 端口定义#include#define uchar unsigned char#define uint unsigned intsbit DIN=PMO;sbit CLK=P1A1;sbit L0AD=PM2;sbit JIDIANQI=P2A7;/ 继电器接口sbit KO=P3A2;sbit K1=P1A5;sbit K2=P1A6;sbit K3=P1A7;sbit DQ =P3A3; /DS18B20定义单片机数据引脚#define Noop OxOO#define reg0 0x01#defin
15、e reg1 0x02#define reg2 0x03#define reg3 0x04#define Decode0x09#define Light0x0a#define Scanbit0x0b#define Lowpower0x0c#define DisplayTest 0x0f#define Lowpw 0x00#define Norpw 0x01#define Scannum 0x03 #define Demode 0xff #define Lightgrade 0x0a #define Teststart 0x01 #define Testend 0x00 uchar DisBuf
16、fer4=0,0,0,0;unsigned int temperature; uchar symbol;unsigned int T_MOREN=0x28; / 规定默认设定温度为 T0=40 度 unsigned int T_time;unsigned char key_s, key_v;void delay(unsigned int i) /延时程序while(i-);Init_DS18B20(void) /DS18B20 复位初始化 unsigned char x=0;DQ = 1; delay(8);DQ = 0; delay(80);DQ = 1; delay(14); x=DQ;
17、delay(20); ReadOneChar(void) /读 DS18B20 的程序 unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-)DQ = 0; dat=1;DQ = 1; if(DQ) dat|=0x80; delay(4);return(dat);WriteOneChar(unsigned char dat) /写 DS18B20 的子程序unsigned char i=0;for (i=8; i0; i-)DQ = 0;DQ = dat&0x01; delay(5);DQ = 1;dat=1;ReadTemperat
18、ure(void) /从 DS18B20 中读出两个字节的温度数据 unsigned char a=0;unsigned char b=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0xCC);WriteOneChar(0x44);Init_DS18B20();WriteOneChar(0xCC);WriteOneChar(0xBE); a=ReadOneChar(); b=ReadOneChar(); t=b;t=8; /进行精度转换t=t|a; if(t0x0fff)symbol=0;elset=t+1; symbol=1;temperatu
19、re=t*0.625; return(temperature);/* 向 MAX7219 写入一个字节数据 */void Sendchar(uchar ch)uchar i,code1;_nop_();for(i=0;i8;i+) code1=ch&0x80; ch=ch1;if(code1)DIN=1;CLK=0;CLK=1;elseDIN=0;CLK=0;CLK=1;/*向 MAX7219 写入一个字( 16 位)*/ void Sendword(uchar addr,uchar number) LOAD=0;_nop_();Sendchar(addr);_nop_();Sendchar(
20、number);_nop_();LOAD=1;/*MAX7219 初始化 */void Start()Sendword(Scanbit,Scannum);Sendword(Decode,Demode);Sendword(Light,Lightgrade);Sendword(Lowpower,Norpw);/温度显示void text_start() /第一次使用数码管测试Start();Sendword(DisplayTest,Teststart); delay(3000000);Sendword(DisplayTest,Testend); temperature_view(uint temp
21、erature_x)DisBuffer1=temperature_x/100;DisBuffer2=(temperature_x%100)/10;DisBuffer3=temperature_x%10; if(symbol=0) DisBuffer0=0x0f;else DisBuffer0=0x0a; if(DisBuffer1=0x00)DisBuffer0=0x0f;if(DisBuffer1=0x00)DisBuffer1=0x0f;Sendword(reg0,DisBuffer0);Sendword(reg1,DisBuffer1);Sendword(reg2,DisBuffer2);Sendword(reg3,DisBuffer3);void delayms(uint ms)/ 延时子程序 ,单位为 msunsigned char i;while(ms-)for(i = 0; i 120; i+);bit scan_key()key_s = 0x00;key_s |= K3;key
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 应用型卓越医学人才培养的现状及总体形势
- 新型城乡融合发展与闲置资源协同利用
- 构筑幸福社区
- 工业机械智能化趋势
- 心灵之旅的文学探索
- 四年级道德教育探析
- 2025版特殊商品购销合同
- 2025年专用X射线机项目立项申请报告模板
- 2025至2030年中国户外暖炉设备行业投资前景及策略咨询报告
- 道教全真派试题及答案
- (2.6.1)-6.《一日长与百年》
- GB/T 12250-2005蒸汽疏水阀术语、标志、结构长度
- 1kV交联铠装电力电缆主要技术参数及载流量表
- 婚介所个人资料登记表格
- 注册安全工程师安全生产技术培训课件
- 电商仓库流程及诊断
- 施工场地平整施工方案
- 202x检察院工作总结汇报、述职报告PPT模板
- YYT 1182-2020 核酸扩增检测用试剂(盒)
- GB∕T 33212-2016 锤上钢质自由锻件 通用技术条件
- 高效液相色谱法分析(三聚氰胺)原始记录1
评论
0/150
提交评论