【精编】基于51单片机、K型热电偶、MAX6675的8路温度显示系统.pdf

上传人:索**** 文档编号:85778066 上传时间:2023-04-12 格式:PDF 页数:51 大小:9.15MB
返回 下载 相关 举报
【精编】基于51单片机、K型热电偶、MAX6675的8路温度显示系统.pdf_第1页
第1页 / 共51页
【精编】基于51单片机、K型热电偶、MAX6675的8路温度显示系统.pdf_第2页
第2页 / 共51页
点击查看更多>>
资源描述

《【精编】基于51单片机、K型热电偶、MAX6675的8路温度显示系统.pdf》由会员分享,可在线阅读,更多相关《【精编】基于51单片机、K型热电偶、MAX6675的8路温度显示系统.pdf(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于 5单片机、K 型热电偶、MAX667 的 8 路温度显示系统作者:日期:自动化工程训练课程设计学院名称信息科学与工程学院专业班级自动化 122 班姓名黎毅刚指导老师刘芳目录第一章.绪论第二章.方案论证2.温度采集方案.2 显示界面方案第三章.系统整体设计3.系统总体分析3.2 设计原理第四章.各个元器件及芯片简介41 T89C5 单片机介绍4.2 K型热电偶简介.3 M 6675 简介.4 LCD12864 简介第五章.各部分电路设计51 温度采集电路2 数据处理电路5.3 温度显示电路5.4 超限报警电路第六章.心得体会附录硬件仿真图与运行效果展示附录 2 软件代码第一章绪论在工业生产

2、中,需要检测工艺生产线的温度,而且这个温度范围还很大。该系统采集主要以 Atml 公司的 A9C51单片机为控制处理核心,由它完成对数据的采集处理以及控制数据的无线传输。AT89C51单片机是一种低功耗/低电压/高性能的位单片机,片内带有一个 8K的可编程可擦除只读存储器。无线收发一体数传 MODEM模块 PTR 000 芯片性能优异,在业界居领先水平,它的显著特点是所需外围元件少,因而设计非常方便。因此用来设计工业温度检测系统相当的合适。在本文中,主要说明单片机与K型热电偶以及 K型热电偶模数转换器X667 的组合,形成单片机的温度检测系统。包括:如何针对系统的需求选择合适的温度检测器件,如

3、何根据选择的器件设计外围电路和单片机的接口电路,如何编写控制温度检测器件进行数据传输的单片机程序,并简要介绍数字温度传感器 A675的应用。第二章方案论证2.温度采集方案方案一:模拟温度传感器。采用热敏电阻,将温度值转换为电压值,经运算放大器放大后送 A/D 转换器将模拟信号变换为数字信号,再由单片机经过比较计算得到温度值。优点:应用广泛,特别是工程领域,采用不同的热敏电阻,可实现低温到超高温的测量。缺点:必须采用高速高位AD转换器,系统复杂,成本高,还以引进非线性误差,得通过软件差值修正方案二:采用集成数字温度传感器DS18B20。该传感器采用单总线接口,能方便的与单片机通信。测温范围从-5

4、5 到+125,测温精度 9-12 位可调,12 位时最大转换时间为 7ms,但是不满足本设计的要求。缺点:不能实现高温测量。方案三:采用型热电偶与型热电偶模数转换器MAX667 的组合,该组合采用单总线接口,能方便的与单片机通信,测量范围从 0 到1050 度,测温精度为 12 位,完全满足本设计的要求,因此采用此方案。22 显示界面方案方案一:用数码管显示,优点:结构简单,成本低。缺点:只能显示一测量点和有限的符号。方案二:采用 LCD 2864 显示。可以实现中英文操作提示,方便人机交换。能同时显示多点温度值,使用方便,而且价格适中,本系统设计为多点温度采集情况可以采用。第三章系统总体设

5、计31 系统总体分析本系统采用的是 K 型热电偶采集温度,因此本设计有温度采集部分,数据处理部分,温度显示部分,故障显示并显示部分组成。A89C5单片机以及单片机的外围电路由晶振电路,复位电路,温度采集电路,温度显示电路,超限报警电路组成。系统设计框图如下:系统设计框图设计原理温度采集部分先使用K 型热电偶对环境温度进行检查,再经过K 型热电偶模数转换器MAX6675,进行温度转换,将环境温度转换成位二进制数据采集进单片机,以便单片机进行数据处理。在本系统中,由于是 8 路温度采集,因此使用串行的方式,依次对 8 路温度进行采集,并用单片机的P2口来传输与反馈数据。数据处理部分利用算法,在单片

6、机中对采集到的数据进行处理,并转换成百、十、个位通过 P0口进行输出。温度显示部分通过调用 LD的显示函数,将温度以两列的方式实时地显示在CD上。超限报警部分通过软件算法,检测 8 度的温度是否在100 度到 999 度的范围内,一旦超过这个范围,这进行故障报警,并在LCD 上显示“超温”或者“低温”,并且同时通过蜂鸣器以及 LED 灯,来进行声光报警。单片机LCD温超 限 报晶振八路第四章各个元器件及芯片简介.1 A89C51单片机介绍T89C1 单片机简介AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPROFals Programablan Esble Rea Only

7、 Memoy)的低电压,高性能 CMO8 位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除 0次。该器件采用 AMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS1 指令集和输出管脚相兼容。由于将多功能 8 位 CU 和闪烁存储器组合在单个芯片中,ATME 的 A89C5是一种高效微控制器,89C1 是它的一种精简版本。1主要特性:1、与 MCS-5 兼容、4K 字节可编程闪烁存储器、1000 写擦循环数据保留时间 0年4、全静态工作,0z-4Hz 三级程序存储器锁定5、12*8 位内部 RAM 2 可编程 I/O 线、两个 1位定时器计数器7、5 个中断源8、可编程串行

