stc单片机.docx
- 文档编号:3709103
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:56
- 大小:674.96KB
stc单片机.docx
《stc单片机.docx》由会员分享,可在线阅读,更多相关《stc单片机.docx(56页珍藏版)》请在冰点文库上搜索。
stc单片机
题目:
基于STC单片机的数字式
温湿度测试仪
摘要
智能仪表日益广泛地应用在工业自动化领域,随着生产自动化要求的不断提高,对智能仪表的设计提出了更高的要求。
本文从智能仪表的概念及其发展现状出发,分析智能仪表的组成部分,并对智能仪表的设计过程和技术进行探讨。
通过一种数字式温湿度测试仪的开发,详细介绍单片机测试系统的数据采集、数据处理及显示模块的设计,给出了系统的硬件接口原理图以及单片机汇编语言编程的具体实现方法和步骤。
本设计主要应用STC12C5A60AD作为控制核心,温湿度采集、数码管显示及串口通信模块相结合的系统,此外还具有外围电路扩展的功能。
关键词:
智能仪表、单片机STC12C5A60AD、温度、相对湿度
Abstract
Intelligentinstrumentshavebeenmoreandmorewidelyusedinindustrialautomation.Thereisanincreasingdemandfordesignofintelligentinstrumentswithhigherperformancewiththerequirementsofautomation.Thisarticlefirstlyintroducestheconceptandpresentsituationoftheintelligentinstrument,analyzesitsstructure,anddiscussesitsdesignprocessandthetechnologyoftheintelligentinstrument.Withthedesignofonekindoftemperatureandhumiditytestingdevicethisarticlealsointroducesthedataacquisition,dataprocessinganddemonstrationpartsparticularly.Someparameterandoperatingprincipleofthechiefslugisgivenbythisarticle.ThehardwareinterfaceschematicsofthesystemisdesignedanduseMCUassemblylanguageprogrammingtoshowthespecificmethodsandsteps.
ItuseSTC12C5A60ADascoreofcontrolling,acquisitionoftemperatureandhumiditymodular,LEDmodularandserialcommunicationmodularcombinedtogether.Besidethese,italsohastheexpansionofperipheralcircuitsfunction.
Keywords:
intelligentinstrument、MCUSTC12C5A60AD、temperature、relativehumidity
目录
摘要1
第一章前言4
1.1智能仪表的概念及其发展现状4
1.2智能仪表的组成部分4
1.3智能化仪表的功能特点5
1.4本文研究的目的和意义6
1.5设计的要求6
第二章总体设计分析7
2.1智能仪表的设计概述7
2.1.1设计过程和要点7
2.1.2设计技术7
2.2组成框图8
2.3核心CPU模块方案与选型9
2.4传感器的选型9
2.4.1温度传感器9
2.4.2湿度传感器10
2.5通信模块10
2.6外围电路扩展10
第三章数字式温湿度测试仪硬件设计12
3.1核心控制器部分12
3.1.1时钟电路13
3.1.2复位电路14
3.2传感器部分15
3.2.1温度传感器15
3.2.2湿度传感器17
3.3串口通信部分18
3.4显示部分20
3.5外围电路扩展及电源部分22
3.5.1外围扩展电路22
3.5.224V转5V电源23
第四章数字式温湿度测试仪软件设计24
4.1主程序设计24
4.2温度采集、显示、控制设计25
4.3湿度采集、显示、控制设计26
4.4软件设计方案论证26
第五章结束语32
5.1总结32
5.2存在问题和改进32
5.3展望和体会33
致谢34
参考文献35
附录36
附录A总程序36
附录B电路原理图49
第一章前言
1.1智能仪表的概念及其发展现状
工业自动化仪表是用以实现信息的获取、传输、变换、存储、处理与分析,并根据处理结果对生产过程进行控制的重要技术工具。
智能仪表是随着80年代初单片机技术的成熟而发展起来的,现在世界仪表市场基本被智能仪表所垄断。
近年来,由于微电子技术的进步和计算机技术的日益广泛应用,因而使得智能仪表发展速度十分惊人,在技术上有很大突破;仪表的集成度和可靠性越来越高,测量和控制精度越来越高,智能化和网络化程度也越来越高,这些现状也正是智能化仪表永恒的发展方向。
微型计算机技术和嵌入式系统的迅速发展,引起了仪器仪表结构的根本性变革,即以微型计算机为主体,代替传统仪表的常规电子线路,成为新一代具有某种智能的灵巧仪表。
传统模拟式仪表的各种功能是由单元电路实现的,而在以单片机或嵌入式系统为主体的仪表中,则由编程软件、各种特殊而复杂的功能模块、简化的用户组态编程功能以及各种典型应用的控制策略包等模块组成的软件,来完成众多的数据处理和控制任务。
目前所见的一部分这类仪表产品,智能化的程度还不高,需要不断改进和完善。
一些新技术新器件,如32位RISC(ReducedInstructionSetComputing)处理器、DSP(DigitalSignalProcessing)、ARM(AdvancedRISCMicroprocessor)、大容量存储器、嵌入式实时操作系统等的不断涌现,将对智能仪表的发展起到极大的推动作用。
传统的仪表引入MCU(MicroControllerUnit)及各类半导体新器件后,不但工作速度有了跨越式提高,在测量精度、运行可靠性、稳定性、存储容量等方面也有了质的改变,并且新的技术还使传统仪表具有了目标准、自适应、自学习等功能,使精度和可靠性进一步得到提高。
1.2智能仪表的组成部分
通常,智能仪表由硬件和软件两大部分组成。
硬件部分包括MCU、过程输入/输出通道(模拟量输入/输出通道和开关量输入/输出通道)、人机交互部分和接口电路以及USB(UniversalSerialBus)、Internet、GPRS(GeneralPacketRadioService)、短消息数据通信接口等等。
主机电路用来存储数据、程序,并进行一系列运算处理,本身就是一个单片机或嵌入式系统。
模拟量输入/输出通道用来输入/输出模拟信号,数字量输入/输出通道用于输入/输出数字信号。
人机交互部分是操作者与仪表之间的桥梁,通信接口则用来实现仪表与外界的数据交换功能,进而实现网络化互联的需求。
外部时序/逻辑扩展部分常用CPLD(ComplexProgrammableLogicDevice)/FPGA(FieldProgrammableGateArray)等器件来扩展CPU(CentralProcessingUnit)的功能。
显示/打印模块用于外接打印机和LCD(LiquidCrystalDisplay)/LED(LightEmittingDiode)。
智能仪表的软件通常包括监控程序、中断处理(或服务)程序以及实现各种算法的功能模块。
监控程序是仪表软件的中心环节,它接收和分析各种命令,管理和协调全部程序的执行;中断处理程序是在人机交互部分或其它外围设备提出中断申请并为主机响应后直接转去执行的程序,以便及时完成实时处理任务;功能模块用来实现仪表的数据处理和控制功能,包括各种测量算法和控制算法。
1.3智能化仪表的功能特点
传统的测控仪表的准确度完全取决于仪表内部各功能单元的精密性和稳定性,由于任何部件均存在随时间、温度等变量的参数漂移问题,因此无法保证测量结果的可靠性和长期稳定性。
而智能化仪表可很好的解决这些问题。
智能化仪表可以通过自动校准技术消除仪表内部器件所产生的漂移电压。
在每次采样周期仪表先测量输入为零和某个基准电压的值,再测量被测信号,然后根据Y=(X-X0)*VREF/(XR-X0)计算出实际的被测信号值,该值有效滤除了器件参数的漂移并自动实现了校零和校准功能,从而大大提高了系统的准确度和稳定性。
智能化仪表在对传感器的非线性修正方面意义重大。
对所有传感器都存在一定的非线性,如果不进行修正则不可避免地产生测量误差,对传统仪表来说这是一个十分棘手的问题。
而利用单片机技术去实现该功能将变得十分方便,只需要将修正点的值存储在EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory)中,然后利用一个适合传感器特性的校正算法就可计算出正确的值,常用的校正算法包括:
两点或多点直线校正、二次曲线校正、指数曲线校正、最小二乘法校正等。
在提高仪表的可靠性、保证测量结果的正确性等方面,智能化仪表也明显优于传统仪表。
通常智能化仪表均设置有自检功能。
所谓自检就是仪表对自身个主要部件进行的自我检测过程,目的是检查个部件是否正常,以保证测量的准确性。
自检分为开机自检、周期性自检和键控自检。
开机自检是在接通电源或复位时,仪表即进行一次自检;周期性自检是在仪表的工作过程中周期性地自动加入自检操作;键控自检是仪表在面板上设置一个专门的自检按钮,需要时由操作人员启动仪表自检操作。
仪表自检的内容非常多,自检对象通常包括:
EEPROM、RAM(RandomAccessMemory)、A/D转换器、显示器、控制输出接口、输入通道等。
1.4本文研究的目的和意义
智能仪表不仅能解决传统仪表不易或不能解决的问题,还能简化仪表电路,提高仪表的可靠性,更容易实现高精度、高性能、多功能的目的。
现在是一个数字化的时代,而温度和湿度又是工业生产中的两个很重要的影响因素,因此本次课题的研究在现实生产中具有较高的价值。
通过本次研究,使我们能对智能仪表有更进一步的认识,也对当今工业自动化有更为全面的了解,使我们在日后的工作学习中能紧跟工业自动化发展的脚步。
本课题最大的特色就是体积小、功能强、功耗低。
在日常工业生产中,使用起来非常方便,并且对周围环境的要求较低。
相比于传统的仪表来说,无论从实用性还是外观来说,都有了很大的进步。
本测试仪更是以数字式显示,相对于非数字式显示的测试仪,能更精确更直观的显示出温湿度值,对使用者的专业要求也有所降低,各方面都较传统仪表有所进步。
1.5设计的要求
本课题应从智能仪表的概念及其发展现状出发,分析智能仪表的组成部分,并对智能仪表的设计过程和技术进行讨论。
根据数字式温湿度测试仪的要求开发基于单片微型控制系统的主模块,进行单片微控系统的数据采集、数据处理及显示控制模块的设计,绘制系统的硬件接口原理图以及编写单片机汇编语言编程序,并介绍具体实现方法和步骤。
本系统采用宏晶公司的STCMCU作为主控芯片,采用PT100热电阻和HS1101为温度和湿度传感器。
温度测量范围:
0-99℃误差:
±1℃
相对湿度测量范围:
0-99%误差:
±1%
第二章总体设计分析
2.1智能仪表的设计概述
2.1.1设计过程和要点
研制与开发一台智能仪表是一个复杂的过程,这一过程包括:
分析仪表的功能要求和拟制总体设计方案,确定硬件结构和软件算法,研制逻辑电路和编制程序,以及仪表的调试和性能功能测试等。
为保证仪表质量和提高研制效率,应在正确的设计思想指导下进行仪表研制的各项工作。
(1)模块化设计
依据仪表的功能、精度要求和经济技术指标,自上而下(或由大到小)按仪表功能层次把硬件和软件分成若干个模块,分别进行设计与调试,然后把它们连接起来,进行总调,这就是设计仪表的最基本的思想。
(2)模块的连接
上述各种软、硬件研制和调试之后还需要将它们按一定的方式连接起来,才能构成完整的仪表,以实现既定的各种功能。
软件模块的连接一般是通过监控主程序调用各种功能模块,或采用中断的方法实时地执行相应服务模块来实现。
硬件模块连接方式有两种:
一种是以主机模块为核心,通过设计者自行定义的内部总线(数据总线、地址总线和控制总线)连接其它模块;另一种是以标准总线连接其它模块。
2.1.2设计技术
智能仪表设计技术是与测控技术、电子技术、微机技术以及生产工艺水平密切相关的,除了仪表的体系结构、电路设计、电路调试、软件编程、实现功能的方法和算法以外,还包括电子元器件、机械结构、编程调试手段、焊接制作工艺等。
可以说,作为一个小型的微机化控制部件,智能仪表设计涵盖了计算机控制系统设计的所有方面,而由于其结构的特殊性,它对实现技术的要求更高。
就工业自动化应用领域而言,目前国外大公司生产的智能仪表可以适应各种不同的应用需求,真正地发挥了其灵活性强的特点。
而近年来,国内的自动化仪表生产水平也有了长足的进步。
通过引进技术、合资等方式,部分厂家已能规模化地生产通用型智能仪表,其技术水平和生产工艺也与国外产品相当。
但不可否认的是,其中一些产品的核心技术并没有被完全掌握。
还有一些单位依靠自己的力量,自主研发生产智能仪表,并取得了成功。
此外,一些企业和研究所也研发了在特殊行业、特殊应用中适合国内应用需求的智能仪表产品,并得到普遍应用。
2.2组成框图
▲图2.1组成框图
如图2.1所示,正是根据设计思想所要完成的功能。
该系统可分为三大模块,包括:
温湿度采集模块、通信模块、显示模块。
除了这三大模块外,控制核心STC12C5A60AD里还集成了模数转换模块,另外系统还具有外围电路的扩展功能。
由上位机通过通信模块控制单片机采集处理数据。
2.3核心CPU模块方案与选型
本设计的温湿度采集、显示以及外部电路扩展都是在单片机的控制下进行的,因此选择一款功能强,性能好的单片机芯片尤为重要。
该设计选用宏晶公司STC12C5A60AD型号的单片机,它是宏晶科技STC12C5A60AD/S2系列单片机的一种。
相比同类单片机,STC12C5A60AD/S2系列主要特点是高速、宽电压、增加第二复位功能脚、增加外部掉电检测电路、低功耗、1280字节片内RAM数据存储器、10位高速ADC,4个16位定时器、硬件看门狗、高速SPI串行通信端口、先进的指令集结构等等。
另外,它还有超强的抗干扰特性,输入输出口多。
STC12C5A60AD有60K字节的flash,1280字节的SRAM,并且具备10位的A/D转换,这使我可以省去一个A/D转换芯片,简化了硬件的设计。
另外具有先进的指令集结构,兼容普通8051指令集,也简化了软件的设计。
STC12C5A60AD是一款被广泛应用并且十分成熟的芯片,鉴于该款芯片的各种优点,故选择此芯片。
STC12C5A60AD单片机有PDIP-40、LQFP-48和QFP-44三种封装,本次设计选用PDIP-40封装的单片机作为主控制器。
2.4传感器的选型
2.4.1温度传感器
本次设计的温度传感器选用PT100,其测量范围:
-200℃-850℃,它的优点是:
能抗振动、稳定性好、准确度高、耐高压等等。
我选用它的最大原因是在0-100摄氏度之间变化时,它的最大非线性偏差小于0.5摄氏度,完全符合系统要求。
PT100在0-100℃之间变化时线性度非常好,当温度变化1摄氏度,PT100阻值近似变化0.39欧。
经计算验证,在由PT100组成的传感器最后的测量值经A/D变换后,和温度值在0-100℃之间的线性度也非常好,因此也很容易将测量到的值转化为相应的温度值,在软件设计的方面方便了很多。
2.4.2湿度传感器
本次设计的湿度传感器选用HS1101,其测量范围:
0-99%。
HS1101是HUMIREL公司生产的变容式相对湿度传感器,采用创新技术、稳定性好、精度高、外带防护罩,抗静电、防灰尘、并可抵抗氯气、氨水等。
HS1101测量湿度采用将HS1101置于555振荡电路中,将电容值的变化转换成电压频率信号,可以直接被微处理器采集。
经计算验证,相对湿度与555芯片输出频率存在很好的线性关系,相对湿度为0时输出频率为7351Hz,相对湿度每增加1%,减少约13Hz输出。
由于存在以上优点,使得软件设计十分方便,因此选择HS1101为本设计的湿度传感器。
2.5通信模块
本次设计采用RS232标准接口,控制芯片采用MAX232。
用D型插座9芯与PC机相连。
RS232标准规定采用一个包含25个管脚的连接器,一般使用型号为DB25的25芯插头座,通常插头在DCE(DataCommunicationsEquipment)端,插座在DTE(DataTerminalEquipment)端。
一些设备与PC机连接的RS232接口,因为不使用对方的传送控制信号,并且只需3根接口线,发送数据、接受数据和信号地,所以采用DB9的9芯插头座,传输线采用屏蔽双绞线。
由于RS232采用负逻辑,并且其电压规定也与常用的TTL电平不符合,所以,在应用RS232进行串行通信时都必须进行电平转换。
常用的电平转换芯片是MAX232。
2.6外围电路扩展
本设计的主体为温湿度的采集和温湿度的显示,但是为了保证当今工业生产中的许多项目顺利进行,就必须对温湿度有着很高的要求,所以温湿度的控制也成了当今工业生产中的一个越来越重要的问题。
于是我也对设计做了一些扩展,即对温湿度的控制。
事先设定好规定的温湿度,本次设计分别以温湿度25℃和75%为例,此温湿度可以随不同工作环境的需要在事先提前改变。
此温湿度为系统正常工作时所必须的要求。
当采集到的温度大于或小于规定的温度时,启动报警电路,并分别启动通风机和加热机进行降温和升温的处理。
在要求由采集温度变为采集湿度之前,一直进行温度采集-与规定温度比较-做降温或升温处理的循环,直到当前温度达到规定温度为止。
当采集到的相对湿度大于或小于规定的相对湿度时,启动报警电路,并分别启动通风机和加湿机进行除湿和加湿的处理。
在要求由采集湿度变为采集温度之前,一直进行湿度采集-与规定湿度比较-做除湿和加湿处理的循环,直到当前相对湿度达到规定相对湿度为止。
当然由于硬件和软件设计难度的限制,本设计还不能在执行的时候改变规定的温湿度值,如果以后有机会做同类的设计,这也是能够大大改进的地方。
总体设计总结:
本设计采用内部集成A/D转换功能的STC12C5A60AD单片机作为控制芯片;温湿度传感器分别采用PT100以及HS1101;通信模块采用RS232标准接口,控制芯片采用MAX232,用D型插座9芯与PC机相连;另外除了温湿度采集和温湿度显示外,本设计还扩展了温湿度控制的功能。
第三章数字式温湿度测试仪硬件设计
3.1核心控制器部分
本设计选用的核心控制器是STC12C5A60AD。
这款CPU的主要性能和优点在第二章已经有所介绍,这里选用其的主要考量在于两点:
一是它的内部集成了10位的A/D转换,使我在硬件设计上可以省去一个ADC,不仅节省了资源,而且简化了硬件电路,减少了误差;二是它的加密功能较为完善,有利于开发者保护其知识产权。
本次设计所采用的PDIP-40封装的STC12C5A60AD单片机为40引脚芯片,图3.1为它的管脚结构图。
▲图3.1STC12C5A60AD管脚结构
下面介绍一下STC12C5A60AD的管脚分配及其在本设计中的功能。
电源及时钟:
VCC,GND;XTAL1,XTAL2。
I/O口线:
P0,P1,P2,P3共四个八位口以及P4.4、P4.5、P4.6和P4.7。
其中,在本设计中,P1.0口用作ADC0功能,作为采集到温度的A/D转换输入;P1.6以及P1.7口决定4051芯片的输出;P2.0和P3.4口接译码芯片的输入,通过改变这两个引脚的输入,显示不同的数值;P2.1-P2.7口用在外围电路的扩展上,当特定情况发生时,这七个引脚中的某些会从高电平变为低电平,从而启动报警电路以及带动特定电机工作;最后P3.0和P3.1口用作串口通信,接MAX232芯片。
这里重点介绍P3口,P3口是双功能口,该口每一位均可独立地定义为第一I/O功能或第二I/O功能。
做为第一功能使用时操作同其他的I/O口。
P3口的第二功能如表3.1。
表3.1P3口的第二功能
引脚
第二功能标记
第二功能
P3.0
RXD
串行口输入
P3.1
TXD
串行口输出
P3.2
INT0
外部中断0输入
P3.3
INT1
外部中断1输入
P3.4
T0
T0定时器的外部计数输入
P3.5
T1
T1定时器的外部计数输入
P3.6
WR
外部数据存储器的写通道(低有效)
P3.7
RD
外部数据存储器的读通道(低有效)
核心控制器STC12C5A60AD主要包括时钟电路,复位电路等。
下面就本设计中的时钟电路和复位电路做简要介绍。
3.1.1时钟电路
时钟脉冲是CUP工作的基础,本系统的单片机的时钟方式是由晶振电路和单片机内部的时钟电路一起构成。
外接晶振电路以及电容C1和C2构成并联谐振电路,接在内部时钟电路的放大器反馈回路中,这时内部振荡器便自激振荡。
其中,晶振的取值在1.2MHz-12MHz均可,在本设计中,取晶振的值为6MHz。
本设计所选择的电容温度稳定性能较好,提高了温度稳定性。
其连接电路如图3.2所示。
▲图3.2时钟电路
3.1.2复位电路
复位是单片机的初始化操作。
单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
因而,复位是一个很重要的操作方式。
但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
当单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
上电复位要求接通电源后,自动实现复位操作。
常用的上电复位电路如图3.3所示。
图中电容E1和电阻R14对电源+5V来说构成微分电路。
本设计对复位电路的要求不是很高,因此我选择了这个电路最简单的微分复位电路。
▲图3.3复位电路
3.2传感器部分
3.2.1温度传感器
本次设计的温度传感器选用PT100,它的参数及优点见第二章。
PT100温度传感器的常用电路如图3.4所示,本系统温度传感器模块的硬件设计就以此电路图为基础。
同时为了增加系统的灵活性和可操作性,我在常用电路图的基础上加了一个多路开关4051,用于自由选择放大电路的放大倍数,如图3.5所示。
▲图3.4温度传感器PT100电路
(1)
▲图3.5温度传感器PT100电路
(2)
图3.4及图3.5即构成了本设计温度传感器PT100的具体电路。
R2、R3、R4和PT100组成传感器测量电桥,为了保证电桥输出电压信号的稳定性,电桥的输入电压通过TL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- stc 单片机
![提示](https://static.bingdoc.com/images/bang_tan.gif)