




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-自动化工程训练课程设计学院名称信息科学与工程学院专业班级自动化1202班黎毅刚指导教师芳目录第一章 绪论第二章 方案论证2.1温度采集方案2.2显示界面方案第三章 系统整体设计3.1 系统总体分析3.2设计原理第四章 各个元器件及芯片简介4.1 AT89C51单片机介绍4.2 K型热电偶简介4.3 MA*6675简介4.4 LCD12864简介第五章 各局部电路设计5.1温度采集电路5.2数据处理电路5.3温度显示电路5.4超限报警电路第六章 心得体会附录1 硬件仿真图与运行效果展示附录2 软件代码. z-第一章绪论在工业生产中,需要检测工艺生产线的温度,而且这个温度围还很大。该系统采集主要
2、以Atmel公司的AT89C51单片机为控制处理核心,由它完成对数据的采集处理以及控制数据的无线传输。AT89C51单片机是一种低功耗/低电压/高性能的8位单片机,片带有一个8KB的可编程可擦除只读存储器。无线收发一体数传MODEM模块PTR2000芯片性能优异,在业界居领先水平,它的显著特点是所需外围元件少,因而设计非常方便。因此用来设计工业温度检测系统相当的适宜。在本文中,主要说明单片机与K型热电偶以及K型热电偶模数转换器MA*6675的组合,形成单片机的温度检测系统。包括:如何针对系统的需求选择适宜的温度检测器件,如何根据选择的器件设计外围电路和单片机的接口电路,如何编写控制温度检测器件
3、进展数据传输的单片机程序,并简要介绍数字温度传感器MA*6675的应用。第二章方案论证2.1温度采集方案方案一:模拟温度传感器。采用热敏电阻,将温度值转换为电压值,经运算放大器放大后送A/D转换器将模拟信号变换为数字信号,再由单片机经过比较计算得到温度值。优点:应用广泛,特别是工程领域,采用不同的热敏电阻,可实现低温到超高温的测量。缺点:必须采用高速高位A/D转换器,系统复杂,本钱高,还以引进非线性误差,得通过软件差值修正方案二:采用集成数字温度传感器DS18B20。该传感器采用单总线接口,能方便的与单片机通信。测温围从-55到+125,测温精度9-12位可调,12位时最大转换时间为750ms
4、,但是不满足本设计的要求。缺点:不能实现高温测量。方案三:采用K型热电偶与K型热电偶模数转换器MA*6675的组合,该组合采用单总线接口,能方便的与单片机通信,测量围从0到+1050度,测温精度为12位,完全满足本设计的要求,因此采用此方案。2.2显示界面方案方案一:用数码管显示,优点:构造简单,本钱低。缺点:只能显示一测量点和有限的符号。方案二:采用LCD12864显示。可以实现中英文操作提示,方便人机交换。能同时显示多点温度值,使用方便,而且价格适中,本系统设计为多点温度采集情况可以采用。第三章系统总体设计3.1系统总体分析本系统采用的是K型热电偶采集温度,因此本设计有温度采集局部,数据处
5、理局部,温度显示局部,故障显示并显示局部组成。AT89C51单片机以及单片机的外围电路由晶振电路,复位电路,温度采集电路,温度显示电路,超限报警电路组成。系统设计框图如下:八路温度数据采集电路晶振电路单片机LCD温度显示电路超限报警电路系统设计框图3.2设计原理温度采集局部先使用K型热电偶对环境温度进展检查,再经过K型热电偶模数转换器MA*6675,进展温度转换,将环境温度转换成12位二进制数据采集进单片机,以便单片机进展数据处理。在本系统中,由于是8路温度采集,因此使用串行的方式,依次对8路温度进展采集,并用单片机的P2口来传输与反响数据。数据处理局部利用算法,在单片机中对采集到的数据进展处
6、理,并转换成百、十、个位通过P0口进展输出。温度显示局部通过调用LCD的显示函数,将温度以两列的方式实时地显示在LCD上。超限报警局部通过软件算法,检测8度的温度是否在100度到999度的围,一旦超过这个围,这进展故障报警,并在LCD上显示“超温或者“低温,并且同时通过蜂鸣器以及LED灯,来进展声光报警。第四章各个元器件及芯片简介4.1 AT89C51单片机介绍AT89C51单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器FPEROMFalsh Programmable and Erasable Read Only Memory的低电压,高性能CMOS8位微处理器,俗称单片机
7、。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。1 主要特性:1、与MCS-51 兼容2、4K字节可编程闪烁存储器 3、1000写/擦循环数据保存时间10年 4、全静态工作,0Hz-24Hz·三级程序存储器锁定 5、128*8位部RAM32可编程I/O线 6、两个16位定时器/计数器 7、5个中断源 8、可编程串行通道低功耗的闲置和掉电模式 9、片振荡
8、器和时钟电路2主要管脚说明:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1时,其管脚被部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低
9、,将输出电流。P2口当用于外部程序存储器或16位地址外部数据存储器进展存取时,P2口输出地址的高八位。P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流ILL这是由于上拉的缘故。4.2 K型热电偶简介K型热电偶作为一种温度传感器,K型热电偶通常和显示仪表,记录仪表和电子调节器配套使用。K型热电偶可以直接测量各种生产中从0到1300围的液体蒸汽和气体介质以及固体的外表温度。K型热电偶通常由感温元件、安装固定装置和接线盒等主要部件组成,K型热电偶是目前用量最大的廉金属
10、热电偶,其用量为其他热电偶的总和。K型热电偶丝直径一般为1.24.0mm。K型热电偶具有线性度好,热电动势较大,灵敏度高,稳定性和均匀性较好,抗氧化性能强,价格廉价等优点,能用于氧化性惰性气氛中广泛为用户所采用。热电偶测温由热电偶、连接导线及显示仪表三局部组成。如果将热电偶的热端加热,使得冷、热两端的温度不同,则在该热电偶回路中就会产生热电势,这种物理现象就称为热电现象(即热电效应)。在热电偶回路中产生的电势由温差电势和接触电势两局部组成。接触电势:它是两种电子密度不同的导体相互接触时产生的一种热电势。当两种不同的导体A和B相接触时,假设导体A和B的电子密度分别为NA和NB并且NA>NB
11、,则在两导体的接触面上,电子在两个方向的扩散率就不一样,由导体A扩散到导体B的电子数比从B扩散到A的电子数要多。导体A失去电子而显正电,导体B获得电子而显负电。因此,在A、B两导体的接触面上便形成一个由A到B的静电场,这个电场将阻碍扩散运动的继续进展,同时加速电子向相反方向运动,使从B到A的电子数增多,最后到达动态平衡状态。此时A、B之间也形成一电位差,这个电位差称为接触电势。此电势只与两种导体的性质相接触点的温度有关,当两种导体的材料一定,接触电势仅与其接点温度有关。温度越高,导体中的电子就越活泼,由A导体扩散到B导体的电子就越多,接触面处所产生的电动势就越大,即接触电势越大。4.3 MA*
12、6675简介热电偶作为一种主要的测温元件,具有构造简单、制造容易、使用方便、测温围宽、测温精度高等特点。但是将热电偶应用在基于单片机的嵌入式系统领域时,却存在着以下几方面的问题。 线性:热电偶输出热电势与温度之间的关系为非线性关系,因此在应用时必须进展线性化处理。 冷补偿:热电偶输出的热电势为冷端保持为0时与测量端差值,而在实际应用中冷端的温度是随着环境温度而变化的,故需要进展冷端补 数字化输出与嵌入式系统接口必然要采用数字化输出及数字化接口,而作为模拟小信号测温元件的热电偶显然无法直接满足这个要求。因此, 假设将热电偶应用于嵌入式系统时, 须进展复杂的信号放大、AD转换、查表线性化、温度补偿
13、及数字化输出接口等软硬件设计。如果能将上述的功能集成到一个集成电路芯片中, 即采用单芯片来完成信号放大、冷端补偿、线性化及数字化输出功能, 则将大大简化热电偶在嵌入式领域的应用设计。MA*6675性能及构造Ma*im公司新近推出的MA*6675是一复杂的单片热电偶数字转换器, 部具有信号调节放大器、12位的模拟数字化热电偶转换器、冷端补偿传感和校正、数字控制器、1个SPI兼容接口和1个相关的逻辑控制。MA*6675部集成有冷端补偿电路;带有简单的3位串行SPI接口;可将温度信号转换成12位数字量,温度分辨率达0.25;含热电偶断线检测电路。冷端补偿的温度围-2080,它的温度分辨能力为0. 2
14、5 ,可以测量01023.75的温度,工作电压为3. 05. 5V。 MA*6675的主要特性如下:简单的SPI串行口温度值输出;0+1024的测温围;12位0.25的分辨率;片冷端补偿;高阻抗差动输入;热电偶断线检测;单一+5V的电源电压;低功耗特性;工作温度围-20+85;2000V的ESD信号。该器件采用8引脚SO帖片封装。引脚排列如图1所示,引脚功能如下表所列。MA*6675的工作原理与功能根据热电偶测温原理,热电偶的输出热电势不仅与测量端的温度有关,而且与冷端的温度有关,使用硬件电路进展冷端补偿时,虽能局部改善测量精度,但由于热电偶使用环境的不同及硬件电路本身的局限性,效果并不明显;
15、而使用软件补偿,通常是使用微处理机表格法或线性电路等方法来减小热电偶本身非线性带来的测量误差,但同时也增加了程序编制及调试电路的难度。MA*6675对其部元器件参数进展了激光修正,从而对热电偶的非线性进展了部修正。同时,MA*6675部集成的冷端补偿电路、非线性校正电路、断偶检测电路都给K型热电偶的使用带来了极大方便,其工作原理如图2所示。(1) 温度变换MA*6675部具有将热电偶信号转换为与ADC输入通道兼容电压的信号调节放大器,T+和T-输入端连接到低噪声放大器A1,以保证检测输入的高精度,同时是热电偶连接导线与干扰源隔离。热电偶输出的热电势经低噪声放大器A1放大,再经过A2电压跟随器缓
16、冲后,送至ADC的输入端。在将温度电压值转换为相等价的温度值之前,它需要对热电偶的冷端进展补偿,冷端温度即是MA*6675周围温度与0实际参考值之间的差值。对于K型热电偶, 电压变化率为41µ/, 电压可由线性公式Vout=41µ/×tR-tAMB来近似热电偶的特性。上式中, Vout为热电偶输出电压mV, tR是测量点温度,tAMB是周围温度。(2)冷端补偿热电偶的功能是检测热、冷两端温度的差值,热电偶热节点温度可在0+1023.75围变化。冷端即安装MA*6675的电路板周围温度,比温度在-20+85围变化。当冷端温度波动时,MA*6675仍能准确检测热端的温
17、度变化。(3) 热补偿在测温应用中,芯片自热将降低MA*6675温度测量精度,误大小依赖于MA*6675封装的热传导性、安装技术和通风效果。为降低芯片自热引起的测量误差,可在布线时使用大面积接地技术提高MA*6675温度测量精度。(4) 噪声补偿MA*6675的测量精度对电源耦合噪声较敏感。为降低电源噪声影响,可在MA*6675的电源引脚附近接入1只0.1F瓷旁路电容。(5)测量精度的提高热电偶系统的测量精度可通过以下预防措施来提高:尽量采用不能从测量区域散热的大截面导线;如必须用小截面导线,则只能应用在测量区域,并且在无温度变化率区域用扩展导线;防止受能拉紧导线的机械挤压和振动;当热电偶距离
18、较远时,应采用双绞线作热电偶连线;在温度额定值围使用热电偶导线;防止急剧温度变化;在严劣环境中,使用适宜的保护套以保证热电偶导线;仅在低温和小变化率区域使用扩展导线;保持热电偶电阻的事件(6) SPI串行接口MA*6675采用标准的SPI串行外设总线与MCU接口,且MA*6675只能作为从设备。MA*6675 SO端输出温度数据的格式如图3所示,MA*6675 SPI接口时序如图4所示。MA*6675从SPI串行接口输出数据的过程如下:MCU使CS变低并提供时钟信号给SCK,由SO读取测量结果。CS变低将停顿任何转换过程;CS变高将启动一个新的转换过程。一个完整串行接口读操作需16个时钟周期,
19、在时钟的下降沿读16个输出位,第1位和第15位是一伪标志位,并总为0;第14位到第3位为以MSB到LSB顺序排列的转换温度值;第2位平时为低,当热电偶输入开放时为高,开放热电偶检测电路完全由MA*6675实现,为开放热电偶检测器操作,T-必须接地,并使能地点尽可能接近GND脚;第1位为低以提供MA*6675器件身份码,第0位为三态。4.4 LCD12864简介带中文字库的128*64 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 置8192 个16*16 点汉字,和128 个16*8
20、 点ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4 行16×16 点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不管硬件电路构造或显示程序都要简洁得多,且该模块的价格也略低于一样点阵的图形液晶模块。第五章各局部电路设计5.1温度采集电路硬件局部该局部为8路温度采集,采用K型热电偶与K型热电偶模数转换器MA*6675互相搭配的方式,如以下图所示:以其中一路为例,MA*6675的冷热接收端分别于热电偶的冷热端相连,其串行数据输出端分别与
21、单片机的P2口相连,如以下图所示:之后MA*6675的时钟信号端以及使能端分别与P1.0和P1.1端相连,如以下图所示:以上就是整个温度采集局部的硬件接线图软件局部由于MA*6675采用的是12位二进制的串行数据输出的方式,而且,其有效的数据分别在314位,因此需要进展串行数据的移位操作,以下为局部软件算法:for(i=0;i<16;i+) Temp_1<<=1; _nop_(); SCK=1;if(SO1=1)Temp_1=Temp_1|0*01; else Temp_1=Temp_1|0*00; _nop_(); SCK=0; _nop_(); Temp_1=Temp_1
22、<<1; Temp_1=Temp_1>>4; Temp_1=Temp_1*1024/4096;以上算法把数据左移移一位,然后再右移四位,从而得到完整的12位二进制温度数据。5.2数据处理电路硬件局部该局部数据处理主要在单片机部进展,并且将处理后的数据从P0口输出到LCD进展显示,如以下图所示:软件局部将处理后的数据分别处理成百、十、个位进展输出,以下为局部软件算法:if(wendu1<=999&&wendu1>=100) guzhang_flag1=0; ge1=temp1%10; temp1=temp1/10; shi1=temp1%10;
23、 bai1=temp1/10;通过以上算法,就可以将数据分解成百、十、个,从而方便地在LCD上显示。5.3温度显示电路硬件局部该局部是通过LCD进展对温度数据的显示其使能端与P1口相连,数据输入端与P0口相连,如以下图所示:通过以上的连接,可以实现单片机对LCD的控制以及温度数据的显示。软件局部LCD上的汉字以及数据,都需要使用相应的字模软件来对汉字和数据进展编码,并存储在相应的数组中,通过相应的函数调用,将所需显示的数据,按照相应的格式显示在LCD上,以下为局部软件算法:汉字显示函数:void Display_HZ(uchar screen,uchar page,uchar column,u
24、char *p)uchar i;SelectScreen(screen);Set_page(page);/写上半页:16*8 Set_column(column*16); /控制列for(i=0;i<16;i+) /控制16列的数据输出,左右各64个点,可显示4个汉字write_LCD_data(pi); /汉字的上半局部Set_page(page+1);/写下半页:16*8 Set_column(column*16);/控制列 for(i=0;i<16;i+)/控制16列的数据输出write_LCD_data(pi+16);/汉字的下半局部 数字显示函数:void Display
25、_ASCII(uchar screen,uchar page,uchar column,uchar *p) /左右各64个点,可显示8个字符uchar i;SelectScreen(screen);Set_page(page);Set_column(column);for(i=0;i<8;i+)/显示字符上半局部:8*8 write_LCD_data(pi);Set_page(page+1);/显示字符下半局部:8*8 Set_column(column);for(i=0;i<8;i+)write_LCD_data(pi+8); 调用方式如下:Display_HZ(1,0,2,hu
26、an);Display_HZ(1,0,3,ying);Display_ASCII(1,0,0*8,shuzi10);Display_ASCII(1,0,1*8,shuzi1);以下为LCD显示函数局部:以1路为例void Disp_temp() temp1=wendu1;if(wendu1<=999&&wendu1>=100) guzhang_flag1=0; ge1=temp1%10; temp1=temp1/10; shi1=temp1%10; bai1=temp1/10; Display_ASCII(1,0,4*8,shuzibai1); Display_AS
27、CII(1,0,5*8,shuzishi1); Display_ASCII(1,0,6*8,shuzige1); Display_ASCII(1,0,7*8,shuzi12); else if(wendu1>999) guzhang_flag1=1; Display_HZ(1,0,2,chao); Display_HZ(1,0,3,wen); else if(wendu1<100) guzhang_flag1=1; Display_HZ(1,0,2,di); Display_HZ(1,0,3,wen); 通过以上的软件算法,可以直观的以两列的方式显示8路温度的数值,并且当出现温度超
28、限时,还会出现文字提示报警。5.4超限报警电路硬件局部该局部硬件上由于是声光报警,因此需要蜂鸣器和LED灯,分别将这两个部件连接至P1.2和P3.4口,对其进展控制,如以下图:软件局部通过设立超限标志位,当出现超限时,对标志位进展置位,并通过判断标志位,来判断是否出现超限,并报警,局部软件算法如下:if(guzhang_flag1=1|guzhang_flag2=1|guzhang_flag3=1|guzhang_flag4=1|guzhang_flag5=1|guzhang_flag6=1|guzhang_flag7=1|guzhang_flag8=1) SOUND=1; LED=1; el
29、se if(guzhang_flag1=0&&guzhang_flag2=0&&guzhang_flag3=0&&guzhang_flag4=0&&guzhang_flag5=0&&guzhang_flag6=0&&guzhang_flag7=0&&guzhang_flag8=0) SOUND=0; LED=0; 通过以上的软硬件结合,就能够顺利的实现超限报警功能。第六章心得体会通过这次工程训练课程设计,自己对理论知识的掌握有了更加深刻的体会。记得刚开场拿到题目时,到网上搜索了一下,
30、发现有很多温度检测的课程设计,心里还曾经暗暗地庆幸自己选了一个容易的题目,但是到后面做的时候,在发现教师给我们挖了一个坑。首先,网上的资料没有这么宽的温度检测围,其次就算有个别符合要求的温度围,也只是一路的温度检测。所以,在前期的设计中,自己真的是遇到了问题,不过,功夫不负有心人。我先一个模块,一个模块的调试,首先需要解决的是温度检测围的问题,因此经过一番查找,终于发现了MA*6675这个神奇的东西,得意解决了围问题。然后就是多路温度检测的问题,我先检测一路是否可行,后面发现一路确实可行,最后延伸到八路,反复的调整数据,终于解决了多路的问题。最后是显示,还好自己曾经使用过LCD12864,上手
31、也比较容易。就是通过这样一个模块,一个模块的调试,最终把这个有点坑的题目给解决了。在完成题目的那一刻,自己心中真的欣喜不已,当然其中还有一些缺乏,就是温度检测还会有一些误差,温度越高,误差越大,不过都在5度以,以工业要求,应该是可行的。还有就是如果有个上位机功能,系统功能会更加的实用一些。总的来说,这次课设还是顺利地完成了,尽管其中还有一些缺乏,但是自己在单片机方面也进步了许多,希望在今后的学习生活中,能够不断地进步,最后感教师给我这次进步的时机,。附录1 硬件仿真图附录2 软件代码以下是软件局部的构造截图,读者只需将相应的的软件局部复制,按截图的构造来搭构,就能组成一个完整的软件局部。当然由
32、于时间仓促,还有缺乏的地方,望读者改进。main.c局部是主程序局部,对温度数据进展处理并换算,如下:main.c*include<reg51.h>*include<intrins.h>*include<hz.h>*include<12864.h>*define uchar unsigned char*define uint unsigned intsbit SO1=P20; /串行数据输入sbit SO2=P21;sbit SO3=P22;sbit SO4=P23;sbit SO5=P24;sbit SO6=P25;sbit SO7=P26;s
33、bit SO8=P27;sbit LED=P34;sbit SOUND=P12;sbit SCK=P10; sbit CS=P11; uint j,h;uchar guzhang_flag1=0,guzhang_flag2=0,guzhang_flag3=0,guzhang_flag4=0,guzhang_flag5=0,guzhang_flag6=0,guzhang_flag7=0,guzhang_flag8=0;float wendu1,wendu2,wendu3,wendu4,wendu5,wendu6,wendu7,wendu8;void Re_Convert();uint Re_Co
34、nvert_1();uint Re_Convert_2();uint Re_Convert_3();uint Re_Convert_4();uint Re_Convert_5();uint Re_Convert_6();uint Re_Convert_7();uint Re_Convert_8();void Disp_temp();uchar bai1=0,bai2=0,bai3=0,bai4=0,bai5=0,bai6=0,bai7=0,bai8=0;uchar shi1=0,shi2=0,shi3=0,shi4=0,shi5=0,shi6=0,shi7=0,shi8=0;uchar ge1
35、=0,ge2=0,ge3=0,ge4=0,ge5=0,ge6=0,ge7=0,ge8=0;uint P_Temp;uint temp1,temp2,temp3,temp4,temp5,temp6,temp7,temp8;uchar SO8;void delayms(uint z)uchar y;while(z-) for(y=0;y<120;y+);uint Re_Convert_1() uchar i; unsigned long Temp_1; Temp_1=0; CS=1; SCK=0; _nop_();_nop_(); CS=0;for(i=0;i<16;i+) Temp_
36、1<<=1; _nop_(); SCK=1;if(SO1=1)Temp_1=Temp_1|0*01; else Temp_1=Temp_1|0*00; _nop_(); SCK=0; _nop_(); Temp_1=Temp_1<<1; Temp_1=Temp_1>>4; Temp_1=Temp_1*1024/4096;return(Temp_1); uint Re_Convert_2() uchar i; unsigned long Temp_2; Temp_2=0; CS=1; SCK=0; _nop_();_nop_(); CS=0;for(i=0;i
37、<16;i+) Temp_2<<=1; _nop_(); SCK=1;if(SO2=1)Temp_2=Temp_2|0*01; else Temp_2=Temp_2|0*00; _nop_(); SCK=0; _nop_(); Temp_2=Temp_2<<1; Temp_2=Temp_2>>4; Temp_2=Temp_2*1024/4096;return(Temp_2); uint Re_Convert_3() uchar i; unsigned long Temp_3; Temp_3=0; CS=1; SCK=0; _nop_();_nop_()
38、; CS=0;for(i=0;i<16;i+) Temp_3<<=1; _nop_(); SCK=1;if(SO3=1)Temp_3=Temp_3|0*01; else Temp_3=Temp_3|0*00; _nop_(); SCK=0; _nop_(); Temp_3=Temp_3<<1; Temp_3=Temp_3>>4; Temp_3=Temp_3*1024/4096;return(Temp_3); uint Re_Convert_4() uchar i; unsigned long Temp_4; Temp_4=0; CS=1; SCK=0;
39、 _nop_();_nop_(); CS=0;for(i=0;i<16;i+) Temp_4<<=1; _nop_(); SCK=1;if(SO4=1)Temp_4=Temp_4|0*01; else Temp_4=Temp_4|0*00; _nop_(); SCK=0; _nop_(); Temp_4=Temp_4<<1; Temp_4=Temp_4>>4; Temp_4=Temp_4*1024/4096;return(Temp_4); uint Re_Convert_5() uchar i; unsigned long Temp_5; Temp_5
40、=0; CS=1; SCK=0; _nop_();_nop_(); CS=0;for(i=0;i<16;i+) Temp_5<<=1; _nop_(); SCK=1;if(SO5=1)Temp_5=Temp_5|0*01; else Temp_5=Temp_5|0*00; _nop_(); SCK=0; _nop_(); Temp_5=Temp_5<<1; Temp_5=Temp_5>>4; Temp_5=Temp_5*1024/4096;return(Temp_5); uint Re_Convert_6() uchar i; unsigned lon
41、g Temp_6; Temp_6=0; CS=1; SCK=0; _nop_();_nop_(); CS=0;for(i=0;i<16;i+) Temp_6<<=1; _nop_(); SCK=1;if(SO6=1)Temp_6=Temp_6|0*01; else Temp_6=Temp_6|0*00; _nop_(); SCK=0; _nop_(); Temp_6=Temp_6<<1; Temp_6=Temp_6>>4; Temp_6=Temp_6*1024/4096;return(Temp_6); uint Re_Convert_7() uchar
42、 i; unsigned long Temp_7; Temp_7=0; CS=1; SCK=0; _nop_();_nop_(); CS=0;for(i=0;i<16;i+) Temp_7<<=1; _nop_(); SCK=1;if(SO7=1)Temp_7=Temp_7|0*01; else Temp_7=Temp_7|0*00; _nop_(); SCK=0; _nop_(); Temp_7=Temp_7<<1; Temp_7=Temp_7>>4; Temp_7=Temp_7*1024/4096;return(Temp_7); uint Re_C
43、onvert_8() uchar i; unsigned long Temp_8; Temp_8=0; CS=1; SCK=0; _nop_();_nop_(); CS=0;for(i=0;i<16;i+) Temp_8<<=1; _nop_(); SCK=1;if(SO8=1)Temp_8=Temp_8|0*01; else Temp_8=Temp_8|0*00; _nop_(); SCK=0; _nop_(); Temp_8=Temp_8<<1; Temp_8=Temp_8>>4; Temp_8=Temp_8*1024/4096;return(Te
44、mp_8); void Re_Convert() wendu1=Re_Convert_1(); wendu2=Re_Convert_2(); wendu3=Re_Convert_3(); wendu4=Re_Convert_4(); wendu5=Re_Convert_5(); wendu6=Re_Convert_6(); wendu7=Re_Convert_7(); wendu8=Re_Convert_8(); void Disp_temp() temp1=wendu1; temp2=wendu2; temp3=wendu3; temp4=wendu4; temp5=wendu5; temp
45、6=wendu6; temp7=wendu7; temp8=wendu8;if(wendu1<=999&&wendu1>=100) guzhang_flag1=0; ge1=temp1%10; temp1=temp1/10; shi1=temp1%10; bai1=temp1/10; Display_ASCII(1,0,4*8,shuzibai1); Display_ASCII(1,0,5*8,shuzishi1); Display_ASCII(1,0,6*8,shuzige1); Display_ASCII(1,0,7*8,shuzi12); else if(we
46、ndu1>999) guzhang_flag1=1; Display_HZ(1,0,2,chao); Display_HZ(1,0,3,wen); else if(wendu1<100) guzhang_flag1=1; Display_HZ(1,0,2,di); Display_HZ(1,0,3,wen); if(wendu2<=999&&wendu2>=100) guzhang_flag2=0; ge2=temp2%10; temp2=temp2/10; shi2=temp2%10; bai2=temp2/10; Display_ASCII(1,2,
47、4*8,shuzibai2); Display_ASCII(1,2,5*8,shuzishi2); Display_ASCII(1,2,6*8,shuzige2); Display_ASCII(1,2,7*8,shuzi12); else if(wendu2>999) guzhang_flag2=1; Display_HZ(1,2,2,chao); Display_HZ(1,2,3,wen); else if(wendu2<100) guzhang_flag2=1; Display_HZ(1,2,2,di); Display_HZ(1,2,3,wen); if(wendu3<
48、=999&&wendu3>=100) guzhang_flag3=0; ge3=temp3%10; temp3=temp3/10; shi3=temp3%10; bai3=temp3/10; Display_ASCII(1,4,4*8,shuzibai3); Display_ASCII(1,4,5*8,shuzishi3); Display_ASCII(1,4,6*8,shuzige3); Display_ASCII(1,4,7*8,shuzi12); else if(wendu3>999) guzhang_flag3=1; Display_HZ(1,4,2,cha
49、o); Display_HZ(1,4,3,wen); else if(wendu3<100) guzhang_flag3=1; Display_HZ(1,4,2,di); Display_HZ(1,4,3,wen); if(wendu4<=999&&wendu4>=100) guzhang_flag4=0; ge4=temp4%10; temp4=temp4/10; shi4=temp4%10; bai4=temp4/10; Display_ASCII(1,6,4*8,shuzibai4); Display_ASCII(1,6,5*8,shuzishi4);
50、Display_ASCII(1,6,6*8,shuzige4); Display_ASCII(1,6,7*8,shuzi12); else if(wendu4>999) guzhang_flag4=1; Display_HZ(1,6,2,chao); Display_HZ(1,6,3,wen); else if(wendu4<100) guzhang_flag4=1; Display_HZ(1,6,2,di); Display_HZ(1,6,3,wen); if(wendu5<=999&&wendu5>=100) guzhang_flag5=0; ge5
51、=temp5%10; temp5=temp5/10; shi5=temp5%10; bai5=temp5/10; Display_ASCII(2,0,4*8,shuzibai5); Display_ASCII(2,0,5*8,shuzishi5); Display_ASCII(2,0,6*8,shuzige5); Display_ASCII(2,0,7*8,shuzi12); else if(wendu5>999) guzhang_flag5=1; Display_HZ(2,0,2,chao); Display_HZ(2,0,3,wen); else if(wendu5<100)
52、guzhang_flag5=1; Display_HZ(2,0,2,di); Display_HZ(2,0,3,wen); if(wendu6<=999&&wendu6>=100) guzhang_flag6=0; ge6=temp6%10; temp6=temp6/10; shi6=temp6%10; bai6=temp6/10; Display_ASCII(2,2,4*8,shuzibai6); Display_ASCII(2,2,5*8,shuzishi6); Display_ASCII(2,2,6*8,shuzige6); Display_ASCII(2,2,7*8,shuzi12); else if(wendu6>999) guzhang_flag6=1; Display_HZ(2,2,2,chao); Display_HZ(2,2,3,wen); else if(wendu6<100) guzhang_flag6=1; Display_HZ(2,2,2,di); Display_HZ(2,2,3,wen); if(wendu7<=999&&wendu7>=100) guzhang_flag7=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年讯息化管理在纺织中的应用试题及答案
- 提高国际商业美术设计师考试应试心态的有效策略与试题及答案
- 广告设计师如何形成事业网络 试题及答案
- 柜体装配试题及答案大全
- 把握重要考点2024年纺织品检验员试题及答案
- 2024年纺织标准化管理考核试题及答案
- 护士考试宝典试题及答案
- 多媒体考试试题及答案
- 2024年纺织品检验员证书知识体系试题及答案
- 批判性思维在广告设计中的运用试题及答案
- 码头安全生产知识
- 《年产100公斤阿司匹林生产工艺设计》8700字(论文)
- 全屋整装培训
- 《风电安全生产培训》课件
- 常见病用药指导技术知到智慧树章节测试课后答案2024年秋天津生物工程职业技术学院
- 2025年日历(日程安排-可直接打印)
- 保密法律法规
- 智慧社区平台运营方案
- 铸牢中华民族共同体意识-形考任务1-国开(NMG)-参考资料
- 踝关节骨折的分型与治疗
- 2024-2025学年广东省深圳市高三下学期质量调研(二模)生物试题试卷含解析
评论
0/150
提交评论