8、通道低功耗的闲置和掉电模式9、片内振荡器和时钟电路主要管脚说明:P口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TL 门电流。当P1口的管脚第一次写1 时,被定义为高阻输入。0 能够用于外部程序数据存储器,它可以被定义为数据地址的第八位。P1口:P1口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1口缓冲器能接收输出4TT门电流。P1口管脚写入后,被内部上拉为高,可用作输入,1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P2口:P2口为一个内部上拉电阻的位双向I口,P口缓冲器可接收,输出 4 个 TTL 门电流,当 P口被写“1”时,其管脚被内部上拉

9、电阻拉高,且作为输入。并因此作为输入时,P口的管脚被外部拉低,将输出电流。P2口当用于外部程序存储器或16 位地址外部数据存储器进行存取时,P2口输出地址的高八位。P3口:P3 口管脚是 8 个带内部上拉电阻的双向I/O 口,可接收输出 4 个T门电流。当 P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。4.2 K 型热电偶简介型热电偶作为一种温度传感器,K型热电偶通常和显示仪表,记录仪表和电子调节器配套使用。K型热电偶可以直接测量各种生产中从到100范围的液体蒸汽和气体介质以及固体的表面温度。型热电偶通常

10、由感温元件、安装固定装置和接线盒等主要部件组成,型热电偶是目前用量最大的廉金属热电偶,其用量为其他热电偶的总和。型热电偶丝直径一般为1.24.0mm。K型热电偶具有线性度好,热电动势较大,灵敏度高,稳定性和均匀性较好,抗氧化性能强,价格便宜等优点,能用于氧化性惰性气氛中广泛为用户所采用。热电偶测温由热电偶、连接导线及显示仪表三部分组成。如果将热电偶的热端加热,使得冷、热两端的温度不同,则在该热电偶回路中就会产生热电势,这种物理现象就称为热电现象(即热电效应)。在热电偶回路中产生的电势由温差电势和接触电势两部分组成。接触电势:它是两种电子密度不同的导体相互接触时产生的一种热电势。当两种不同的导体

11、A和相接触时,假设导体 A和的电子密度分别为NA和B并且 ANB,则在两导体的接触面上,电子在两个方向的扩散率就不相同,由导体 A扩散到导体 B的电子数比从 B扩散到 A的电子数要多。导体 A失去电子而显正电,导体获得电子而显负电。因此,在A、两导体的接触面上便形成一个由 A到的静电场,这个电场将阻碍扩散运动的继续进行,同时加速电子向相反方向运动,使从 B到 A的电子数增多,最后达到动态平衡状态。此时 A、B之间也形成一电位差,这个电位差称为接触电势。此电势只与两种导体的性质相接触点的温度有关,当两种导体的材料一定,接触电势仅与其接点温度有关。温度越高,导体中的电子就越活跃,由导体扩散到 B导

