基于单片机的单总线多点的温度控制论文_第1页
基于单片机的单总线多点的温度控制论文_第2页
基于单片机的单总线多点的温度控制论文_第3页
基于单片机的单总线多点的温度控制论文_第4页
基于单片机的单总线多点的温度控制论文_第5页
已阅读5页,还剩17页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要设计了以80C552单片机为核心的工件热处理控制系统。该系统以80C552单片机为核心,配备信号调理电路、温度采集单元、信号输出电路和键盘/显示单元等部分。工作时,电炉温度产生的电压模拟信号由温度传感器采集。信号经放大滤波后送80C552单片机处理,控制电炉电热丝电源的输出。实际结果表明,该控制系统的设计方案合理可行,具有成本低、操作简单灵活、可靠性高等优点。关键词80C552 热处理温控目录1 简介 42 组件信息 52.1 芯片原理 52.2 芯片介绍 63 系统分析. . 113.1 需求背景. 113.2 芯片选择 114 硬件设计. 124.1 Protues仿真电路图 125

2、软件设计. 13参考文献. . 14附录 1 源代码. . 15附录 2 零件清单. 26基于单片机的单总线多点温度控制介绍研究意义随着新技术的不断发展和应用,单片机近年来发展非常迅速,新一轮基于微机应用的新技术革命正在蓬勃发展。石油等行业。传统的温度采集方法不仅费时费力,而且精度差。单片机的出现使得温度采集和数据处理问题得到很好的解决。温度是工业对象中一个重要的受控参数。但所采用的测温元件和测量方法也不同;产品的工艺不同,控温的精度也不同。因此,数据采集的准确性和使用的控制方法也不同。随着国民经济的发展,人们需要对各种加热炉、热处理炉、反应炉和锅炉的温度进行监测和控制。采用单片机对其进行控制

3、,不仅具有控制方便、简单、灵活等优点,而且可以大大提高被控温度的技术指标,从而大大提高产品的质量和数量。2.组件信息2.1 芯片原理该系列单片机为高性能静态80C51,采用先进的CMOS工艺设计,具有非易失性Flash程序存储器,均支持12时钟和6时钟操作。定时器/计数器 6 输入 4 优先级嵌套中断结构 1 串行 I/O 端口 可用于多机通信 I/O 扩展或带片上振荡器和时钟电路的全双工 UART。此外,由于器件的静态设计提供了低至 0 的宽工作频率范围,两种软件可选的省电模式,空闲模式和掉电模式,空闲模式冻结 CPU,但 RAM 定时器串口和中断 系统仍然工作。掉电模式会保留 RAM 容量

4、,但会冻结振荡器,导致所有其他片上功能停止运行。由于设计是静态的,因此可以停止时钟而不会丢失用户数据。操作可以从时钟停止的地方恢复。表 1.1 选型表80C51核心处理单元4k字节闪存89C51X28k字节闪存89C52X216k字节闪存89C54X232k字节闪存89C58X2128字节RAM 89C51X2256字节RAM 89C52X2/54X2/58X2布尔处理程序全静态运行12 个时钟操作,可选6 个时钟(通过软件或并行编程器)内存地址范围 64Kbytes ROM和64Kbytes RAM _ _电源控制模式时钟可以停止和恢复- 空闲模式掉电模式两个工作频率范围 0到20MHz,6

5、时钟模式在 12时钟模式下为0至33MHzLQFP、PLCC或DIP封装扩展温度范围双数据指针3个加密位4个中断优先级6个中断源4 个 8位I/O端口全双工增强型UART帧数据错误检测自动地址识别3个 16位定时器/计数器T0 T1标准80C51并添加了T2捕获和比较可编程时钟输出异步端口复位低EMI(在6时钟模式下禁用ALE )通过外部中断唤醒的掉电模式2.2 芯片介绍表 1.2 数字含义下表显示了工作模式电源电压和最大外部时钟频率之间的关系表 1.3 电压与时钟频率的关系图 1.1 框图(CPU)图 1.2 逻辑符号图 1.3 引脚功能表 1.4 引脚说明表 1.5 引脚说明(续)三、系统

6、分析3.1 需求背景本设计以单片机为核心进行控制。单片机具有集成度高、通用性好、功能强等独特优势,特别是体积小、重量轻、能耗低、可靠性高、抗干扰能力强、使用方便等优点,在数字和智能方面。 .本系统使用的单片机8052拥有128K RAM,温度控制更加容易。本设计采用8052作为主控芯片。 8052的接口电路包括ADC0809等芯片。 ADC0809是温度测量电路的输入接口。3.2 元件选择AT89C52ADC0809引领说话按钮4.硬件设计4.1 仿真电路图LCD的控制端接P2口,数据口接P0口。此外,还增加了两个 LED 灯和四个独立按钮。图 1.4 Protues 仿真电路图5. 软件设计

