单片机课程设计基于AT89S52 单片机的温度控制系统.doc

上传人:laozhun 文档编号:4147509 上传时间:2023-04-07 格式:DOC 页数:21 大小:1.72MB
返回 下载 相关 举报
单片机课程设计基于AT89S52 单片机的温度控制系统.doc_第1页
第1页 / 共21页
单片机课程设计基于AT89S52 单片机的温度控制系统.doc_第2页
第2页 / 共21页
单片机课程设计基于AT89S52 单片机的温度控制系统.doc_第3页
第3页 / 共21页
单片机课程设计基于AT89S52 单片机的温度控制系统.doc_第4页
第4页 / 共21页
单片机课程设计基于AT89S52 单片机的温度控制系统.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《单片机课程设计基于AT89S52 单片机的温度控制系统.doc》由会员分享,可在线阅读,更多相关《单片机课程设计基于AT89S52 单片机的温度控制系统.doc(21页珍藏版)》请在三一办公上搜索。

1、 机电学院课程设计说明书课程 设计 名称基于AT89S52的电热片温度控制系统设计教学系、部、室测控教研室专 业测控技术与仪器学 号070030122姓 名 指 导 教 师 目 录(一)功能描述(二)系统分析及设计1系统框图.2系统组成分析3测控系统硬件设计.(1)温度测量电路(2)主电路(3)控制电路.(4)报警与指示电路.(三)关键技术分析(四)系统总体电路设计.(五)系统软件设计.(六)课程设计总结.基于AT89S52 单片机的温度控制系统摘要: 本文介绍了一种基于AT89S52单片机的电阻炉温度控制系统,阐述了系统的工作原理、硬件电路以及软件设计。并且把整个硬件系统的电路设计划分为PT

2、00温度传感器与AT89S52单片机的硬件接口电路设计、数据显示设计、数据存储器的扩展电路设计、通信接口电路设计。该装置可实现环境温度的实时测量与控制,并能记录、存储相关数据,并附有通信接口,能应用方便。具有精度高、稳定性好的特点。此系统还设计了单片机与上位机的通信,实现了远程温度控制。这种方案可大大地提高工作效率和控制精度,有助于自动化水平的提高,具有良好的经济效益和推广价值。该系统经过实验,取得了较为满意的控制效果。关键字:单片机; AT89S52; 温度控制系统; 模数转换(一) 功能描述温度测控系统是一个基于AT89S52单片机的温度测量闭环控制系统,能通过pt100温度传感器对电热片

3、的温度信号进行采集,再由A/D 转换芯片ADC0809 将电压值转换成数字量, 经单片机采集后与设定温度进行比较,并把温度显示在数码管显示器上。当温度高于温度控制范围上线时,报警器发出蜂鸣声示警,同时AT89S52单片机会发出指令,关闭电热片的电源,同时开启散热扇,使温度不至于过高。当温度降到控制温度下限时,散热扇接受单片机指令停止工作,单片机再次发出指令,开启电热片。周而复始使温度始终控制在需求的控制范围之内。该系统测温范围为200400,报警上、下限为250-350。2 系统特点 精度高、测温范围广、报警及时,可广泛应用于基于单片机的测温报警。(二)系统分析及设计1系统框图LED温度显示器

4、电 热片温度传感器数模转换器AT89S52单片机电磁继电器超温示警蜂鸣器温度控制系统设计框图2系统组成分析1)AT89S52单片机此装置核心是AT89S52单片机,AT89S52单片机是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能:

5、 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S521引脚图如下各引脚功能及介绍P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,

6、每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0不具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.2分别作定时器/计数器2的外部计

7、数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能 P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,

8、被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内

9、部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。 端口引脚 第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机

10、复位。 ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN程序储存允许(PSEN)输

11、出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。 FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。2)温度传感器本设计采用热电阻传感器PT100,