12、体的电子就越多,接触面处所产生的电动势就越大,即接触电势越大。4.3 M667简介热电偶作为一种主要的测温元件,具有结构简单、制造容易、使用方便、测温范围宽、测温精度高等特点。但是将热电偶应用在基于单片机的嵌入式系统领域时,却存在着以下几方面的问题。线性:热电偶输出热电势与温度之间的关系为非线性关系,因此在应用时必须进行线性化处理。冷补偿:热电偶输出的热电势为冷端保持为0时与测量端差值,而在实际应用中冷端的温度是随着环境温度而变化的,故需要进行冷端补 数字化输出与嵌入式系统接口必然要采用数字化输出及数字化接口,而作为模拟小信号测温元件的热电偶显然无法直接满足这个要求。因此,若将热电偶应用于嵌入

13、式系统时,须进行复杂的信号放大、D转换、查表线性化、温度补偿及数字化输出接口等软硬件设计。如果能将上述的功能集成到一个集成电路芯片中,即采用单芯片来完成信号放大、冷端补偿、线性化及数字化输出功能,则将大大简化热电偶在嵌入式领域的应用设计。MA 65 性能及结构Maxim公司新近推出的675 是一复杂的单片热电偶数字转换器,内部具有信号调节放大器、位的模拟数字化热电偶转换器、冷端补偿传感和校正、数字控制器、个 SP 兼容接口和 1 个相关的逻辑控制。MA 675 内部集成有冷端补偿电路;带有简单的 3 位串行 SI 接口;可将温度信号转换成12位数字量,温度分辨率达0.2;内含热电偶断线检测电路

14、。冷端补偿的温度范围-208,它的温度分辨能力为0.2,可以测量 023 75的温度,工作电压为 3.0.5V。AX66 的主要特性如下:简单的 SI 串行口温度值输出;0+024的测温范围;1位 0.25 的分辨率;片内冷端补偿;高阻抗差动输入;热电偶断线检测;单一+5V的电源电压;低功耗特性;工作温度范围-0+85;2000V的 ESD信号。该器件采用引脚 SO帖片封装。引脚排列如图1 所示,引脚功能如下表所列。6675 的工作原理与功能根据热电偶测温原理,热电偶的输出热电势不仅与测量端的温度有关,而且与冷端的温度有关,使用硬件电路进行冷端补偿时,虽能部分改善测量精度,但由于热电偶使用环境

15、的不同及硬件电路本身的局限性,效果并不明显;而使用软件补偿,通常是使用微处理机表格法或线性电路等方法来减小热电偶本身非线性带来的测量误差,但同时也增加了程序编制及调试电路的难度。MAX667 对其内部元器件参数进行了激光修正,从而对热电偶的非线性进行了内部修正。同时,MAX675内部集成的冷端补偿电路、非线性校正电路、断偶检测电路都给型热电偶的使用带来了极大方便,其工作原理如图 2 所示。(1)温度变换MAX 6内部具有将热电偶信号转换为与AC输入通道兼容电压的信号调节放大器,T+和-输入端连接到低噪声放大器A1,以保证检测输入的高精度,同时是热电偶连接导线与干扰源隔离。热电偶输出的热电势经低

16、噪声放大器A1放大,再经过 A电压跟随器缓冲后,送至AD 的输入端。在将温度电压值转换为相等价的温度值之前,它需要对热电偶的冷端进行补偿,冷端温度即是AX6 5 周围温度与 0实际参考值之间的差值。对于K型热电偶,电压变化率为1/,电压可由线性公式 Vout=(4 )(tR-tAMB)来近似热电偶的特性。上式中,ou为热电偶输出电压(mV),R是测量点温度,t M 是周围温度。(2)冷端补偿热电偶的功能是检测热、冷两端温度的差值,热电偶热节点温度可在0+1023.7范围变化。冷端即安装AX6675的电路板周围温度,比温度在-20 85范围内变化。当冷端温度波动时,AX 6仍能精确检测热端的温度

