基于atmega168温度控制器的软件设计.doc
基于atmega168温度控制器的软件设计,基于atmega168温度控制器的软件设计摘 要温度是生活和生产中一个很重要的物理量,在很多领域都要涉及到温度、如冶金工业、化工、生产、造纸行业、机械制造、电加热炉及家用电器等,均需要用加热器来加热实验对象,并对温度进行测量和控制,使温度这一被控对象达到并保持在某一设定的温度范围内,即恒温控制。然而,温度控制系统具有非...
内容介绍
此文档由会员 opopnjf 发布基于ATmega168温度控制器的软件设计
摘 要
温度是生活和生产中一个很重要的物理量,在很多领域都要涉及到温度、如冶金工业、化工、生产、造纸行业、机械制造、电加热炉及家用电器等,均需要用加热器来加热实验对象,并对温度进行测量和控制,使温度这一被控对象达到并保持在某一设定的温度范围内,即恒温控制。然而,温度控制系统具有非线性,时滞以及不确定性。
本次设计是基于AVR系列单片机ATmega168设计一种温度控制器,其特点是具有液晶显示,温度在0℃到30℃范围可调,并具有RS485总线接口,可以与上位机进行数据通信。其软件方面的功能包括:系统初始化、液晶显示驱动程序设计、按键和燃烧指示信号采集程序、温度测量程序设计、控制逻辑的实现以及基于RS485串行的Modbus协议的实现等。
通过程序编写和上机调试,实现了对温度系统的控制要求。设计的软件可以完成:对系统进行初始化;液晶显示;采集按键和燃烧指示信号并进行反馈报警;测量环境温度并进行温度控制等功能。
关键词:温度控制系统 ATmega168单片机 I2C总线 Modbus协议
ABSTRACT
The temperature is life and production in a very important physics, in many areas to want to involve temperature, such as metallurgy industry, chemical industry, the production, the paper industry, machinery manufacturing, electric heating and household electric appliances, etc, all need to use the heater to heating experimental object and temperature measuring and control the temperature, the controlled object to attain and maintain a set in the temperature range, namely constant temperature control. However, the temperature control system with nonlinear, delay and uncertainty
Based on the AVR series of SCM ATmega168 to design a gas radiant heating controller is the purpose of this design. Its characteristics are having a LCD, temperature range from 0 ℃ to 30 ℃ adjustable, having a bus interface with RS485, and being able to carry out data communication with PC. The software features include system initialization, LCD driver, buttons and burning direct signal acquisition program, temperature measurement program, the implementation of control logic and the implementation of Modbus protocol which is based on the serial RS485, etc.
Through programming and the debugging, the control requirements of gas radiant heating system are realized. The software can complete jobs as followed: system initialization, LCD, collecting buttons and burning direct signal and having the feedback alarms for burning direct signal, measuring temperature and controlling it, etc.
Keywords: temperature control system SCM of ATmega168 I2C bus Modbus protocol
目 录
1 前 言 1
2 单片机及相关协议 2
2.1 ATmega168单片机介绍 2
2.1.1 ATmega168单片机简介 2
2.1.2 AVR CPU内核 2
2.1.3 系统时钟 4
2.1.4 两线串行接口 5
2.2 I2C总线协议 6
2.2.1 I2C总线的概念 6
2.2.2 I2C总体特征 6
2.2.3 I2C总线规范 7
2.2.4 位传输 7
2.2.5 传输数据 8
2.2.6 7位寻址 9
2.3 Modbus协议 9
2.3.1 Modbus协议介绍 9
2.3.2 串行传输 11
2.3.3 Modbus信息帧 12
2.3.4 地址设置 12
2.3.5 功能码 13
2.3.6 数据区的内容 13
2.3.7 错误校验 13
2.3.8 本控制器使用的Modbus功能代码 13
3 编程及仿真软件 17
3.1 ICCAVR软件 17
3.1.1 ICCAVR软件简介 17
3.1.2 ICCAVR的IDE环境 17
3.2 AVRStudio软件 17
4 控制器软件设计 18
4.1 LCD驱动和按键处理程序 20
4.1.1 显示器显示控制 20
4.1.2 段码驱动程序 21
4.1.3 液晶驱动控制 22
4.1.4 按键控制程序 23
4.1.5 控制功能实现程序 25
4.1.6 报警和消音逻辑程序 28
4.1.7 按键切换程序 30
4.1.8 综合状态处理程序 31
4.2 I2C功能实现 34
4.3 Modbus协议功能实现 36
4.3.1 基本功能 36
4.3.2 检查UART0数据 39
4.4 初始化子程序 41
4.5 时间任务与处理 42
4.5.1 时间标志实现 42
4.5.2 任务处理 43
4.6 系统主程序 43
5 软件调试 44
结 论 45
谢 辞 46
参考文献 47