12、又叫铂电阻,热电阻,是一种温度传感器,铂电阻温度系数为0.0039,0时电阻值为100,电阻变化率为0.3851/。 采用不锈钢外壳封装,内部填充导热材料和密封材料灌封而成,尺寸小巧,适用于精密仪器、恒温设备、流体管道等温度的测量,非常经济实用。铂电阻温度传感器精度高,稳定性好,应用温度范围广,是中低温区(-200400)最常用的一种温度检测器,不仅广泛应用于工业测温,而且被制成各种标准温度计。 按IEC751国际标准, 温度系数TCR=0.003851,Pt100(R0=100)、Pt1000(R0=1000)为统一设计型铂电阻。 PT100温度传感器原理PT100是一个温度传感器,是一种稳

13、定性和线性都比较好的铂丝热电阻传感器,可以工作在 -200 至 650 的范围.电阻式温度检测器(RTD,Resistance,Temperature Detector)是一种物质材料作成的电阻,它会随温度的上升而改变电阻值,如果它随温度的上升而电阻值也跟著上升就称为正电阻系数,如果它随温度的上升而电阻值反而下降就称为负电阻系数。大部分电阻式温度检测器是以金属作成的,其中以白金(Pt)作成的电阻式温度检测器,最为稳定耐酸碱、不会变质、相当线性最受工业界采用。PT100温度感测器是一种以白金(Pt)作成的电阻式温度检测器,属于正电阻系数,其电阻和温度变化的关系式如下:R=Ro(1+T)其中=0.

14、00392,Ro为100(在0的电阻值),T为摄氏温度因此白金作成的电阻式温度检测器,又称为PT100。 1:Vo=2.55mA 100(1+0.00392T)=0.255+T/1000 。2:量测Vo时,不可分出任何电流,否则量测值会不准。电路分析由于一般电源供应较多零件之后,电源是带杂讯的,因此我们使用齐纳二极体作为稳压零件,由于7.2V齐纳二极体的作用,使得1K电阻和5K可变电阻之电压和为6.5V,靠5K可变电阻的调整可决定电晶体的射(集极)极电流,而我们须将集极电流调为2.55mA,使得量测电压V如箭头所示为0.255+T/1000。其后的非反向放大器,输入电阻几乎无限大,同时又放大1

15、0倍,使得运算放大器输出为2.55+T/100。6V齐纳二极体的作用如7.2V齐纳二极体的作用,我们利用它调出2.55V,因此电压追随器的输出电压V1亦为2.55V。其后差动放大器之输出为Vo=10(V2-V1)=10(2.55+T/100-2.55)=T/10,如果现在室温为25,则输出电压为2.5V。工作原理:传感器的接入非常简单,从系统的 5V 供电端仅仅通过一支 3K92 的电阻就连接到 PT100 了.这种接法通常会引起严重的非线性问题,但是.由于有了单片机的软件校正作为后盾,因此就简化了传感器的接入方式.3)模数转换器ADC0809引脚图A/D转换器芯片ADC0809简介 8路模拟

16、信号的分时采集,片内有8路模拟选通开关以及相应的通道抵制锁存用译码电路,其转换时间为100s左右。ADC0809的内部结构ADC0809的内部逻辑结构图如下图所示。 ADC0809内部逻辑结构 图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对 A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表为通道选择表。 信号引脚ADC0809芯片为28引脚为双列直插式封装,其引脚排列见图9.8对ADC0809主要信号引脚的功能说

17、明如下:IN7IN0模拟量输入通道 ALE地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。START转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持 低电平。本信号有时简写为ST.A、B、C地址线。 通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。其地址状态与通道对应关系见表CLK时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号EOC转换结束信号。EOC=0,正在进行转换;EO

18、C=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。D7D0数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高 OE输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。Vcc +5V电源。Vref参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V, Vref(-)=-5V).ADC0809与AT89S52的连接电路连接主要涉及两个问题。一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送。8路