17、变化。(3)热补偿在测温应用中,芯片自热将降低 X675温度测量精度,误大小依赖于MAX 75 封装的热传导性、安装技术和通风效果。为降低芯片自热引起的测量误差,可在布线时使用大面积接地技术提高AX 7温度测量精度。(4)噪声补偿M 6675的测量精度对电源耦合噪声较敏感。为降低电源噪声影响,可在 M X667的电源引脚附近接入只01F陶瓷旁路电容。(5)测量精度的提高热电偶系统的测量精度可通过以下预防措施来提高:尽量采用不能从测量区域散热的大截面导线;如必须用小截面导线,则只能应用在测量区域,并且在无温度变化率区域用扩展导线;避免受能拉紧导线的机械挤压和振动;当热电偶距离较远时,应采用双绞线

18、作热电偶连线;在温度额定值范围内使用热电偶导线;避免急剧温度变化;在严劣环境中,使用合适的保护套以保证热电偶导线;仅在低温和小变化率区域使用扩展导线;保持热电偶电阻的事件(6)SPI 串行接口 6675采用标准的 PI 串行外设总线与 MCU 接口,且 MA 75 只能作为从设备。MAX 67 SO端输出温度数据的格式如图3 所示,MA 6675 SPI接口时序如图 4 所示。A6675 从 SPI 串行接口输出数据的过程如下:MC 使S变低并提供时钟信号给SC,由 S读取测量结果。CS变低将停止任何转换过程;变高将启动一个新的转换过程。一个完整串行接口读操作需16 个时钟周期,在时钟的下降沿

19、读1个输出位,第 1 位和第 15 位是一伪标志位,并总为0;第 14 位到第 3 位为以 MSB 到 LSB顺序排列的转换温度值;第2 位平时为低,当热电偶输入开放时为高,开放热电偶检测电路完全由MAX6675 实现,为开放热电偶检测器操作,T-必须接地,并使能地点尽可能接近N脚;第位为低以提供 MAX 7器件身份码,第 0 位为三态。4.4 LCD12864 简介带中文字库的 28X64 是一种具有 4 位/8 位并行、2 线或 3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为 12864,内置 192 个 16*6 点汉字,和 18 个68

20、 点AS I 字符 集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84 行 116 点 阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。第五章各部分电路设计温度采集电路.硬件部分该部分为路温度采集,采用 K型热电偶与K型热电偶模数转换器 MAX 65 互相搭配的方式,如下图所示:以其中一路为例,M65 的冷热接收端分别于热电偶的冷热端相连,其串行数据输出端分别与单片机的口相连,如下图所示:之后

21、MA 6675 的时钟信号端以及使能端分别与P.和 P1.1 端相连,如下图所示:以上就是整个温度采集部分的硬件接线图512 软件部分由于 MA 6675 采用的是 2 位二进制的串行数据输出的方式,而且,其有效的数据分别在314 位,因此需要进行串行数据的移位操作,以下为部分软件算法:or(i=0;6;i+)emp_=;?p_();?K=1;if(O1=1)T mp1Temp1|01;e e Temp_1=ep1|0 x00;?_nop_();?SC 0;?_np();emp_1 mp_14;Tep_1Temp_1*1024/4096;以上算法把数据左移移一位,然后再右移四位,从而得到完整的

22、1位二进制温度数据。5.2 数据处理电路5.2 1 硬件部分该部分数据处理主要在单片机内部进行,并且将处理后的数据从P口输出到 LD进行显示,如下图所示:.2 软件部分将处理后的数据分别处理成百、十、个位进行输出,以下为部分软件算法:if(wendu1=00)guz an_f a1=0;1temp1%10;temp1=tem/0;sh 1=tmp1%;bai emp1/10;通过以上算法,就可以将数据分解成百、十、个,从而方便地在 LD上显示。5.温度显示电路.3.1硬件部分该部分是通过 CD进行对温度数据的显示其使能端与1 口相连,数据输入端与 P0口相连,如下图所示:通过以上的连接,可以实

