版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机(AT89C51)的温度采集控制系统 摘要 目前国内喷油泵试验台的量油系统仍采用传统的量筒式计量法.该测量系统 存在量筒的制造误差、刻度误差和测量人员的视觉误差等,使测量系统的系统误 差较大、自动化程度低、测量过程缓慢,己不能满足现代喷油泵对其测量精度的 要求。将微机引入喷油泵试验台,对实现检测自动化提高检测精度和效率,增加 检测功能有一定的实际意义和经济效益。结合实际情况,对原有电子控制喷油泵 试验台进行改造、设计、开发,将单片机和计算机引入喷油泵试验台,设计一套 监控系统,用单片机作为下位机控制试验台,用计算机作上位机,在基于Windows 的操作界面下用预先编制好的监控软件控制
2、单片机,既操作简单,对实现检测自 动化、提高检测精度和效率、增加检测功能又有重要的现实意义 本文提出的温度釆集控制系统以单片机(AT89C51)为核心,由控制部分、 显示部分和温度测量(AD590)部分组成。该系统大部分功能通过硬件来实现, 电路简单明了,系统稳定性很高。 这套温度控制系统可以方便地实现温度测量、温度显示等功能,并通过与单 片机连接的键盘可以实时设定测控温度的下限,还可以连接相应的外围电路,在 收到单片机发出的指令后对环境进行检测 本文首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍 了本系统所应用的各硬件模块的功能和它的工作过程;其次,详细阐述了程序的 各个模块
3、及其实现过程。本系统的主要设计思想是以硬件为基础,软件和硬件相 结合,最终实现各个模块的功能。 关键词:AT89C51. 温度釆集、AD590 Abstract The amount of domestic oil pump test-bed system is still USES the traditional LiangTong type measuiement. The measurement system of existing manufactuiing erior LiangTong, calibration error and suiveyors visual error, e
4、tc., so that the system erior measuring system of bigger, the low automatic degree, measurement process slow, alieady cannot satisfy the measuiement acciuacy of modem fuel the requirements. Will the microcomputer introducing to the realization of pump test-bed, improves the detection inspecting auto
5、mation accuracy and efficiency, increase the detection function has certain practical significance and economic benefits. Combined with the actual situation, the original electronic contiol pump test-bed for refbnn, the design, the development, will intioduce single-chip microcomputer and computer p
6、ump test-bed, design a set of monitoring system, with single chip microcomputer as lower level computer control test rig, with the computer for PC, in Windows based user interface with progiainnied monitoiing software contiol niiciocontioiler, both simple operation, to realize detection automation,
7、impioviiig precision and efficiency, increase the detection function and have impoilant practical significance In tliis paper, temperature gathering control system takes microcontroller (AT89C51) as the core, fiom contiolliiig part, display section and temperature measurements (AD590) parts. The sys
8、tem hardware to realize most function tlirough, ciicuit straightfoiward, stability of the system is veiy high. The temperature contiol system can easily achieve temperature measurement, temperatuie display, etc., and tluougli the keyboard can connect with siiigle-chip miciocomputer tempeiatuie measu
9、rement and control the lower limit of real-time Settings, also can connect to the corresponding peripheral circuit, when receiving a command foi SCM enviionnient after testing This paper firstly describes the system hardware work piinciple, each accompanied by a diagram to illustrate the system stin
10、cture, introduces this system that the application of the hardware modules of the system and its working process; Secondly, this paper expounds the progiam modules and realize process. The systems main design ideas based on the hardware, software and hardware combined, finally realizes the function
11、of each module. Keywords: AT89C51 Temperatuie collection AD590 摘要I ABSTRACT11 目 录I11 第一章设计背景及设计意义1 1.1引言1 1.2设计背景及意义2 第二章系统方案设计3 2.1功能设计要求3 2.2系统方案确定3 2.2.1方案论证3 2.2.2方案确定5 第三章油温控制系统硬件电路设计6 3.1硬件部分的简介6 3.1.1AT89C51 的简介6 3.1.2元器件的选择7 3.2硬件电路设计10 3.2.1各模块接口电路10 3.2.2温控系统硬件电路设计12 第四章 油温控制系统软件设计15 4.1单片
12、机编程语言15 4.1.1单片机编程语言分类及特点15 4.1.2汇编语言的指令格式15 4.1.3汇编语言的步骤及方法16 4.2程序结构设计17 4.3主要程序模块清单20 第五章硬件软件系统制作调试23 5.1硬件电路的制作23 5.2硬软件的调试23 致谢错误!未定义书签。 参考文献24 附录1元器件清单25 ni 第一章设计背景及设计意义 1.1引言 在国民经济各部门,如电力、化工、机械、冶金、农业、医学以及人们的日 常生活中,温度检测是十分重要的。在许多模拟量控制和监视应用中,温度测控 通常是基于-40C125C温度范围内的应用,如环境监测、蔬菜大棚、粮库、 热电偶冷端温度补偿、设
13、备运行的可靠性等应用。实时采集温度信息,及时发现 潜在故障,并釆取相应的处理措施,对确保设备良好运行具有重要意义。 本文介绍了一个基于单片机的温度控制系统,该系统可以方便地实现温度釆 集、温度显示等功能。本系统的温度控制部分釆用单片机完成。单片机有着体积 小、功耗低、功能强、性能价格比高、使用电子元件较少、内部配线少、制造调 试方便等显著优点,将其用于温度检测和控制系统中可大大地提高控制质量和自 动化水平,具有良好的经济效益和推广价值。利用单片机对温度进行测控的技术, 日益得到广泛应用。 在众多的温度控制系统中,测温元件常常选用热敏电阻、半导体测温二极管、 三极管、集成温度传感器等。相比而言,
14、集成温度传感器具有线性好、稳定度高、 互换性强、易处理等突出优点,故在许多场所得到了广泛应用。本系统中单片机 作为下位机,完成测温任务,并通过与单片机连接的键盘可以实时设定测控温度 的下限。本系统还可以连接相应的外围加热电路,当环境温度低于设定下限温度 时,单片机发出的指令,加热器起动对环境进行加热,当温度回升到下限温度时 加热器停止加热。为了便于操作,还设计一个简单的操作面板,它主要由键盘与 按钮开关组成,通过操作面板可以进行系统的开停、RESET、设置温度下限告警 值等。键盘输入部分釆用了键盘专用IC 74C922,简化了软件编程,用起来非常方 便。 系统软件主要由初始化程序、主程序、监控
15、显示程序等组成。其中初始化程 序是对单片机的接口工作方式,A/D转换方式等进行设置;显示程序包括对显示 模块的初始化、显示方式设定及输出显示;主程序则完成对釆集数据进行处理。 该系统应用范围相当广泛,同时釆用单片机技术,由于单片机自身功能强 大,因而系统设计简单,工作可靠,抗干扰能力强,也可在此基础上加入通信接 口电路,实现与上位机之间的通信。 1 2设计背景及意义 喷油泵是柴油机燃料供给系统中最精密的部件,被称为柴油机的“心脏”, 是柴油机各项技术性能的控制机构。它根据柴油机的转速均匀分配再汽缸的进油 量。喷油泵由泵油机构、供油量调节机构、驱动机构、喷油泵体组成。 喷油泵又称为高压油泵,它根
16、据柴油机不同的运转情况,将燃油输送泵送来 的低压油提升压力,在预定的时间内将相应的油量按一定规律压送到喷油器。喷 油泵试验台作为测试、调整喷油泵泵油参数的专用设备,在喷油泵的制造与维修 中发挥着重要的作用。喷油泵试验台的主要用途是检测和调整喷油泵在各种工况 时的喷油量及各缸喷油间隔角。衡量喷油泵试验台性能和质量的一个重要指标就 是喷油量测量的精确性。 目前国内喷油泵试验台的量油系统仍采用传统的量筒式计量法.该测量系统 存在量筒的制造误差、刻度误差和测量人员的视觉误差等,使测量系统的系统误 差较大、自动化程度低、测量过程缓慢,己不能满足现代喷油泵对其测量精度的 要求。将微机引入喷油泵试验台,对实
17、现检测自动化提高检测精度和效率,增加 检测功能有一定的实际意义和经济效益。结合实际情况,对原有电子控制喷油泵 试验台进行改造、设计、开发,将单片机和计算机引入喷油泵试验台,设计一套 监控系统,用单片机作为下位机控制试验台,用计算机作上位机,在基于Windows 的操作界面下用预先编制好的监控软件控制单片机,既操作简单,对实现检测自 动化、提高检测精度和效率、增加检测功能又有重要的现实意义。因此,本文就 油温一个问题进行研究,利用单片机一一下位机程序的设计控制,实现对油泵油 温的控制使得油泵更好的工作。 第二章系统方案设计 2. 1功能设计要求 这套温度釆集、控制系统可以方便地实现温度测量、温度
18、显示等功能,并通 过与单片机连接的键盘可以随时设定测控温度的下限,还可以连接相应的外围电 路,在收到单片机发出的指令后对环境进行监测,当温度回升到下限温度时加热 器停止监测。 1、釆集温度并显示温度值。对温度控制器而言,最基本的功能是测温功能 即能时时采集被测环境的温度并通过显示部分显示出来。 2、设定测控温度下限。温度釆集一般都具有设定限定温度功能,即预设一 个温度值,一旦温度低于这个温度值,控制器就会发出提示,连接相应的外围电 路就可以对环境进行检测。 3、釆用专用直流供电电源。与其它的温度控制器相比,本系统的温度釆集 器输出模拟电流,易受干扰。因而必须以专用直流电源供电,分别为模拟部分和
19、 数字部分提供专用电压。 4、利用单片机制作一个油温控制器,要求如下: 温度设定范围38-42C,最小区分度1C,标定误差W1C。 用十进制数码显示水的实际温度。 环境温度降低时,温度控制的静态误差W1C。 2. 2系统方案确定 2. 2. 1方案论证 方案一 釆用美国DALLAS半导体公司继DS1820之后推出的一种该进型智能温度传感 器DS18B20作为检测元件,检测范围一55125C,最大分辨率可达0. 0625Co DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部 的硬件电路,具有低成本和易使用的特点, DS18B20 显示电路 扫描驱动 图2-1基于DS1
20、8B20的温控电路 本电路由3个模块组成;主控制器,测温电路及显示电路,主控制电路; 单片机AT89C51具有低电压供电和小体积等特点。 图2-2 DS18B20与单片机的接口电路 显示电路:釆用4位共阳LED数码管,从P1 口输出段码,到扫描用P3.0-P3.1 口来实现,列驱动用9012三极管。 DS18B20与单片机的接口电路,如图2-2: DS18B20可以釆用两种方式供电,一种是釆用电源供电方法,如图此时 DS18B20的1脚接地,2脚作为信号线,3脚接电源,另一种是寄生电源供电方 式,单片机接口接单线总线,为保证有效的DS18B20时钟周期内提供足够的电 源,可用一个MOSFET管
21、来完成总线的上位。 当DS18B20处于写存储器操作和温度A / D转换操作时,总线上必须有强的 上位,上位开启时最大为lOuAo釆用寄生电源供电方式时VDD和GND端军接 地。由于单线制只有一根线,因此发送接口必须是三态的。 方案二 由AD590配以ADC0809。ADC0809是最常用的8位模数转换器,属于逐次 逼近型。ADC0809釆用单一的十5V供电,片内有带锁存功能的8路模拟开关,可 对05V, 8路模拟信号分时进行转换,完成一次转换的的时间是100US,数字 输出信号具有TTL三态锁存器,可以直接与AT89C51相连。 通过对比,方案一中使用DS18B20釆集温度,结构较复杂,价格
22、也稍显昂 贵,适合较大规模的工业农业使用。成本较高故从以上两种方案,很容易看出釆 用方案二,电路不仅比较简单,软件设计也比较简单,故釆用了方案二 单片机 图2-3系统组成方框图 2. 2. 2方案确定 由设计要求可知,该油温控制器应包括主控制器单片机、温度检测模块、加 热控制模块、键盘设定模块及数据显示模块。温度检测模块由温度传感器AD590、 信号放大器及A/D转换器ADC0809组成。由AD590将温度转换成电流信号再经信 号放大器得到对应的模拟电压,再经ADC0809转换后接入单片机。 键盘扫描由11个按键及3位LED共阳极显示器组成。通过Pl、P2口直接驱动 键盘,为了简化显示接口,这
23、里釆用了串行口扩展LED显示器 第三章油温控制系统硬件电路设计 3. 1硬件部分的简介 3. 1. 1AT89C51 的简介 AT89C51单片机是最常用的单片机,是一种低损耗、高性能、CMOS八位微 处理器。AT89C51与MCS-51系列的单片机在指令系统和引脚上完全兼容,而且 能使系统具有许多MCS-51系列产品没有的功能,功能强、灵活性高且价格低。 AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性, 降低了系统成本。 AT89C51提供以下标准功能: 32个I/O 口线2个16位定时/计数器 4k字节FLASH闪速存储器128字节内部RAM 一个5向量两级中
24、断结构,一个全双工串行通信口,片内振荡器及时钟电路。 同时,AT89C51降至0Hz的静态逻辑操作,并支持两种可选的节电工作模式。空 闲方式体制CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继 续工作。掉电方式保存RAM中的内容,但振荡器体制工作并禁止其他所有不见 工作直到下一个硬件复位。 引脚功能说明89C51共40个引脚,大致可分为四类: P1 0 1 40 V P1.1 2 39 v cc P0.0/AD0 P1.2 3 38 P0.1/AD1 P1.3 4 37 P0.2/AD2 P1.4 5 36 P0.3ZAD3 P1.5 6 35 P0.4/AD4 P1.6 7
25、34 P0.5/AD5 P1.7 8 33 P0.6/AD6 RESET 9 89C51 32 P0.7/AD7 RXD/P3.0 10 31 EA/Vpp TXD/P3.1 11 30 ALE/ PROG INTO/P3.2 12 29 PSEN INT1/P3.3 13 28 P2.7/A15 T0/P3.4 14 27 P2.6/A14 T1/P3.5 15 26 P2.5/A13 WR/P3.6 16 25 P2.4/A12 亍E/P3.7 17 24 P2.3/A11 XTAL2 18 23 P2.2/A10 XTAL1 19 22 P2.1/A9 Vss 20 21 P20/A8
26、图3-1 89C51弓|脚图 (1)电源引脚 VCC:电源端,十5V。 VSS:接地端(GND)。 (2)时钟电路引脚 XTAL1:外接晶振输入端。 XTAL2:外接晶振输出端。 (3)I/O引脚 P0.0P0.7/AD0AD7: 组8位漏极开路型双向I/O 口,也是地址/数据总线 复用口。作输入/输出口用时,必须外接上拉电阻,它可驱动8个TTL门电路。 当访问片外存储器时,用作地址/数据分时复用口线。 P1.0P1.7: 组内部带上拉电阻的8位准双向I/O 口,可驱动4个TTL门电 路。 P2.0P2.7/A8A15: 组内部带上拉电阻的8位准双向I/O 口,可驱动4个 TTL门电路。当访问
27、片外存储器时,用作高8位地址总线。 P3.0P3.7: 组内部带上拉电阻的8位准双向I/O 口。出于芯片引脚数的限 制,P3端口每个引脚具有第二功能。 (4)控制线引脚 RESET/VPD:复位端/备用电源输入端。当RESET端出现持续两个机器周期 以上的高电平时,可实现复位操作。VPD端可外接备用电源,以便在VCC掉电 时向RAM供电。 EA/VPP :片外程序存储器选择端/ Flash存储器编程电源。若要访问外部程 序存储器则EA端必须保持低电平。VPP端用于Flash存储器编程时的编程允许 电源十12V输入端。 ALE/PROG :地址锁存允许端/编程脉冲输入端。当访问外部程序存储器或
28、数据存储器时,ALE输出脉冲用于锁存P0 口分时送出的低8位地址(下降沿有 效)。不访问外部存储器时,该端以时钟频率的1/6输出固定的正脉冲信号,可用 作外部时钟。对内部Flash存储器编程期间,该引脚用于输入编程脉冲。 PSEN :读片外程序存储器选通信号输出端。当89C51从外部程序存储器取 指令时,该脚有效(上升沿)。每个机器周期 PSEN均产生两次有效输出信 号。 3.1.2元器件的选择 (1)AD590的性能特点与工作原理 图3-2 AD590管脚封装图 图3-3 AD590的基本电路图 AD590的内部电路如电路图3-3所示。传感器Ad590的输出电流会随着温度 的变化而变化,变化
29、量为luA/K,Ad590与10k电阻连接,把电流转化为电压,取 出电压后经过一个电压跟随器。接稳压管的那一路则是要使50k变阻器的输出电 压为2.732V,与跟随器的输出在经过一个差动放大器,求得温度变化值所对应的电 压变化值,送到A/D转换器中去。(因为0度时,AD590的输出电流是273.2uA, 取出的电压为273.2* 10k=2.732v,及后温度变化取出的电压也跟着变化,经过差动 放大就可以把电压变化值取出送到A/D转换器中) (2)模数转换-ADC0809芯片 ADC0809采用逐次逼近式A/D转换原理,可实现8路模拟信号的分时釆集,片内有8路模拟选通开关,以及相应的通道地址锁
30、存与译码电路,转换时间为 lOOus左右。ADC0809内部中多路开关可选通8个模拟通道,允许8路模拟量分 时输入,共用一个A/D转换芯片进行转换。地址锁存与译码电路完成对A、B、 C 3个地址位进行锁存与译码,其译码输出用于通道选择。8位A/D转换器是逐 次逼近式,由控制与时序电路、逐次逼近寄存器、树状开关以及256欧姆电阻阶 梯网络组成。输出锁存器用于存放和输出转换得到的数字量。ADC0809芯片为 28引脚双列直插式封装。 ADC0809芯片引脚的功能: IN7-IN0:模拟量输入通道。ADC0809 (图2-3)对输入模拟量的要求主要有: 信号单极性,电压范围为0-5V。 A、B、C:
31、地址线,模拟通道的选择信号。A为地位地址,C为高位地址。 ALE:地址锁存允许信号。 START:转换启动信号。START上跳沿时,所有内部寄存器清0; START 下跳沿时,开始进行A/D转换;在A/D转换期间,START应保持低电平。 D7-D0:数据输出线。为三态缓冲输出形式,可以与单片机直接相连。D0为 最低位,D7为最高位。 OE:输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数 据。OE=0,输出数据线呈高电阻;OE=1输出转换得到的数据。 CLK:外部时钟信号引入端。ADC0809的内部没有时钟电路,所需时钟信 号由外界提供。 EOC:转换结束信号。EOC=0,正在进
32、行转换;EOC=1,转换结束。使用中 该状态信号即可以作为查询的状态标志,又可以作为中断请求信号使用。 VCC: +5V 电源。 28 27 26 25 24 3T 22 2T 20 TT TH T7 VREF:参考电源。其典型值为+5VO IN2 INI INO A D C ALE D7 06 D5 D4 DO VREF I2 图3-4ADC0809弓|脚图 3. 2硬件电路设计 根据己经确定的方案,我们大致可以确定基于单片机的油温控制系统工作原 理图,如下图所示: 图3-5单片机控制系统原理图 3.2.1各模块接口电路 (1)键盘模块 当按键数量较多时,可将这些按键按行列构成矩阵,在每个行
33、列的交点上连 接一个按键,因此又称矩阵式键盘或行列式键盘。本文釆用4*4矩阵键盘,如下 图所示: o 4-5V X0 XI X2 X3 图芥6键盘接口电路 (2)显示模块 LED数码显示器(图3-7)是由若 干段发光二极管构成的,当某些段的发 光二极管导通时,显示对应的字符。 LED显示器控制简单,使用方便,在 单片机中应用非常普遍。由于每一位 LED显示器分别由一个8位输出口控 制字形码,显示器能稳定且独立显示 图3-7数码显示器 字符,这种方式编程简单,但占用的I/O 口多,适合于显示器位数少的场合。因 此利用74LS164寄存器LED显示器构成显示模块,如下图: 图3-8 74LS164
34、构成的显示电路 (3) 89C51单片机最小系统 在单片机实际应用系统中,由于应用条件及控制要求的不同,其外围电路的 组成各不相同。单片机的最小系统就是指在尽可能少的外部电路条件下,能使单 片机独立工作的系统。 由于89C51内部己经有4KB的FlashE2PR0M及128B的RAM,因此只需 要接上时钟电路和复位电路就可以构成单片机的最小系统,如图3-9所示: 11 3OpP 丄 3Ojp = +3VO| | i.OyP PJL.O P丄.丄 P丄.2 P丄.3 P丄.4 P丄.3 PJL.5 P丄.7 SPC5 丄 INTI INTO T1 TO KAyVP XHALJL CT-AJLZ
35、RST g-A:3.-4.5.5.7g.l.23.-4.5.5.7 66666666 ds-is-is-E: pppppppp pppppppp 30 3S 37 3 AJLE/P PUEZ 图3-9单片机最小系统 3. 2. 2温控系统硬件电路设计 根据对各个模块的分析,其硬件接线图如下,包括主控制器单片机、温度检 测模块、加热控制模块、键盘设定模块及数据显示模块。 *22OV Ain鶴仪 P1.0 B加热线 AC SSR AC 2TOj+5V Pl.l Vcc TXD Pl.3 RXD Pl .2 +5Vr - 7 1/ y 7 7 7 7 7 7 7 -5V d 22pF Pl.4 Pl
36、.5 Pl.6 Pl.7 P2.0 S9C51 P2.1 P2.2 EAXT XI POO P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 X2 RESET ALE? WK P2.7 RD INTO +5Vr START ALE OE EOC Vcc REFW REF ADC0S09 INO ADDA ADDB ADDC 图3-10基于AT89C51温控系统原理图 利用Piotel99我们绘制出PCB布线图,原理图的设计步骤: (1)新建原理图设计文件 为了方便电路设计文件的管理,在新建原理图设计之前,应当新创建一个设 计数据库文件,然后再在该设计数据库文件下新建原理图设
37、计文件。 (2)设置图纸区域工作参数 图纸区域工作参数的设置指的是图纸大小、电气栅格、可视栅格和捕捉栅格 等参数的设置,它们构成了原理图设计的工作环境。 (3)载入原理图库 在原理图设计过程中,放置的元器件全部来源于载入到原理图编辑器中的原 理图库。如果原理图库没有载入到原理图编辑器,那么在绘制原理图时就找不到 所需的元器件。因此,在绘制原理图之前,应当根据原理图设计的需要将所需的 原理图库载入到原理图编辑器即可。 (4)放置元器件 放置元器件指的是从原理图库中选择所需的各种元器件,并将其逐一放置到 原理图设计中,调整元器件的位置,同时完成对元件器的编号,添加封装形式和 定义元器件的显示状态等
38、操作。 (5)原理图布线 原理图布线,指的是在放置完元器件后,用具有电气意义的导线、网络标号、 电源和接地符号、以及端口等图件将元器件连接起来,使各元器件之间具有特定 的电气连接关系,能够实现一某项电气功能的过程。 (6)补充完善 在原理图设计基本完成之后,可以在原理图上作一些相应的说明,标注和修 饰,以增强原理图的可读性和整齐美观性。 根据以上步骤我们画出图3-11如下所示: 13 Si靈空玮玮 第四章 油温控制系统软件设计 4. 1单片机编程语言 4.1.1单片机编程语言分类及特点 单片机的编程语言有机器语言、汇编语言与高级语言三种。机器语言 (Machine Language)是指直接用
39、机器码编写程序、能够为计算机直接执彳亍的机 器级语言。机器码是一串由二进制代码“0”和“1”组成的二进制数据,执行速度快。 但对于使用者来说,用机器语言编写程序非常繁琐,不易看懂和记忆,容易出错。 机器语言一般只在简单的开发装置中使用。汇编语言(AssemblyLanguage)是指 用指令助记符代替机器码的编程语言。程序结构简单,执行速度快,程序易优化, 编译后占用存储空间小,能充分发挥单片机的硬件功能,是单片机应用系统开发 中最常用的程序设计语言。高级语言(High-Level Language)是在汇编语言的 基础上用高级语言来编写程序,例如FraiiklinC51. MB ASIC 5
40、1等,程序可读性 强,通用性好,适用于不熟悉单片机指令系统的用户。大中型单片机系统的软件 开发釆用C语言的开发周期通常要比釆用汇编语言短得多。高级语言编写程序的 缺点是实时性不高,结构不紧凑,编译后占用存储空间比较大,这一点在存储器 有限的单片机应用系统中没有优势。 由上述三种编程语言的各自特点可以看出,如果应用系统的存储空间比较 小,且对实时性的要求很高,则应选用汇编语言。如果系统的存储空间比较大, 且对实时性的要求不是很高,则应选用高级语言。不论是汇编语言还是高级语言 都要转化为机器语言才能为计算机所用。因此,机器语言程序又称为目标程序, 而用汇编语言和高级语言编写的程序称为源程序 4.1
41、.2汇编语言的指令格式 指令是指挥计算机工作的命令,是计算机软件的基本组成单元。指令有机器 指令和汇编语言指令两种。机器指令是用二进制数表示的能直接被计算机识别并 执行的指令,由于二进制书写起来较长,通常用十六进制数表示。显然这种指令 不便记忆和理解,书写时也容易出错。为了便于记忆和使用,常以指令的英文名 称或缩写形式作为助记符来表示指令的 功能(如用“MOW,表示传送,用“ADD”表示加法),这样的指令称为汇编语 言指令。 指令的表示形式称为指令格式。用MCS-51汇编语言表示的指令格式如下: 标号J操作码助记符 操作数1,操作数2,操作数3;注释 例如:LOOP: ADD A ,#50H;
42、 执行加法 在指令格式中,方括号中的内容为可选项,不一定都有。各字段的意义如下: 15 标号:表示该指令所在的地址。并不是每条指令都必须有标号,通常在程序 分支、转移所需要的地方才加上一个标号。标号是以字母开始的,由18个字符 (字母或数字)组成,标号不能使用汇编语言中己经定义过的符号名,如指令助 记符、寄存器名、伪指令等。标号以“:”结尾。特别应注意的是,在一个程序中 不允许重复定义标号,即同一程序内不能在两处及两处以上使用同一标号。 操作码:表示该语句要执行的操作内容,是每条指令必有的部分。操作码用 指令助记符表示。操作码后面至少留一个空格,使其与后面的操作数分隔。 操作数:表示操作码的操
43、作对象,常用符号(如寄存器、标号)、常量(如 立即数、地址值等)来表示。操作码和操作数之间用若干空格分隔,而各操作数 之间用逗号“,”分隔。指令的操作数可以有3个、2个、1个或没有(如空操作指 令N0P)o操作数的个数因指令功能而异。 例如:MOV A, #30H;传送指令,两个操作数,第1个为目的操作数, 第2个为源操作数 INC A ;累加器加1指令,只有一个操作数 RETI ;中断返回指令,没有操作数 注释:该字段可有可无,是用户为阅读程序方便而加的解释说明。注释段以 “;”开始,不影响程序的执行。 4.1.3汇编语言的步骤及方法 用汇编语言编写程序,一般要经过如下步骤: (1)分析问题
44、,明确任务 这一步就是要明确设计任务,功能要求及技术指标,对系统的硬件资源和工 作环境进行分析。这是单片机应用系统程序设计的基础和条件。 (2)确定算法 确定算法就是在全面准确分析程序设计任务之后,具体地选定解决问题的算法。 对同一个问题,可以有多种不同的算法,设计者要分析各种不同的算法,从中选 择一种最佳算法。 (3)程序流程图设计,是将算法转化为具体程序的一个准备过程。所谓流 程图,就是用箭头线将一些规定的图形符号,如半圆弧形框、矩形框、菱形框等, 有机地连接起来的图形。这些半圆弧形框、矩形柜和菱形框与文字符号相配合用 来表示实现某一特定功能或求解某一问题的步骤。利用流程图可以将复杂的工作
45、 条理化、抽象的思路形象化。如下图所示为流程图中常用的图形符号。 16 端点框()换页符 Q 处理框流程线 判断框 端点框:表示程序的开始或结束。 处理框:表示一段程序的功能或处理过程。 判断框:表示条件判断,以决定程序的流向。 换页符:当流程图在一页画不下需要分页时,使用换页符表示相关流程图之 间的连接。 流程线:表示程序执行的流向。 (4)编写源程序 用汇编语言把流程图表明的步骤或过程描述出来。在编写源程序之前,应合 理地选择和分配内存单元和工作寄存器。 (5)汇编和调试 汇编就是将编写好的源程序翻译为计算机所能识别执行的机器语言程序,即 目标程序。实际应用中这一步都是采用机器汇编。在汇编
46、过程中,可以发现源程 序中在指令格式及使用上出现的问题或错误。 调试是输入给定的数据,让程序运行起来,检查程序运行是否正常、结果是 否正确。调试工作可一个一个模块程序运行和修改,然后将各模块程序连起來运 行和修改,这样查找问题和错误的范围小、容易、快捷。只有通过上机调试并得 出正确结果的程序才能认为是正确的程序。 4. 2程序结构设计 (1)主程序 用于进行初始化处理,包括各端口的初始化,定时/计数器的设定、中断允 许的设定等。同时进行键盘的扫描输入。 17 图4-1为主程序流程图 (2)定时中断服务程序 通过单片机内部的定时器TO进行50ms定时,再通过寄存器R6进行计数, 以实现Is定时中
47、断的要求。进入中断服务程序后,可进行当前温度的检测及显 示,根据所测值与设定值比较进行温度控制等。 图4-2为中断服务程序流程图 18 (3)温度检测程序 温度检测釆用每Is定时采样的方式,为了实现温度的准确检测,采用了平 均值滤波法抗干扰。即连续4次启动ADC0809进行A/D转换,求取转换结果的平 均值,存入指定单元,以得到检测温度值。 返 I1! 图4-3为温度检测程序流程图 (4)温度控制程序 通过比较键盘设定值与温度检测值的差别,按照一定的控制规律,控制输出 口线的状态,实现三组加热丝的控制。 图4-4为温度控制程序流程图 19 (5)温度显示程序 在每次温度检测后,进行一次温度显示
48、刷新;在进行温度设定时,显示设定 温度值。 4. 3主要程序模块清单 主程序: MAIN: ORG AJMP ORG AJMP ORG MOV 0000H MAIN 000BH T0INT 0030H SP, #60H MOV Pl, #0FFH ; 开显示 MOV SCON, #00H; 设置串行口工作方式0, MOV TMOD, #01H; 定时器初始化 MOV THO, #3CH ; 50ms定时初值 MOV TLO, #0B0H MOV R6, #14H; Is 定时用(50ms20 次) MOV 5DH, #00H; 显示缓冲区清零 MOV 5EH, #00H MOV 5FH, #0
49、0H ACALL DISP SETB ETO SETB EA SETB TRO LM0 : ACALL KEYSCAN ; 调用键盘扫描子程序 AJMP LMO 定时中断服务程序: T0INT: MOV THO, #3CH MOV TLO, #0B0H DJNZ R6, TOEND ;Is未到,中断返回 CLR TRO CLR EA MOV R6, #14H ; 恢复R6初值 ACALL TADC; 调用温度检测子程序 ACALL XSCL; 调用标度转换子程序 发送 20 ACALL DISP ;调用显示子程序 ACALL TCONT:调用温度控制子程序 SETBTRO SETBEA TOE
50、ND: RETI 温度检测子程序: TADC: MOV 50H, #00H ;清存检测值单元 MOV B, #00H MOV R7, #04H; ;设置转换次数 MOV DPTR, #7FFFH;送 ADC0809 地址 TT0: MOVX DPTR, A ;启动A/D转换 JB P3.2, $; 等待转换结束 MOVX A, DPTR ;读A/D转换数据 ADD A, 50H MOV 50H, A JNC TT1 ;是否超出8位二进制范围 INC B TT1: DJNZ R7, TTO ;4次转换是否完成 CLR C ;求4次AQ转换的平均值 XCH A, B RRC A XCH A, B
51、RRC A CLR C XCH A, B RRC A XCH A, B RRC A MOV 50H, A ;平均值存50H RET 温度控制子程序: TCONT: MOV A, 51H CLR C SUBB A, 50H;设定值实测值 MOV RO, A JNC CCPR;小于设定温度,接通相应加热器 MOV PO, #OFFH ;否则,关闭加热器 21 AJMP CONEND CCPR: MOV A, RO SUBB A, #19H JC CCPR1 MOV PO, #0F8H;开三组加热器 AJMP CONEND CCPR1: MOV A, RO SUBB A, #0CH JC CCPR2
52、 MOV PO, #0FCH ;开两组加热器 AJMP CONEND CCPR2: MOV PO, #0FEH ;开一组加热器 CONEND: RET 显示子程序如下: DISP: MOV R2, #03H ;显示数据的个数 MOV Rl, #5DH ;显示缓冲区首址 SETB P1.3 DLO: MOV A, R1;取要显示的数 MOV DPTR, #TAB MOVC A, A+DPTR;查字型码 MOV SBUF, A ;送出数据 DL1: JNB TI, DL1 ;是否输完一个字节 CLR TI;清发送完标志 INC R1 DJNZ R2, DL0 ;三个数是否都显示完? RET TAB: DB OCOH, 0F9H, 0A4H, OBOH, 99H DB 92H, 82H, 0F8H, 80H, 90H 22 第五章硬件软件系统制作调试 5. 1硬件电路的制作 对照元件清单买到电子元器件后,首先对照材料清单将各材料认真清点一 遍,并用万用表粗略地(因出厂前己测量过)测量一下各元件,做到心中有数。 焊接时注意先焊接无极性的阻容元件,电阻釆用卧装,电容釆用直立装,紧贴电 路板,焊接有极性的元件如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院住院楼混凝土施工承包合同
- 生态农业管理创新技巧
- 企业资金管理办法:资金结构调整
- 钢铁冶炼工程招投标实施策略
- 2024年铲车节能减排协议3篇
- 2024展厅装饰装修承包合同(含展品保管与维护)3篇
- 2024年度赵苑离婚协议中子女探望权及监护权协议书3篇
- 社会工作教师聘用协议
- 施工协议书与材料质量
- 2025版口腔医疗机构聘用口腔外科医生服务协议3篇
- 期末测试卷(一)2024-2025学年 人教版PEP英语五年级上册(含答案含听力原文无听力音频)
- 2023-2024学年广东省深圳市南山区八年级(上)期末英语试卷
- 期末 (试题) -2024-2025学年人教PEP版(2024)英语三年级上册
- 汉服娃衣创意设计与制作智慧树知到期末考试答案章节答案2024年四川文化产业职业学院
- 《大数据技术原理与应用(第3版)》期末复习题库(含答案)
- 广东省中山市2023-2024学年四年级上学期期末数学试卷
- 8款-组织架构图(可编辑)
- 海螺牌水泥质量检验报告28天报告425加章2015
- 云南省教育科学规划课题开题报告 - 云南省教育科学研究院
- 二年级上,数学,3个两位数加减,80题,(竖式计算)
- 人民法院涉诉信访案件终结办法
评论
0/150
提交评论