19、模拟通道选择 如左下图所示模拟通道选择信号A、B、C分别接最低三位地址A0、A1、A2即(P0.0、P0.1、P0.2),而地址锁存允许信号ALE由P2.0控制,则8路模拟通道的地址为0FEF8H0FEFFH.此外,通道地址选择以作写选通信号,这一部分电路连接如右下图所示。信号时间的配合信号时间的信号时间的配合ADC0809的部分信号连接 从图中可以看到,把ALE信号与START信号接在一起了,这样连接使得在信号的前沿写入(锁存)通道地址,紧接着在其后沿就启动转换。图9.19是有关信号的时间配合示意图。启动A/D转换只需要一条MOVX指令。在此之前,要将P2.0清零并将最低三位与所选择的通道好

20、像对应的口地址送入数据指针DPTR中。例如要选择IN0通道时,可采用如下两条指令,即可启动A/D转换:MOV DPTR , #FE00H ;送入0809的口地址MOVX DPTR , A ;启动A/D转换(IN0)注意:此处的A与A/D转换无关,可为任意值2. 转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。(1)定时传送方式对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共 64个机

21、器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。(2)查询方式 A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可却只转换是否完成,并接着进行数据传送。(3)中断方式把表明转换完成的状态信号(EOC)作为中断请求信号以中断方式进行数据传送。不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。不管使用上述那种方式,只要一旦确认转换结束,便可通过指令进行数据传送。

22、所用的指令为MOVX 读指令,仍以图9-17所示为例,则有MOV DPTR , #FE00HMOVX A , DPTR该指令在送出有效口地址的同时发出有效信号,使0809的输出允许信号OE有效,从而打开三态门输出,是转换后的数据通过数据总线送入A累加器中。 这里需要说明的示,ADC0809的三个地址端A、B、C即可如前所述与地址线相连,也可与数据线相连,例如与D0D2相连。这是启动A/D转换的指令与上述类似,只不过A的内容不能为任意数,而必须和所选输入通道号IN0IN7相一致。例如当A、B、C分别与D0、D1、D2相连时,启动IN7的A/D转换指令如下:MOV DPTR, #FE00H ;送入

23、0809的口地址MOV A ,#07H ;D2D1D0=111选择IN7通道MOVX DPTR, A ;启动A/D转换4)LED七段数码管显示器在单片机系统中,通常用LED数码显示器来显示各种数字或符号,由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。它由若干个发光二极管组成,当发光二极管导通时,相应的一个点或一个笔画发亮。控制不同组合的二极管导通,就能显示出各种字符。常用的LED7显示器有七段和“米”字段之分,有小数点位的7段显示器的字形码为八位二进制,正好一个字节,“米”字显示器有15个发光二极管,所以其字形码需两个字节。这两类显示器都有共阳极和共阴极两种接法,共阴

24、极LED显示器的发光二极管阴极连接在一起,通常此公共阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示;同样,共阳极LED显示器的发光二极管阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极为低电平时,发光二极管点亮,相应的段被显示。共阳极和共阴极的字形码是不同的,而且字形码可由设计者根据硬件接线的不同自行设计,不必局限于固定格式。在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。当显示器位数较少时,适合采用静态显示的方法。当位数较多时,用静态显示所需的I/O太多,一般采用动态显示的方法。所谓静态显示,就是每一个显示器都要占用单独的具有锁存

25、功能的I/O接口用于笔划段字形显示。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小,较小的电流能得到较高的亮度且字符不闪烁。所谓动态显示就是一位一位地轮流点亮显示器各个位(扫描),对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必需保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。若显示器的位数不大于8位,控制显示器的各位所显示的字形需一个8位口,称为段数据口,显示器

