1、天津工业大学 2008 级测控系统原理与设计课程设计八路温度巡检仪摘 要在实际生产和生活等各个领域中,温度是环境因素不可或缺的一部分,对温度进行及时精确的控制和检测显得尤为重要。本文介绍了基于单片机 AT89C51 的温度监测系统的设计方案与软硬件实现。采用铂电阻电桥测温,模数转换器 AD0809 对采集的温度进行转换,数码管显示温度数据,再通过单片机的控制和程序的处理最后得到准确的温度值,实现温度的检测。系统正常运行时,其测温范围为 0+100,给出了系统总体框架、程序流程图和 Proteus 仿真结果,并在硬件平台上实现了所设计的各种功能。关 键 词 : 单 片 机 AT89C51, 铂
2、电 阻 电 桥 , 模 数 转 换 器 AD0809, 温 度检 测 , 显 示AbstractTemperature is an essential of environmental factors in our actual production,living and many other fields. Its particularly important to control and detect the temperature promptly and exactly.This article describes the AT89C51 microcontroller based t
3、emperature monitoring system design and software and hardware. Platinum resistance thermometer bridge, AD0809 analog to digital converter to convert the temperature of the acquisition, digital display temperature data, and then through the microcontroller controls and procedures and accurate process
4、ing of the final temperature to achieve the temperature detection. System during normal operation, the temperature range of 0 +100 , given the overall framework of the system, 天津工业大学 2008 级测控系统原理与设计课程设计program flowchart and Proteus simulation results, and the hardware platform designed to achieve a
5、variety of functions.Keywords: microcontroller AT89C51, platinum resistance bridge, ADC AD0809, temperature detection, display第一章 绪论1.1 八路温度巡检仪简介在工业生产过程中,温度检测和控制都直接和安全生产、产品质量、生产效率、节约能源等重大技术经济指标相联系。温度检测类仪表作为温度计量工具,也因此得到广泛应用。随着生产力的发展,生产规模的扩大和对生产管理的自动化水平的要求越来越高,在很多场合,诸如啤酒、饮料、食品、白酒发酵生产线,中频热处理行业的水路温度保护,变
6、电所各电节点的温度检测,农业大棚、鸡舍等,要求温度巡检仪能自动巡检,以达到无人看守,温度自动巡检的目的。随着单片机技术蓬勃发展,其稳定、安全、高效、经济等优点十分突出,所以其应用也十分广泛。单片机的特点是体积小,其内部结构是普通计算机系统的简化,增加一些外围电路,就能够组成一个完整的小系统,单片机具有很强的扩展性,它具有强大的数据处理功能。所以单片机在工业应用中提高了工业设备的智能化。1.2 八路温度巡检仪的工作原理及其方案设计1.2.1 工作原理八路温度巡检仪首先要进行数据采集就是将一般的物理量通过传感器转换成模拟量,在经过A/D转换电路转换为数字量供给CPU进行处理。详细来说就是能监测并采
7、集多路的温度信号,通过温度传感器将温度转换成电压信号输出电压,A/D转换芯片将模拟量转换成数字量,从而得到与温度信号具有一定关系的数字量,单片机采集这些数字信号,进行一定的信号调理、软件算法、以及标度变换,从而得到一定量的温度值,再将这一温度值通过显示的方式显示出来,然后通过按键或定时的控制实现巡检,就得到了一个八路温度巡检仪的系统。天津工业大学 2008 级测控系统原理与设计课程设计1.2.2 方案设计在系统方案设计中,主要以选择测温电路的方案为主,测温电路的方案选择可以直接的影响到测得温度值的准确性和要求达到的精度问题,测温电路要求能把环境温度通过传感器把温度信号转换为我们所需要的电压信号
8、或电流信号,把得到相应的电信号送入A/D转换器,通过A/D转换器的转换,在通过单片机的控制和程序的处理最后得到准确的温度值,实现温度的检测。所以在测温电路中我们进行了认真的分析和最后方案的确定。如下框图所示:第二章 具体设计内容2.1 铂电阻电桥测温电路在设计过程中选取温度传感器要注意一下几点:(1)根据测量对象与测量环境确定传感器的类型要进行项具体的测量工作,首先要考虑采用何种原理的传感器,这需要分析多方面的因素之后才能确定。因为,即使是测量同一物理量,也有多种原理的传感器可供选用,哪一种原理的传感器更为合适,则需要根据被测量的特点和传感器的使用条件考虑以下一些具体问题:量程的大小;被测位置
9、对传感器体积的要求;测量方式为接触式还是非接触式;信号的引出方法,有线或是非接触测量;传感器的来源,国产还是进口,价格能否承受,还是自行研制。(2)灵敏度的选择通常,在传感器的线性范围内,希望传感器的灵敏度越高越好。因为只有灵敏度高时,与被测量变化对应的输出信号的值才比较大,有利于信号处理。但要注意的是,传感器的灵敏度高,与被测量无关的外界噪声也容易混入,也会被放大系统放大,影响测量精度。因此,要求传感器本身应具有较高的信噪比,尽量减少从外界引入的串扰信号(3)频率响应特性传感器的频率响应特性决定了被测量的频率范围,必须在允许频率范围内保持不失真的测量条件,实际上传感器的响应总有定延迟,希望延
10、迟时间越短越好。传感器的频率响应高,可测的信号频率范围就宽,而由于受到结构特性的影响,机械系统的惯性较大,因有频率低的传感器可测信号的频率较低。铂电阻电桥测温电路A/D 数据采集 AT89C51单片机显示器按键控制放大器天津工业大学 2008 级测控系统原理与设计课程设计(4)线性范围传感器的线形范围是指输出与输入成正比的范围。以理论上讲,在此范围内,灵敏度保持定值。传感器的线性范围越宽,则其量程越大,并且能保证一定的测量精度。在选择传感器时,当传感器的种类确定以后首先要看其量程是否满足要求。但实际上,任何传感器都不能保证绝对的线性,其线性度也是相对的。当所要求测量精度比较低时,在一定的范围内
11、,可将非线性误差较小的传感器近似看作线性的,这会给测量带来极大的方便。(5)稳定性传感器使用一段时间后,其性能保持不变化的能力称为稳定性。影响传感器长期稳定性的因素除传感器本身结构外,主要是传感器的使用环境。因此,要使传感器具有良好的稳定性,传感器必须要有较强的环境适应能力。在选择传感器之前,应对其使用环境进行调查,并根据具体的使用环境选择合适的传感器,或采取适当的措施,减小环境的影响。(6)精度精度是传感器的一个重要的性能指标,它是关系到整个测量系统测量精度的一个重要环节。传感器的精度越高,其价格越昂贵,因此,传感器的精度只要满足整个测量系统的精度要求就可以,不必选得过高。这样就可以在满足同
12、一测量目的的诸多传感器中选择比较便宜和简单的传感器。如果测量目的是定性分析的,选用重复精度高的传感器即可,不宜选用绝对量值精度高的;如果是为了定量分析,必须获得精确的测量值,就需选用精度等级能满足要求的传感器。对某些特殊使用场合,无法选到合适的传感器,则需自行设计制造传感器。自制传感器的性能应满足使用要求。综合考虑以上选取注意事项,本设计采用铂电阻温度传感器对温度信号进行采集。铂电阻温度传感器是利用其电阻和温度成一定函数关系而制成的温度传感器, 由于其测量准确度高、测量范围大、复现性和稳定性好等,被广泛用于中温(-200C650C)范围的温度测量中。测温传感器的测温电路采用典型的铂电阻电桥电路
13、,如图所示。该测温仪的测温电路采用软件算法中的查表线性化方法,利用软件算法对电路参数进行自适应调整选取,在保证高分辨率的情况下,使得在给定的温度范围内各点的分辨率近似相等,误差可达到0.5级仪表的要求,提高了测温仪的整体性能。图中最后输出的U5将被送到A/D转换器转换为数字量,然后由单片机读入再天津工业大学 2008 级测控系统原理与设计课程设计进行处理。通过对温度测量电路的数学分析可以得出, U5 和Us 是完全成正比的。因此, 在设计中将Us设为A/D 转换过程中的参考电压。这样, 即使Us有所变化, 也不会影响A/D 转换器的转换结果。由于将Us设为了参考电压, 为了最大化测量的分辨率,
14、 希望U5的输出在温度低限时向0V靠拢, 而在温度高限时向Us靠拢。这样, 首先存在的一个问题便是运算放大器的输出问题。通常, 运算放大器的输出并不等于电源电压, 因为存在一个饱和问题, 这样便降低了整个电路的测量分辨率。在实际设计中, 使用的Rail- to- Rail的运算放大器, 即输出上限可以达到电源电压, 而下限可以达到0V。这一点对于整个电路来讲是非常关键的。下面具体介绍测温电路参数自适应调整选取的设计过程。确定参数的原则是达到尽可能高的分辨率, 以及尽量消除由于铂电阻的强非线性带来的各个温度段分辨率的明显差异。整个计算和赋值过程通过软件程序来实现。第一步, 通过输入获取温度最大值
15、和最小值, 得出温度的范围。第二步, 通过输入获取电阻R1、R2、R4 的阻值。为了使节点的电压大于节点的电压( 因为放大电路是单电源供电的, 不可以输出负电压) , R1的值必须大于RT在温度测量范围内的最大值。同时, 为了保证桥路的灵敏度, R1的值仅需稍微大于(或等于)RT的最大值即可。同时明确放大电路中的要求R4=R5、R6=R7,而且为了降低功耗, 它们的取值通常都大于100k。本设计中取R2=100k, 作为它的临时计算初值; 取R4=R5=100k。第三步, 确定剩下的参数值R6、R7。由于桥路的要求, R3=R2, R4R7的阻值比较大, 这里可以忽略它们的影响来计算节点和之间
16、的电压差(U12)的变化范围, 从而求出R6、R7的阻值(R4 阻值乘以放大倍数K)。第四步, 计算RT取最大值和最小值时该电路的分辨率。由于此时已知R1R7 的所有电阻阻值, 因此可以计算出具备这些参数的电路在RT取最大值处的分辨率。例如当温度为- 30C时RT取最大值, 求出U5 的值;然后查铂电阻分度表得RT 在-29C时的电阻值, 再次求出另一个U5的值, 二者之差的绝对值即相对表示了该电路在此点的分辨率, 差值越大, 则分辨率越高。同理, 可以求得该电路在RT最小值处的两个输出电压U5之差。最后, 输出电路各给定值以及得出的所有参数值和温度各点对应的A/D 转换数值。2.2 A/D
17、模数转换电路芯片原理与设计尽管ADC芯片的品种、型号很多,其内部功能强弱、转换速度快慢、转换精度高低有很大差别,但从用户最关心的外特性看,无论哪种芯片,都必不可少地要包括以下四种基本信号引脚端:模拟信号输入端(单极性或双极性);数字量输出端(并行或串行) ;转换启动信号输入端;转换结束信号输出端。本次课程设计选用的是ADC0808或ADC0809芯片。ADC0808 和 ADC0809 除精度略有差别外(前者精度为 8 位、后者精度为 7 位),其余各方面完全相同。它们都是 CMOS 器件,不仅包括一个 8 位的逐次逼近型的ADC 部分,而且还提供一个 8 通道的模拟多路开关和通道寻址逻辑,因
18、而有理天津工业大学 2008 级测控系统原理与设计课程设计由把它作为简单的“数据采集系统” 。利用它可直接输入 8 个单端的模拟信号分时进行 A/D 转换,在多点巡回检测和过程控制、运动控制中应用十分广泛。2.2.1 内部结构和外部引脚ADC0808/0809 的内部结构和外部引脚分别如图 11.19 和图 11.20 所示。内部各部分的作用和工作原理在内部结构图中已一目了然,在此就不再赘述,下面仅对各引脚定义分述如下: (1)IN 0IN 78 路模拟输入,通过 3 根地址译码线 ADDA、ADD B、ADD C来选通一路。(2)D 7D 0A/D 转换后的数据输出端,为三态可控输出,故可直
19、接和微处理器数据线连接。8 位排列顺序是 D7为最高位,D 0为最低位。(3)ADD A、ADD B、ADD C模拟通道选择地址信号,ADD A为低位,ADD C为高位。地址信号与选中通道对应关系如表 11.3 所示。(4)V R(+)、V R(-)正、负参考电压输入端,用于提供片内 DAC 电阻网络的基准电压。在单极性输入时,V R(+)=5V,V R(-)=0V;双极性输入时,V R(+)、VR(-)分别接正、负极性的参考电压。引脚图如下图所示:天津工业大学 2008 级测控系统原理与设计课程设计(5)ALE地址锁存允许信号,高电平有效。当此信号有效时,A、B、C三位地址信号被锁存,译码选
20、通对应模拟通道。在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。(6)STARTA/D 转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始 A/D 转换。如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。(7)EOC转换结束信号,高电平有效。该信号在 A/D 转换过程中为低电平,其余时间为高电平。该信号可作为被 CPU 查询的状态信号,也可作为对CPU 的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,EOC 也可作为启动信号反馈接到 START 端,但在刚加电时需由外电路第一次启动。(8)OE
21、输出允许信号,高电平有效。当微处理器送出该信号时,ADC0808/0809 的输出三态门被打开,使转换结果通过数据总线被读走。在中断工作方式下,该信号往往是 CPU 发出的中断请求响应信号。2.2.2 工作时序与使用说明ADC0808/0809 的工作时序如图下图所示。当通道选择地址有效时,ALE 信号一出现,地址便马上被锁存,这时转换启动信号紧随 ALE 之后(或与 ALE 同时)出现。START 的上升沿将逐次逼近寄存器 SAR 复位,在该上升沿之后的 2s 加 8个时钟周期内(不定),EOC 信号将变低电平,以指示转换操作正在进行中,直到转换完成后 EOC 再变高电平。微处理器收到变为高
22、电平的 EOC 信号后,便立即送出 OE 信号,打开三态门,读取转换结果。天津工业大学 2008 级测控系统原理与设计课程设计模拟输入通道的选择可以相对于转换开始操作独立地进行(当然,不能在转换过程中进行),然而通常是把通道选择和启动转换结合起来完成(因为ADC0808/0809 的时间特性允许这样做)。这样可以用一条写指令既选择模拟通道又启动转换。在与微机接口时,输入通道的选择可有两种方法,一种是通过地址总线选择,一种是通过数据总线选择。如用 EOC 信号去产生中断请求,要特别注意 EOC 的变低相对于启动信号有2s+8 个时钟周期的延迟,要设法使它不致产生虚假的中断请求。为此,最好利用 E
23、OC 上升沿产生中断请求,而不是靠高电平产生中断请求。ADC0808/0809 与单片机的接口电路天津工业大学 2008 级测控系统原理与设计课程设计2.3 AT89C51 单片机的特点及引脚说明AT89C51 是美国 ATMEL 公司生产的低电压、高性能 CMOS 8 位单片,内含 4Kbytes 的可反复擦写的只读程序存储器( EPROM)和 128 bytes 的随机存取数据存储器(RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器(CPU )和 Flash 存储单元,功能强大的 AT89C51 单片机可提
24、供许多高性价比的应用场合,可灵活应用于各种控制领域,该芯片外形结构及引脚如图所示。天津工业大学 2008 级测控系统原理与设计课程设计AT89C51 单片机主要性能参数为:(1)与 MCS-51 产品指令系统完全兼容;( 2)4K 字节可重擦写 Flash闪速存储器;(3)1000 次擦写周期;(4)全静态操作:0Hz24Hz;(5)三级加密程序存储器;(6)1288 字节内部 RAM;(7)32个可编程 I/O 口线;(8)2 个 16 位定时/计数器;(9)6 个中断源;(10)可编程串行 UART 通道;(11)低功耗空闲和掉电模式。AT89C51 提供 4K字节 Flash 闪速存储器
25、,128 字节内部 RAM,32 个 I/O 口线,两个 16 位定时/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时/ 计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。2.3.1 AT89C51 单片机引脚功能说明(1)Vcc :电源电压;(2)GND:地;(3)P0 口: P0 口是一组 8 位漏极开路型双向 I/O 口,也即地址/ 数据总线
26、复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。在 Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。(4)P1 口: P1 口是一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1” ,通过内部的上拉电阻把端口拉倒高电平,此时可做输入口。做输入口输入时,因天津工业大学 2008 级测控系统原理
27、与设计课程设计为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(I IL) 。Flash 编程和程序校验期间,P1 接收低 8 位地址。(5)P2 口: P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路,对端口写“1” ,通过内部的上拉电阻把端口拉倒高电平,此时可做输入口,做输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输入一个电流(I IL) 。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVXDPTR指令)时,P2 口送出高 8 位地址数据。在访问 8 为地址的外部数
28、据存储器(如执行 MOVXR1 指令)时, P2 口线上的内容(也即特殊功能寄存器SFR 区中 R2 寄存器的内容) ,在整个访问期间不改变。Flash 编程或校验时,P2 亦接受高位地址和其它控制信号。(6)P3 口: P3 口是一个带有内部上拉电阻的 8 位双向 I/O 口,P3 口的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1” 时,它们被内部上拉电阻拉高并可作为输入端。作输入端时,被外部拉低的 P3 口将用上拉电阻输出电流(I IL) 。P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能,如表所示。端口引脚 第二功能P3.0 RXD(串行输
29、入口)P3.1 TXD(串行输出口)P3.2 (外部中断 0)0P3.3 (外部中断 1)1P3.4 T0(定时/ 计数器 0)P3.5 T1(定时/ 计数器 1)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号(7)RST : 复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。(8)ALE/ :当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲可用于锁存地址的低八位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的 1/6 输出固定的正脉冲信号,因此它可
30、对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。对 Flash 存储器编程期间,该引脚还用于输入编程脉冲() 。如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置置位后,只有一条 MOVX 和MOVC 指令 ALE 才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 无效 8。(9) :程序储存允许( )输出是外部程序存储器 天津工业大学 2008 级测控系统原理与设计课程设计的读选通信号,当 AT89C51 由外部程序存储器取指令(或数据)时,每个机器周期两次 有效,即
31、输出两个脉冲。在此期间,当访问外部数据存储器时,这两次有效的 信号不出现。(10)EA/VPP:外部访问允许。欲使 CPU 仅访问外部数据存储器(地址为 0000HFFFFH) , EA 端必须保持低电平(接地) 。需注意的是:如果加密位 LB1 被编成,复位时内部会锁存 EA 端状态。如 EA 端为高电平(接Vcc 端) ,CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V 的编程允许电源 Vpp,当然这必须是该器件使用 12V 编程电压Vpp。(10)XTAL1 :振荡器反相放大器及内部时钟发生器的输入端。(11)XTAL2 :振荡器反相放大器的输出端。2.
32、3.2 单片机最小系统对 MCS-51 系列的单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路等,最小系统是保证单片机正常运行所必须的外围电路设计,如果没有这部分电路,单片机则不能正常工作。晶振电路为单片机提供最基本的基准时序。时钟又是时序的基础,时钟可以由两种方式产生,即内部方式和外部方式。本系统采用内部方式。MCS-51 系列单片机允许的振荡频率可在 1.224MHz 之间选择,一般选为 11.0592MHz。电容 C1、C2 的取值对振荡频率的稳定性、大小及振荡电路的起振速度有一定的影响,可在 20100pF 之间选择,电容的典型值 30pF。MCS-51 系列单片机通常采用
33、上电自动复位和按钮复位两种方式。通常因为系统运行的需要,常常需要人工复位,只需要将一个常开按钮并联于上电复位电路。当晶体振荡频率为 12MHz 时,RC 的典型值为C=10F,R=8.2k。最小系统电路如图所示。EA/VP31X119 X218RESET9RD17 WR16INT012 INT113T014 T115P101 P112P123 P134P145 P156P167 P178P00 39P01 38P02 37P03 36P04 35P05 34P06 33P07 32P20 21P21 22P22 23P23 24P24 25P25 26P26 27P27 28PSEN 29AL
34、E/P30TXD 11RXD 10AT89C5112MHzC130pC230pC310pR18.2kR28.2k+5V天津工业大学 2008 级测控系统原理与设计课程设计2.4 显示模块的原理与设计显示系统是单片机控制系统的重要组成部分,主要用于显示各种参数的值,以便使现场工作人员能够及时掌握生产过程。数码管是一种半导体发光器件,其基本单元是发光二极管。按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。例如:共阳极数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。数码管要正常显示,就要用驱动电路来驱
35、动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。动态显示驱动是利用人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,但动态显示能够节省大量的I/O端口,而且功耗更低。因此,本系统采用了数码管动态显示。LG5641AH引脚图如下:LG5641AH与MCU的电路如下图所示:天津工业大学 2008 级测控系统原理与设计课程设计第三章 调试与仿真3.1 Proteus 与 Keil Vision 链接设置Keil Vi
36、sion(简称 Keil)是德国 Keil 公司出品的 51 系列兼容单片机软件开发系统。该系统支持 C 语言和汇编语言。Keil 界面友好,操作简单。首先介绍 Proteus 与 Keil 的链接设置。(1)安装 Keil 和 Proteus7.6sp3;(2)将 Proteus7ProfessionalModelsVDM51.DLL 复制到 KeilC51bin目录下;(3)在 KeilTOOLS.INI 文件中的字段下添加:TDRV4=BINVDM5- 1.DLL(“Proteus VSM Simulator”),并保存。其中 TDRV4 中的数字“4”可以任意;(4)在 Proteus
37、 中绘制原理图后,选取 Debug | Use Remote Debug Monitor 选项;(5)在 Keil 中编辑程序完成后,选取 Project | Options for TargetTarget1选项,选择 Debug 选项卡,选中 Proteus VSM Simulator 选项。单击 Setting 按钮,设置 Host 为 127.0.0.1,Port 为 8000;(6)在 Keil 中进行 Debug,同时在 Proteus 中查看结果。天津工业大学 2008 级测控系统原理与设计课程设计3.2 在 Keil 中编辑程序并生成“HEX”文件打开 Keil,选择 Proj
38、ect| New Project 命令,在弹出的 Create New Project 对话框中选择目标保存路径,在“文件名”编辑框输入工程名称。单击“保存” ,在弹出的 Select Device for Target Target 1对话框中双击Data base 框中的 Atmel 选项,选择 AT89C51 单片机,按“确定”后,在随后弹出的 Vision 的对话框中选择“是” 。选择 File | New 命令,新建一个文档,然后保存。本设计采用 C 语言编写程序,故输入扩展名为“.c” 。保存文件后,Keil 会自动识别 C 语言程序中的关键字,并以不同的颜色显示。编写程序完成后,
39、双击 Keil 左边的 Project Workspace 窗口中的 Target 1,然后右键单击 Source Group 1 文件夹,在快捷菜单中选择 Add Files to Group Source Group 1,在弹出的 Add Files to Group Source Group 1对话框中选择文件类型为 C Source File 类型,将编完的 C 语言程序文件添加到 Source Group 1 中。在 Keil 中是以工程的方式对文件进行管理,为此需要将相关的目标文件加入到工程之中。右键单击 Project Workspace 窗口中的 Target 1 文件夹,在快
40、捷菜单中选择 Options for Target Target 1选项。在弹出的 Options for Target Target 1对话框中选择 Output 选项卡,选中 Create HEX File 复选框以生成 Proteus 所需的十六进制文件,如图所示,然后单击“OK”按钮。在 Keil 中选择 Project|Build target 命令,以产生目标程序和 HEX 文件。如果编译成功,则在 Output Window 子窗口中的 Build 选项页中出现如图所示信息。如果编译错误,则会在子窗口指示错误的语句。双击错误信息,光标回自动指向错误的语句。天津工业大学 2008
41、级测控系统原理与设计课程设计3.3 在 Proteus ISIS 中调试首先打开 Proteus ISIS,完成系统电路原理图的绘制.双击 U1 即 AT89C51,在弹出的 Edit Component 对话框 Program File 一栏中选择在 Keil 中产生的 Hex 文件。单击“OK”按钮。按 Ctrl+S 保存设计。第四章 感想与总结本文的详细设计了基于单片机 AT89C51 的温度监控系统,进行了Proteus 仿真,所设计程序已经在硬件平台上运行.此系统可广泛用于温度在0100测温范围之内的场合。天津工业大学 2008 级测控系统原理与设计课程设计通过本次温度监控系统的设计
42、,我大有收获,在制作过程中,一定要注意的每个工作步骤的检查,确保每步进展顺利。从整体来说这是一个复杂的过程,要细心谨慎,沉着冷静,反复检查,直到找到原因为止,实在解决不了可以请教同学或指导老师。虽然在制作过程中不可避免地遇到很多问题,但是最后还是在老师以及同学的帮助下解决了一些问题,实现了整个系统设计与调试,相关指标达到期望的要求,完成了本次课程设计任务。设计中难免会遇到各种各样的问题,特别是在编程方面花了很多时间,总是达不到理想的效果,就一直编下去,最后终于汇编成功,也有了以下感想:1、 编程要一步一步的进行,先实现简单的功能,然后再往上加;2、 C 语言一定要学会,因为编程容易,如果编大的
43、程序还要记清空间的分配;3、 KEILC 的使用:新建:New Project,要先建一个文件夹存新的工程,输入工程的名字,选择单片机的种类,接着进入工程,新建一个文本,保存的时候,要选择编程语言的种类,接着把存好的文本加到工程中,就可以了。调试:点放大镜里面一个 D 的图标,然后 F11 可以单步调试;4、 Proteus 的使用:单片机的 ALE 在 Proteus 里面不能仿真出来,所以不能用那种接法,可以直接提供 DCCLOCK,还可以调频率。红色的点代表高电平,蓝色代表低电平,灰色代表电平不确定,黄色代表短路,或者有冲突,虽然有时可以仿真出来,但是做实物,就一定会有问题,我调试的时候
44、,一开始 0808 的时钟有问题,所以 EOC 一直是黄色,数码管不停的闪,解决了时钟问题之后,就正常了。连线的时候一定要小心,千万不要在写网络标号的时候连线,那样是无效的,虽然看上去是连着的!还有左边那一溜图标的使用,基本看图标的样子就可以知道了。5、 弄清楚以上两个软件常用功能后,调试就简单多了,因为可以通过仿真的显示快捷得找到问题所在,从而排除问题;6、 用到的芯片,一定要先弄清楚它的使用的一切细节,比如时序,时钟一类的问题。否则不能正常工作。 7、 充分利用网络,先查所有要用到的东西的资料,然后在编程时遇到问题,可以直接上网查,因为在百度知道里面,很多人遇到了相同的问题,那些回答的人有
45、时会一语点醒梦中人8、 编程要耐心,不要因为软件的不稳定而影响心情慢慢调,总会出来的。平时要注意总结,常用的子程序直接存着,如果以后从事编程工作。9、 在 51 单片机编程的过程中,在 debug 模式下怎样查看 RAM 的内容呢?在一般的 IDE 中,Memory 窗口中就可以看到 RAM 空间的内容。但是在 keil 51 中,在 Memory 窗口中输入址值,我们看到的是程序代码区的内容。 天津工业大学 2008 级测控系统原理与设计课程设计其他方面也有一些问题,例如在显示模块上仍然需要进一步摸索和学习,还有在温度传感器模块中,测温电路的输出电压值不随理论的变化,我组同学在这些方面也下了
46、很大的功夫最终将这些问题都解决了,虽然不是很理想。 两周的课程设计时间很短暂,从给定课题到定稿,从理论到实践,两周来我们认真查资料、仿真、调试。理论与实践的结合很重要,只有理论知识是远远不够的,只有把理论知识与实践相结合,才能真正提高自己的动手实践能力和独立思考能力。两周的时间过去了,感谢隋老师和陆学长的悉心指导,自始至终关心督促毕业设计进程和进度,并为我们解决问题,帮助我们开拓设计思路,精心点拨。设计进展的每一步都凝结着老师辛勤的汗水,谨向老师致以深深的敬意!老师渊博的学识、严谨的治学态度已经成为我们学习的榜样;老师对学生辛勤的培养、诲人不倦的精神和对学生无私的关怀令我深为感动。同时,身边的
47、同学给了我许多的帮助。最后祝老师和同学们工作、学习顺利,身体健康,阖家欢乐!第五章 汇编程序与仿真电路5.1 汇编程序:L1 BIT P2.0L2 BIT P2.1L3 BIT P2.2L4 BIT P2.3ST BIT P2.4EOC BIT P2.5OE BIT P2.6CLK BIT P2.7CHA BIT 00HRES EQU 44HXH EQU 45HXH1 EQU 46HLAST EQU 48HORG 0000HLJMP MAINORG 000BHLJMP CLOCKORG 0013H LJMP KEYORG 1000HMAIN:MOV SP,#60H ;设堆栈指针 MOV P1,
48、#0FFH ;P1做输出口,先写1 SETB IT1 ;设置外部中断1为边沿触发方式,只有下降沿才能触发SETB EX1 ;开外部中断1MOV TMOD,#02H ;T0设为模式2MOV TH0,#0FFH ;定时时间为1微秒,一个机器周期为1微秒,所以初值为#0FFH,基本上每执行一条指令T0就中断一次MOV TL0,#0FFH SETB ET0 ;开定时器0的中断SETB PX1 ;设定时器0的中断为高级SETB EA ;开总中断SETB CLKSETB TR0 ;启动定时器0SETB CHA START:MOV R6,#8 ;共8个通道天津工业大学 2008 级测控系统原理与设计课程设计
49、MOV R7,#0F8H ;放通道数 XJ:JNB CHA,SINMOV XH,#100MOV A,R7 ;一定要先送通道选择信号,然后再启动A/D,否则,送零通道,转换的是七通道的值!MOV P3,ACLR ST ;必须让ST先有一个上升沿,后有一个下降沿,这样才能先复位,然后启动A/D,同时把EOC的电平变低SETB STCLR STJNB EOC,$SETB OEMOV A,P1MOV RES,ACLR OELCALL ZHLP:LCALL DISPLAYDJNZ XH,LPINC R7DJNZ R6,XJLJMP START ;主程序无限循环CLOCK:CPL CLK RETIKEY:PUSH ACCPUSH PSWCLR CHAPOP PSWPOP ACC RETISIN:MOV XH1,#100MOV 47H,R7MOV