23、现单片机对LC 的控制以及温度数据的显示。5.3.2 软件部分LCD上的汉字以及数据,都需要使用相应的字模软件来对汉字和数据进行编码,并存储在相应的数组中,通过相应的函数调用,将所需显示的数据,按照相应的格式显示在 LCD上,以下为部分软件算法:汉字显示函数:vod Dsplay_HZ(u hr sc een,chr pa e,u hr co un,uchar*p)uchar i;?SlectS ree(s r en);Se_page(page);?写上半页:*8 St_colum(colu*);?/控制列or(i=0;i 1;i+)?/控制 16列的数据输出,左右各 64 个点,可显示 4

24、个汉字?r eLD_d ta();?/汉字的上半部分?Sepage(ge+1);?/写下半页:16*8?Set_olumn(col mn*16);?/控制列or(i 0;i16;+)?/控制 16列的数据输出?wri eLD_dat(pi+6);?/汉字的下半部分?数字显示函数:void Disp ay_ASCII(uc a scr en,uh pa e,uchar l mn,ucr*p)/左右各 6个点,可显示 8 个字符?ucha;?SelectScreen(screen);?t pae(pa);?Set_colu n(column);?fo(i 0;8;i+)?/显示字符上半部分:8*8

25、?r te_LCD_ aa(pi);Setpage(ae1);?/显示字符下半部分:8*8?Set_ol n(coumn);o(i=;8;i)?w rite_LCD_d ta(i 8);?调用方式如下:Displ y_Z(1,0,2,huan);Diplay_HZ(1,,yin);Display_ASCII(1,0,0*8,sh 0);Displa _ASCII(1,0,1*,hu1);以下为 LCD显示函数部分:(以 1 路为例)vid Disp_temp()tempw du1;if(endu100)zhag_flag 0;g 1=emp1%10;ep1t mp1/1;s i temp1%1

26、0;ba1=temp1/0;Dis la _ASCII(,0,8,s uzi ai1);D s _AS (1,0,*8,huis i1);D spayAS II(,0,6*8,shi 1);DipaASCII(1,0,7*,shuz 1);els i(wndu999)guzhng_flag1=1;Display_(1,2,hao);Disl y_HZ(1,0,,wen);?e se if(wendu 1)guhng_l 1=1;D slay_ Z(1,0,2,di);Displ y_HZ(1,0,3,wen);通过以上的软件算法,可以直观的以两列的方式显示8 路温度的数值,并且当出现温度超限时

27、,还会出现文字提示报警。5.4 超限报警电路5.4.1 硬件部分该部分硬件上由于是声光报警,因此需要蜂鸣器和 LED灯,分别将这两个部件连接至 P1.2 和 P.4 口,对其进行控制,如下图:5.2 软件部分通过设立超限标志位,当出现超限时,对标志位进行置位,并通过判断标志位,来判断是否出现超限,并报警,部分软件算法如下:i(guzhang_flag1=1|gzhang_flag2=1|uzh n_f ag=1|zhan_fl g4=1|guzha gfla 5=1|g hngf g1|uzg_f g7=|zhag_l g=)SO ND=1;ED=1;el e if(uzhag_flag1=0

28、&gza f g2=0&uzan_fa3=0&guzh ngflag4=0&uzhng_f ag5=0&guzhan _flag6=0&guz an_l =0&guzh ng_fla 8=0)SOUND;LED=;通过以上的软硬件结合,就能够顺利的实现超限报警功能。第六章心得体会通过这次工程训练课程设计,自己对理论知识的掌握有了更加深刻的体会。记得刚开始拿到题目时,到网上搜索了一下,发现有很多温度检测的课程设计,心里还曾经暗暗地庆幸自己选了一个容易的题目,但是到后面做的时候,在发现老师给我们挖了一个坑。首先,网上的资料没有这么宽的温度检测范围,其次就算有个别符合要求的温度范围,也只是一路的温度

29、检测。所以,在前期的设计中,自己真的是遇到了问题,不过,功夫不负有心人。我先一个模块,一个模块的调试,首先需要解决的是温度检测范围的问题,因此经过一番查找,终于发现了MAX667 这个神奇的东西,得意解决了范围问题。然后就是多路温度检测的问题,我先检测一路是否可行,后面发现一路确实可行,最后延伸到八路,反复的调整数据,终于解决了多路的问题。最后是显示,还好自己曾经使用过 CD128 4,上手也比较容易。就是通过这样一个模块,一个模块的调试,最终把这个有点坑的题目给解决了。在完成题目的那一刻,自己心中真的欣喜不已,当然其中还有一些不足,就是温度检测还会有一些误差,温度越高,误差越大,不过都在 5