26、的哪一个LED显示还需要一个位选择控制,称为位控口。动态显示接口方法一位LED显示可以采用较为简单的控制电路来实现,此接口电路使用了专用的七位段码的译码器/驱动器,可以把一位十六进制数(4位二进制数)译码为相应的字形代码,并提供足够的功率去驱动发光二极管。使用这种接口方法,虽然软件简单,仅需使用一条输出线指令就可以进行LED显示,但硬件却比较多,而硬件译码又缺乏灵活性。如果所用的LED显示器不只一个,则可以利用I/O接口电路来完成,如有三位LED要显示,可直接利用接口芯片(如8155)输出位控和段控数据。其电路结构如下图:其中8155的PB口作段选码口,经7407驱动与LED的段相连,8155

27、的PA0PA5作选码口,经7406驱动与LED的位相连。图中P2.7反相后作8155的片选CE,P2.6接8155的IO/M端。这样确定的8155片内4个端口地址如下: 命令、状态口: FFF0H A口: FFF1H B口: FFF2H C口: FFF3H6位待显示字符从左到右一次存放在内部RAM显示缓冲区7AH7FH,显示次序位从右到左进行。程序后面的TAB地址为段选码表首地址,表中段选码存放的次序为0F等等。一下为循环动态显示6位字符的程序。8155命令字为03H.MOV A,#03HMOV DPTR,#0FFF0HMOVX DPTR,ADL: MOV R0,#7FH MOV R2,#01

28、HDL1: MOV A,R0DEC R0MOV DPTR,#TABMOVC A,A+DPTRMOV DPTR,#0FFF2HMOVX DPTR,AACALL DL1MSJB ACC.5,DLRL AMOV R2,AAJMP DL1TAB: DB 3FH ,06H,5BH,4FHDB 66H,6DH,7DH,07HDB 7FH,6FH,77H,7CHDB 39H,5EH,79H,7CHDB 40H,00HDL1MS:MOV R7,#02HDL0: MOV R6,#0F9HDL10: DJNZ R6,DL10DJNZ R7,DL0RET3 系统硬件设计本系统的硬件设计主要包括单片机的最小系统、温度

29、采集电路、8155 扩展电路、LED七段数码管显示器显示接口、键盘接口、蜂鸣器报警电路以及串口通信等。图1 中AT89S52 为主控制器件, AT89S52是ATMEL 公司生产的低电压、高性能CMOS 8 位单片机, 片内含有8K 字节的EPROM 和256 字节的RAM。本系统采用8155A 芯片来扩展键盘和液晶显示, 模数转换芯片ADC0809 以及MAX232 实现RS 一232C 标准接口通信电路。以下是各部分电路功能:(5)报警和提示装置:蜂鸣器和发光二极管蜂鸣器报警电路由晶体管和蜂鸣器组成,由单片机I/O口输出信号控制晶体管的导通或者截止,晶体管导通,则蜂鸣器报警,通过单片机来控

30、制蜂鸣器来产生报警声音。另外,为了提醒注意,本系统还设计了两个发光二极管(一红一绿),用以区分是高温报警还是低温报警。(6)散热装置电风扇选择为12V,0.6W的。(7)电热片(8)继电器为了能使单片机(AT89S52)能够控制电热片和电风扇的通断,本系统运用了继电器的开关特性,将通过I/O口的值来控制继电器的通断从而控制电风扇和电热片。4测控系统硬件设计(1)温度测量电路(2)控制电路(3)报警及显示电路报警电路显示电路(三)关键技术分析通过对采样信号进行滤波减小随机误差由于外界干扰或某些不可预知的因素,模拟量在受到干扰后,经 A/D 转换后的结果偏离了真实值,可能会出现一些随机的误差,如果

31、只采样一次,无法确定结果是否可信。必须通过多次采样得到一个 A/D 转换的数据序列,通过软件算法处理后才能得到一个可信度较高的结果。这种方法就是数字滤波。通过数字滤波的方法可进一步提高温度的可信度。(四)系统总体电路设计(五)系统软件设计系统总程序如下:#includesbit HIGH_LED = P14; /高温预警sbit LOW_LED = P15;sbit DRP = P16; / 电热片sbit DFS = P17; / 电风扇sbit ST = P10;sbit EOC = P11;sbit OE = P12;sbit CLK = P13;sbit FMQ = P34; /蜂鸣器