7、void delay(int)延迟函数提供硬件和源代码之间的同步该函数根据每条语句运行的时间实现延时功能voidLCD_write_instruction (unsigned char)写指令函数将命令写入 LCDvoidLCD_write_data (unsigned char)写数据函数向 LCD 写入数据void main()主函数键盘的检测和LCD的显示都在功能中。LCD 每按一次键,就会显示相应的信息并反馈给操作者。 LCD可以直接通过字符参考显示,不用自己拿字体,每个移动的位置都已经指定。参考:1闫玉德于红,MCS-51单片机原理与应用,机械工业,2008 2周明、钱峰,微机原理与

8、接口技术,电子科技大学,2006附录1/*液晶模组/*液晶模组#define LCD_DATA P1 /LCD数据端口位 LCD_BUSY=LCD_DATA7; /LCD忙信号位位 LCD_RS=P20; /LCD寄存器选择位 LCD_RW=P21; /LCD读写控制位 LCD_EN=P22; /LCD使能信号void LCD_check_busy(void) /检测LCD状态而(1)LCD_EN=0;LCD_RS=0; /指令寄存器通信LCD_RW=1; /读取数据LCD_DATA=0 xff;LCD_EN=1; /EN=1,执行当前操作如果(!LCD_BUSY)中断; / D7=0,空闲L

9、CD_EN=0;void LCD_cls(void) /LCD清屏LCD_check_busy();LCD_RS=0; /指令寄存器通信LCD_RW=0; /写入数据LCD_DATA=1; /D0=1,清屏LCD_EN=1;LCD_EN=0;void LCD_write_instruction(unsigned char LCD_instruction) /写指令到LCDLCD_check_busy();LCD_RS=0;LCD_RW=0;LCD_DATA=LCD_指令;LCD_EN=1;LCD_EN=0;void LCD_write_data(unsigned char LCD_data)

10、/输出一个字节的数据到LCDLCD_check_busy();LCD_RS=1; /数据寄存器通信LCD_RW=0;LCD_DATA=LCD_数据;LCD_EN=1;LCD_EN=0;void LCD_set_position(unsigned char x) /LCD光标定位在xLCD_write_instruction(0 x80+x); /0 x000 x27:第一行; 0 x400 x67:第二行void LCD_printc(unsigned char lcd_data) /输出一个字符到LCDLCD_write_data(lcd_data);void LCD_prints(unsi

11、gned char *lcd_string) /输出一个字符串到LCD无符号字符 i=0;while(lcd_stringi!=0 x00) /0 x00: 字符串终止符LCD_write_data(lcd_stringi);我+;void LCD_initial(void) /初始化LCDLCD_write_instruction(0 x3c);/D7D5=001:FUNCTION SET:8bit,2line,5*10dotLCD_write_instruction(0 x0c);/D7D3=00001:ON/OFF:开启显示,无光标,LCD_write_instruction(0 x06

12、);/D7D3=000001:ENTRY MODE:add.increment,no shiftLCD_cls();/* LCD模块结束/*ADC0809.C主程序#include “reg51.h”#包括“lcd.h”/0809 各控制线位点=P17;位ST=P30;位 OE=P31;sbit EOC=P32;/按钮sbit add=P37;位子=P25;位设置=P26;sbit 输入=P27;/冷/热开关sbit冷=P23;sbit 热=P24;无符号字符 b6=0,0,0,0,0,0;/放现场温度并设置温度显示代码无符号字符通道=0 xbc;/1011 1100,ABC=110 选择第三

13、个通道并使ST=0,OE=0 输出数据线处于高阻状态,EOC=1。无符号整数 getdata,标志,计数;/getdata:广告采样值; flag:温度符号; count:中断计数器长整数值;/广告数据转换值(电压)国际温度,set_temp=28;/temp:现场温度; set_temp:设置温度(默认 28)/ 延迟无效延迟(n)无符号整数 i;for(i=0;in;i+);/显示实际温度;入口参数=标志,温度;出口参数=温度显示代码bj无效 show_temp(无符号整数 n)无符号字符 j;b2=温度/10+0;b3=温度%10+0;if(n=1)/正温度LCD_set_positio

14、n(0 x09);/从第一行第10列开始显示LCD_prints(+);LCD_set_position(0 x0a);/从第一行第11列开始显示for(j=2;j4;j+)LCD_printc(bj);else /负温度LCD_set_position(0 x09);/从第一行第10列开始显示LCD_prints(-);LCD_set_position(0 x0a);/从第一行第11列开始显示for(j=2;j4;j+)LCD_printc(bj);/显示设定温度,入口参数= set_temp;出口参数=温度显示代码bi无效的 show_set()无符号字符 i;b4=set_temp/10

15、+0;b5=set_temp%10+0;LCD_set_position(0 x4a);for(i=4;i3)st_s=1;LCD_printc(st_s+0);if(sub=0)dely(100);if(sub=1)st_s-;if(st_s9)st_g=0;LCD_printc(st_g+0);if(sub=0)dely(100);if(sub=1)st_g-;if(st_g电压-温度/入口参数 = getdata;退出参数 = temp,标志无效数据p() 值=获取数据*196; b0=值/10000; /整数位 b1=(值-b0*10000)/1000; /第一位小数 if(b0set_temp)co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论