30、 度以内,以工业要求,应该是可行的。还有就是如果有个上位机功能,系统功能会更加的实用一些。总的来说,这次课设还是顺利地完成了,尽管其中还有一些不足,但是自己在单片机方面也进步了许多,希望在今后的学习生活中,能够不断地进步,最后感谢老师给我这次进步的机会,谢谢。附录 1 硬件仿真图附录 2 软件代码以下是软件部分的结构截图,读者只需将相应的的软件部分复制,按截图的结构来搭构,就能组成一个完整的软件部分。当然由于时间仓促,还有不足的地方,望读者改进。main.c 部分是主程序部分,对温度数据进行处理并换算,如下:man c#inlue#iclde trns.h#nclud hz.h#inc de2

31、 4.#defneuch r nsigned hardfine nt ninedintsbit SO1=P20;/串行数据输入sbtSO=21;sbt SO3=P22;sSO4P23;s t O5=P2;sbitSO6=P2;sbiSO P2;sbit S8=P2;sbitL=34;bit SO D=P 2;bS K=P10;bt S=P1;uint j,;u a guzhang_fl g1=0,guzh g l 2=0,u ag_flag3=0,guzh ng_lag=,guzang_flag50,guhangfla6=0,guzha _flag7=0,g hngflag8=0;flo t

32、endu,w du,en u3,wendu4,du5,wend6,wend,wendu8;oiRe_Co ert();uiRe Covet1();uint R_Convert_();inRe_Convert_3();inteConert_();uint _Convet_5();uint Re Cne 6();uinRe_Convrt_7();uinReConer();vid Dis_tep();uc a bai1=0,bi20,a3=0,bai4=0,ba 5=0,bai6=0,bai7=0,ba8=0;ucha shi=0,shi2=0,sh30,shi=,shi5=0,si6=0,shi7

33、=0,shi8 0;che=0,g2=0,e 0,e4=0,e 0,ge=0,ge7=,ge8=;uintP_emp;uint tem1,emp,mp3,tmp4,tmp5,ep,p,temp8;uhr O8;vo d dela ms(uit z)uhar y;wile(z-)fo(;y12;y+);it Re_Convr _1()u har;nsig d ng Tep_1;Tmp_=0;S=1;SCK=0;_no();_nop();CS0;for(i=0;i1;i+)Temp1=;?_nop_();?SK=;(SO=1)Temp_1 Tem 1|0 x01;?els Temp_=Temp|0

34、 x00;?_nop_();?C 0;_nop_();Tem_1=Temp_14;Tm 1 m _1*24/096;return(emp_1);unt R_Convert_()char i;usigned lngTem_2;Temp_2=0;CS1;SCK=0;nop_();np_();CS=0;fo(i=0;i1;i+)emp_2=1;?_nop_();?K=1;i(=1)Temp_=mp_2|x01;?se Temp_=T mp_2|0;_nop_();?S=0;_nop_();Tep 2=ep_24;?Te _2T p_2 24/096;r u(Temp2);in Re_onvert_3

35、()ucar i;usignelong T 3;T p30;S=1;K=0;_nop_();_no();CS=0;or(i0;i6;i)T m_3=;?_op_();?CK=;if(SO3=)Temp3=Tmp_3|0 x01;?le p_3=e _3|0 x00;n _();?SCK0;_nop();emp_ Tem _34;Temp_3=Temp 3*102 06;r ur(Tmp3);unt Re_Conver _4()uchar;unsindlon mp_4;e _4=0;S=;SK=;_ p();n _();CS=0;for(i=0;i1;i+)Temp_4=;nop();CK=1;

36、f(SO4=1)emp_4=Tem_40 x1;ele emp_4=Tem 4|0 x00;_nop_();?SK=0;?_np_();Temp_4=emp_44;ep_4=Temp_4*02/496;retrn(Te _4);uiRe_Conver_5()uchar i;unsiglong mp_5;Tmp5=0;CS=1;C;_op_();_ op_();C=0;f(i=;i;i+)Temp_5=;_ p_();?SCK=1;if(SO5=1)Temp_5=Te _50 1;?els emp_5Te 5|0 x;?np_();SCK0;?_no();Temp_5=e p_;?mp_5 em