32、,低电平有效/ 显示段码0-9 Unsigned char code table_dot10=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10; /带小数点unsigned char code table10 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/温度组织对照int code T_biao21 = 200,210,220,230,240,250,260,270,280,290,300, 310,320,330,340,350,360,370,380,390,400;float

33、code R_biao21 = 175.85,179.53,183.19,186.84,190.47,194.1, 197.71,201.31,204.9,208.48,212.05,215.61, 219.15,222.68,226.21,229.72,233.81,236.7, 240.18,243.64,247.09;/延时函数, 对于12MHz时钟, 例i=10,则大概延时10ms. void delay(unsigned int i) unsigned int j; while(i-) for(j = 0; j 125; j+); void systemInit() /系统初始化 E

34、A = 1; TMOD = 0X02; TH0 = 216; TL0 = 216; TR0 = 1; ET0 = 1; ST = 0; OE = 0;unsigned char AD() unsigned char AD_data; ST = 1; delay(2); ST = 0; while(0=EOC); OE = 1; AD_data = P2; OE = 0; return AD_data;unsigned int U_turn_T(unsigned char U) unsigned int temp; bit flag = 1; unsigned char i = 0; float

35、 R; float T = 999.9; /*把U转变成R*/ /*得到R后*/ if(R R_biao0) return 0; for(i=0;i20;i+) /i20没没完说明温度过高,此时T值为999.9 if(RR_biaoi+1) T = T_biaoi+(R-R_biaoi)*(T_biaoi+1-T_biaoi)/(R_biaoi+1-R_biaoi); break; temp = T*10 + 0.5; return temp;unsigned int getTmpValue() unsigned int T = 0; unsigned char AD_data12; unsi

36、gned char i,U,tmp; for(i=0;i=0;i-) if(AD_data11AD_datai) tmp = AD_data11; AD_data11 = AD_datai; AD_datai = tmp; for(i=9;i=0;i-) if(AD_data10AD_datai) tmp = AD_data10; AD_data10 = AD_datai; AD_datai = tmp; for(i=0;i10;i+) T += AD_datai; U = T/10 + 0.5; T = U_turn_T(U); return T;void systemRun( int t)

37、 if(t250&t260&t340&t=350) FMQ = 1; LOW_LED = 1; HIGH_LED = 1; DRP = 0; DFS = 1; else FMQ = 0; LOW_LED = 1; HIGH_LED = 0; DRP = 1; DFS = 0; void display(unsigned int t) unsigned char tmp1,tmp2,tmp3,tmp4; bit flag_FMQ ;flag_FMQ = FMQ; tmp4 = t / 1000 ; /千位 tmp3 = t / 100 % 10; /* 计算百位数值 */ tmp2 = t /

38、10 % 10; /* 计算十位数值 */ tmp1 = t % 10; /* 计算个位数值 */ if(flag_FMQ) P0 = tabletmp4; P3 = 0xfe; delay(2); P0 = tabletmp3; P3 = 0xfd; delay(2); P0 = table_dottmp2; P3 = 0xfb; delay(2); P0 = tabletmp1; P3 = 0xf7; delay(2); else P0 = tabletmp4; P3 = 0x7e; delay(2); P0 = tabletmp3; P3 = 0x7d; delay(2); P0 = t

39、able_dottmp2; P3 = 0x7b; delay(2); P0 = tabletmp1; P3 = 0x77; delay(2);void main() int t; systemInit(); while(1) t = getTmpValue(); systemRun(t); display(t); (六)课程设计总结这次课程设计用到单片机,CAD制图、汇编语言、模拟和数字电路知识等好多知识,这些好多都是以前学过的内容,虽然感觉理论上已经掌握,但在运用到实践的过程中还是感觉不够用,很多基础的东西都还没有很好的掌握。小组人员的配合相处,以及自身的动脑和努力,都是以后工作中需要的。要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号