37、p5 4;?Tep_5=Tep5*102/06;return(T p_);uintRe Conert_()u ha i;u ignelong T m_6;Temp_6=0;CS=1;SC=0;_op();_nop_();C=0;fo(i=0;1;+)T mp_6=1;no_();?CK=1;if(S6=1)Temp_6=T mp_6|0 x01;?es em_6=Temp_6|0 x0;?_();?CK0;?no _();Tep6=Tem_ 4;Temp_=Te _6 4/406;r n(T p_6);n Re_Convet_7()c r i;unigndong T mp;Tem 7=0;S=

38、1;C 0;_nop();op_();CS=0;r(i=0;i16;+)Temp7=;?op();?SCK ;(SO7=1)Tep_7=Temp_7|0 x01;?lseTemp 7=Te _|0 x00;_no _();?SC=0;_no_();Temp=Tm_74;Temp7Temp_7*024/409;rturn(Temp_7);uint R_C vert_()ucar i;unsi ed long Tmp_;Temp8=0;C=;SCK=0;_no_();_op_();S=0;fo(i;i16;+)Temp_8=1;?_no _();?CK=1;f(S8=)Temp_8=T mp_8|

39、001;ese Temp 8=mp_8|x00;?_nop_();?SCK0;?_nop_();Temp8Temp_4;Temp8=ep_8 02/496;eturn(Tmp_8);id Re_onvert()wend 1=Re_C v t_();wendu2=Re_Co ver_2();wedu3=ReConvrt3();enu4=Re_C ert_4();wenu5=e_Con rt5();en=Re_Coner_();wend7=Re_Co rt_();e u8R_Convert 8();isp_te p()temp1=wenu1;temp2=wend2;e 3=du3;ep4=wedu

40、4;tmp=we u5;t p6=wnu6;temp=endu7;tep8=wendu;if(wendu =99&wen u=100)guzhn_flag=0;ge1temp%0;temp1temp/0;s 1t p1%10;a1=temp1/0;Display_AS II(,,4*8,hu b 1);Dis ay_AS I(1,0,*8,shuzi sh);Dis y_ASCII(,6*8,shu g);Dsplay_AS II(1,0,*8,shuzi12);elseif(wendu1 9)guzh g_lag1=1;spay_HZ(1,0,cho);Dis ay_HZ(1,0,,we);

41、elf(wendu110)guzhag fla1=1;Display_ Z(,0,i);ispla_HZ(1,0,3,n);i(end 2=999&we du2 100)gza fag2=0;ge2=emp2%0;emp=tm;shi2temp2%0;bai=t p210;Di pay_ASCII(1,2,4 8,s zibai );Dispay_SI(,2,5*8,huzishi2);Disly_SII(1,2,6*8,shuz ge2);Dislay_ASII(1,2,7*8,s uzi1);ele if(wen 999)guzhan_ a 2=1;is ayHZ(,2,cao);spla

42、_ Z(1,2,3,wn);elseif(we u210)guzhangflag2=1;Display_H(1,2,2,d);Display_ Z(1,2,3,wen);f(e du3 1)zhan flag 0;=temp3%0;temp3=e 3/10;h3tem3%10;bi3=emp3/1;Display_ASCII(1,4,4 8,shui ai);Disla ACII(1,,5,shuzshi);Disp a S I(,4,6*,s uzi 3);Display_ASCI(1,4,7*8,hu 12);els(e 999)gzhang_flag3=;Dispa_(,4,chao);

43、Display Z(1,4,wen);?else if(endu3100)guzhang_ lag=1;Dsplay_Z(1,4,2,di);isplay_(1,n);if(wendu4=10)u ang_flag4=0;ge4temp4%1;tem4=temp4/;hi4=te 4 1;bi4=tm4/1;spla_ II(1,6,4*8,sh zibi4);isp _SCI(1,,5 8,shuzishi4);Di play_SCI(1,6,6*8,uzg4);Display SCI(1,6,7*8,suzi1);e s if(wenu499)guzhang_fag4=1;ipl _HZ(

44、1,,2,hao);Display_HZ(1,6,3,wen);elsi(wedu4 0)gzhang_flag4=1;Di lay_H(,6,2,di);Diplay_HZ(1,6,,wn);if(nu=1)guhang_flag=0;g5=ep5 0;tmp=tep5/1;hi5=m%10;ai5=t m510;Dsplay_ASCII(2,4*8,suzibi5);Di lyASCI(2,0,8,huzishi5 );Display_ASCII(,6*8,shuige5);Dislay_ASCII(2,0,78,suz 12);else if(wendu 9)guzhang_flg5=1

45、;Displ Z(2,2,cha);Dsl _HZ(2,0,3,n);else if(wen u 0)hangflag=;Di lay_Z(,0,2,di);isplay_H(2,0,wen);i(wnu6=10)gzhang_fla6=0;e=temp6 1;tmp6=emp6/1;sh=temp6%10;ba6=temp/10;Displa _A II(,2,8,s uzi 6);D play_ASC I(,2,58,uz s 6);ispay_ASII(2,2,6*8,shuze6);Displ _ASCII(,2,*8,suz12);els f(wendu 999)guzh fla6=

46、1;Diplay_H(2,,ca);ply_H(2,2,3,en);?se if(wedu00)uhangfag6=1;Dispa Z(,2,2,i);Displa_HZ(2,2,3,wen);f(wedu7=100)gzhang_fl 7=0;7 temp71;temp7=ep7/1;shi7 e%0;ba=temp/0;Di play_A I(,,*8,shuzibai7);Dspla_A II(2,4,5*8,zishi);D lay_A CII(,4,6*,huzige7);Display SII(,4,78,s zi1);e if(w nd7999)guzag_flag71;Disp

47、l y_Z(,,2,cha);Dip a_HZ(2,4,3,wen);?else if(ndu00)guhng fag7;Dislay_HZ(2,4,,di);Display Z(2,4,,wen);if(wendu89)gu angfla8=1;Dspla_Z(2,6,2,ao);Dispay_HZ(2,6,3,wen);?e eif(we 8 0)guzhang_fa8=1;Disl _(2,6,2,d);Dislay_(,6,3,wen);if(gu hag_flag1=1|uz ang_flag2=1 gzang_fl 3=1|guzhang_flag=|guzhan_flag5=1|

48、guz angflag6=1|uzh g_flg7=1|guzhan_fl g8=)SOND=1;LED=1;ele if(guzhang_flag1=&gu hang_fl 2=0&guzha g_flag3=gzhang fl g 0&guzhan _fla 5=0&guzhang_flag6=0&g zh ng_ lag7=0&guzh g_flag8=0)SON 0;LE=;oid mai()initLD();Display_inter ce();d ays(20);Cl rScreen(0);whl()Re_Convert();Disp_ep();Display_k oha();E1

49、.H 部分只是对 5单片机个个端口的定义,不加入程序结构也可以,如下:/-RE 1HHader gene c 0C 1 and 0C3 m rocntrol.py ght(c)88 00Kei Elekr ik Gm Han eil Sofware,n.All right resere.-*#ind f _REG51H_#d fine_REG51_H_*BYTE R gste/sf P0=8;sf P1=0 x 0;sfr P2=x0;fr3 0 xB0;sf PSW x0;f ACC xE0;fr=0 xF0;sfr SP 0 x81;fr DPL=0 x82;sDPH=x3;sf PCO

50、0 x87;sr TCON=0 x8;sfr T OD=0 x89;sf TL0=0 x8A;sfr 1=8;sfr TH0 x8C;f T1=0 x8D;sf I=0 xA;fr IP=B8;sfr SCON=x98;sfr SBUF 0 x9;BI Reister*/*PSW*sbit CY 0 xD7;sit C 0 x6;bit F0 xD;sbit RS1=xD;sbt RS0=xD3;bit OV 0 xD2;sbit=0D0;/*TC*/sbit T1=0 F;s t TR1=0 x8E;sbit TF=08D;it TR0=0 x8C;sbiI1 x8B;sbi 1=0 8A;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