试设计智能仪表智能仪课程设计.docx

上传人:精*** 文档编号:853982 上传时间:2023-09-16 格式:DOCX 页数:34 大小:436.34KB
下载 相关 举报
试设计智能仪表智能仪课程设计.docx_第1页
第1页 / 共34页
试设计智能仪表智能仪课程设计.docx_第2页
第2页 / 共34页
试设计智能仪表智能仪课程设计.docx_第3页
第3页 / 共34页
试设计智能仪表智能仪课程设计.docx_第4页
第4页 / 共34页
试设计智能仪表智能仪课程设计.docx_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、 摘 要智能仪器是含有微型计算机或者微型处理器的测量仪器,拥有对数据的存储运算逻辑判断及自动化操作等功能。它的出现,极大地扩充了传统仪器的应用范围。智能仪器凭借其体积小,功能强,功耗低等优势,迅速的在家用电器,研单位和工业企业中得到了广泛的应用。传感器取被测参量的信息并转换成电信号,经滤波去除干扰后送入多路模拟开关;由单片机逐路选通模拟开关将各输入通道的信号逐一送入程控增益放大器,放大后的信号经AD转换器转换成相应的脉冲信号后送入单片机中;单片机根据仪器所设定的初值进行相应的数据运算和处理(如非线性校正等);运算的结果被转换为相应的数据进行显示和打印;同时单片机把运算结果与存储于片内Flash

2、ROM(闪速存储器)或EPROM(电可擦除存贮器)内的设定参数进行运算比较后,根据运算结果和控制要求,输出相应的控制信号(如报警装置触发、继电器触点等)。本次设计使用铁-铜镍热电阻。传感器取被测参量的信息并转换成电信号,经滤波去除干扰后送入多路模拟开关;由单片机逐路选通模拟开关将各输入通道的信号逐一送入程控增益放大器,放大后的信号经AD转换器转换成相应的脉冲信号后送入单片机中;单片机根据仪器所设定的初值进行相应的数据运算和处理(如非线性校正等);运算的结果被转换为相应的数据进行显示和打印;同时单片机把运算结果与存储于片内FlashROM(闪速存储器)或EPROM(电可擦除存贮器)内的设定参数进

3、行运算比较后,根据运算结果和控制要求,输出相应的控制信号(如报警装置触发、继电器触点等)。此外,智能仪器还可以与PC机组成分布式测控系统,由单片机作为下位机采集各种测量信号与数据,通过串行通信将信息传输给上位机PC机,由PC机进行全局管理。本次课程设计采用keil编译软件编写C语言源代码。经调试好后,装载入单片机进行仿真,完成智能仪器的核心设计。关键字:STC89C51单片机,AD转换器,铁-铜镍电阻,EPROM,智能仪器,数字测温温度计 目 录摘 要2一 设计目的及原理41.1设计题目和目的41.1.1设计题目41.2设计基本要求41.3设计原理5二硬件设计51.1系统原理框图51.1.1

4、STC89C51简介61.2基本模块简介91.2.1 铁-铜镍温度测量接口技术91.2.2铁-铜镍热电阻信号调理电路设计91.2.3功率输出电路101.2.4 4-20mA电流输出电路101.2.5数码管显示及指示电路101.2.6按键电路121.2.7报警电路121.2.8下载电路131.2.9 通信电路131.2.10输出驱动电路141.2.11电源电路141.2.12比例控制算法141.1.13热非线性校正算法151.3.1基于STC89C51单片机实现智能测温仪表软件设计161.3.2基于STC89C51单片机的智能测温仪表程序框架17三 系统流程图19四、 总原理图204.2 PCB

5、版图22五、电路仿真的设计与分析23.Proteus仿真软件介绍:23.仿真分析:23六、体会心得25附录 C语言程序:27附录2 参考文献:35一 设计目的及原理1.1设计题目和目的1.1.1设计题目实现智能数字显示仪表。要求8位数码管显示(4位显示测量值,4位显示设定值),4输入按钮(功能选择、数码管选择、数字增加、数字减少),可设定上下限报警(蜂鸣器报警)。适配铁-铜镍热电阻,测温范围为0200。采用比例控制、并用晶闸管脉宽调制驱动1000W电加热器(电源电压为AC220V)。1.1.2设计目的 涉及智能仪表硬件与软件设计。智能仪器课程设计是智能仪器课程教学的重要环节,根据设计智能仪表产

6、品的课程改革目的,特选择一些小型智能仪表产品作为课设题目,满足教学需求。单片机综合练习是一项综合性的专业实践活动,目的是让学生将所学的基础理论和专业知识运用到具体的工程实践中,以培养学生综合运用知识能力、实际动手能力和工程实践能力。1.2设计基本要求(1)正确理解设计题目,经过查阅资料,给出正确设计方案,画出详细仪表原理框图(各个功能部分用方框表示,各块之间用实际信号线连接)。 在互连网上收集题目中所用到的器件资料,例如传感器(热偶分度表等)、信号调理电路、AD转换器、单片机、继电器、电源、显示器件等。在互连网上收集相关单片机的显示、AD转换、显示、控制算法等程序。在充分研究这些资料基础之上,

7、给出设计方案(选择信号调理电路、单片机、显示、按键输入、继电器驱动、电源等,简要说明选择的理由)(2)用Protel99SE软件设计仪表详细原理图。要求正确标记元件序号、元件数值、封装名。(3)设计PCB图在画PCB前应该购买元件,因为有了元件才知道封装尺寸,但也可以不购买元件,只到元件商店测量实际元件尺寸后,画封装图。(4)熟悉单片机内部资源,学会ADC、SPI接口、定时器、中断、串口、I/O引脚等模块的编程。(5)采用C语言开发所设计仪表的程序。 按照题目要求,确定仪表需要完成的任务(功能),然后分别编制各任务的程序。程序应该有说明,并有详细注释。1.3设计原理 由热电阻传感器送来的电信号

8、在测量桥路进行冷端自动补偿后,送入放大器,一面把信号进行放大,同时把非线性信号校正为线性信号,经线性放大信号一路转换电路把模拟量转换成数字信号进行数字显示,另一路传输到调节网络,进行规定的比较运算,同时输出一个需要的控制信号和进行工作状态指示。二硬件设计1.1系统原理框图Atmega16l单片机按键报警指示和显示热电阻输入下载通信 本设计智能温度数显表由温度监测、信号处理、输出控制三部分组成。其系统框图如图1所示,它通过Pt100热电阻传感器获取绕组温度值,经信号调理电路处理后直接送入控制器的A/D转换输入端。微控制器根据信号数据及设定的各种控制参数,按照嵌入的软件控制规律执行计算与处理,自动

9、显示智能仪表数显表可测的温度范围、并根据当前状态输出正常、设定上下线报警等。1.1.1 STC89C51简介 图2 STC89C51单片机引脚 STC89C52系列单片机是从引脚到内核都完全兼容标准8051的单片机,有PDIP-40、PLCC-44、PQFP-44三种封装形式。Intel公司MCS-51单片机的基本结构如图1-4所示。该单片机具有如下资源:(1)一个8位算术逻辑单元(CPU)。(2)4组,共32个I/O口,每口8个引脚,可单独寻址,其中P0、P2口具有地址/数据总线功能。(3)两个16位定时/计数器(简称为定时器)。(4)全双工串行通信口。(5)5个中断源,具有两个中断优先级。

10、(6)128B内置RAM。(7)具有64KB可寻址数据和代码区。(8)各个模块采用三总线(地址、数据和控制)连接。(9)开放总线接口,P0口分时作为8位数据总线与8位地址总线,P2口作为地址总线高8位。每个MCS-51单片机处理周期包括12个时钟周期(又称为一个机器周期),每12个时钟(一个机器)周期用来完成一个操作,例如取指令等,指令执行时间为时钟频率除以12后取倒数,如果系统时钟是12MHz,则相当于执行每条指令所需要的时间1s。1.I/O端口I/O端口0、1、2、3驱动器与锁存器。2.存储器部分RAM:51单片机具有128字节的片内RAM,FLASH:片内ROM,用于保存代码等,片内RO

11、M采用FLASH结构的存储器构成,具有ISP功能,容量随型号不同而不同,对于AT89S51单片机,FLASH容量为4KB。SP:栈指针3.算术与逻辑运算部分寄存器B:用于乘除等操作的寄存器,常保存运算的第2操作数。ACC:累加器,TMP1、TMP2:暂存器,用于暂时保存数据。ALU:8位算术逻辑单元ALU,PSW:程序状态字,4.指令处理部分程序地址寄存器:用于保存程序地址。缓冲器:缓冲总线数据。PC+1:程序计数器加1处理模块。PC:保存下一条指令地址的16位地址寄存器,可寻址范围为64K。DPTR:双数据指针,DPTR为两个8位缓存器(DPH和DPL)组成的16位缓存器,。5.时序控制与指

12、令寄存部分定时与控制单元:指令寄存器:保存指令并指令译码后,在定时与控制单元的配合下,使CPU执行各种操作。WDT:看门狗。用于程序不运行时,自动复位单片机。OSC:时钟振荡器,与外接石英晶体一起组成时钟振荡器。6.ISP部分ISP端口:通过该端口与PC通信,实现在系统编程(ISP)。编程逻辑:控制ISP操作。7.外围模块部分该单片机的外围模块包括两个定时器,串行接口、4个I/O口与外中断模块。1.2基本模块简介1.2.1 铁-铜镍温度测量接口技术(1)铁-铜镍金属热电阻简介铁-铜镍热电偶测温线(J型热电偶)又称铁-康铜热电偶,也是一种价格低廉的廉金属的热电偶。它的正极(JP)的名义化学成分为

13、纯铁,负极(JN)为铜镍合金,常被含糊地称之为康铜,其名义化学成分为:55%的铜和45%的镍以及少量却十分重要的锰,钴,铁等元素,尽管它叫康铜,但不同于镍铬-康铜和铜-康铜的康铜,故不能用EN和TN来替换。铁-康铜热电偶的覆盖测量温区为-2001200,但通常使用的温度范围为0750J型热电偶具有线性度好,热电动势较大,灵敏度较高,稳定性和均匀性较好,价格便宜等优点,广为用户所采用。 J型热电偶测温线可用于真空,氧化,还原和惰性气氛中,但正极铁在高温下氧化较快,故使用温度受到限制,也不能直接无保护地在高温下用于硫化气氛中。1.2.2铁-铜镍热电阻信号调理电路设计基于铁-铜镍传感器测温的智能测温

14、仪表试采用STC89C51单片机实现智能测温仪表。要求8位数码管显示(上排4位显示测量值,下排4位显示设定值),4输入按钮(功能选择、数码管选择、数值增加、数值减少),可设定上下限报警(蜂鸣器报警)值。传感器为铁铜镍热电阻,测温范围为0200。采用比例 控制、并用晶闸管过零驱动1000W电加热器(电源电压为220VAC)。还可以输出与温度成正比的4-20mA电流远传到其他仪表。由题目可知,该测温仪表需要如下电路模块: (1)单片机电路(包括单片机最小系统、ADC、数码显示、按键、LED灯、电源等)。(2)铁铜镍热电阻信号调理电路(3)420mA输出电路与加热功率驱动电路。1.2.3功率输出电路

15、晶闸管过零驱动电路1.2.4 4-20mA电流输出电路1.2.5数码管显示及指示电路A:显示电路SM1显示的是热电阻测的电加热器的实际温度值,SM2显示的是人工设计的电加热器的期望温度值。数码管是有HC595芯片来驱动的,HC595接在SPI通信的3个接口上。B:指示电路指示电路是指示按键的输入状态的。D1、D2、D3、D4与S1、S2、S3、S4一一对应,当某个按键按下时,单片机相应的引脚将置低电平,使该按键相对应的二极管发光。1.2.6按键电路4个按键与单片机的接线图及个按键的作用如上图所示;当单片机的引脚输入为低电平时,表示该引脚所对应的按键按下,单片机实现相应的功能。1.2.7报警电路

16、当温度超过报警限时,单片机相应管脚输出一定频率的电平。蜂鸣器发出响声。1.2.8下载电路下载程序代码用的是SPI接口,用ISP电缆对单片机进行编程。1.2.9 通信电路该模块用到跳线,不通信时D0、D1口作为常规I/O口使用;通信时其作为通信口使用,实现单片机与单片机或是其它上位机的通信。1.2.10输出驱动电路采用光控过零驱动晶闸管,进而控制电加热器的通断电。1.2.11电源电路1.2.12比例控制算法比例控制(P)是一种控制算法,其输出量out与温度偏差e=SV-PV成比例关系,写成数学公式是:out= kp * e+out0式中,e是测量温度值PV与设定温度值SV之间的偏差,Kp是比例系

17、数。out是输出量。out0是对应e=0时的控制量,可由人工确定,通常取输出控制量不同比例系数Kp下对象温度变化示意图若是假设比例带为pb,控制量为out,设最大偏差值就是温度设置值。则有如下的伪代码如下:e=PV-SV;kp=1/pb;out=kp*e+out0;if(outoutm)out=outm;if(out0) out=0;1.1.13热非线性校正算法温度范围0200的铁铜镍热电阻的表格如下:unsigned char code R_TABLE21=100, 119.40,138.51, 157.33, 175.86,194.10,212.05;若是对于热电阻,有如下方法计算测得量R

18、X。 假设Ri代表对应温度Ti的热电阻,测量得到的热电阻值为Rx,查表可知它位于(Ri,Ti)和R(i+1),T(i+1)两个标定点之间,则热电阻Rx所对应的温度值Tx可由下式求得,其算法示意如图10-2所示。两相邻电阻之间差50,则(Ri+1Ri)/50为直线斜率。可以得到Ri到RX的温度差为: T(RxRi)=(50/(Ri+1Ri)*(RxRi)线性标度变换的前提条件是传感器的输出信号与被测参数之间呈线性关系Ax 实际测量值(工程量)A0 一次测量仪表的下限(测量范围最小值)。Am 一次测量仪表的上限(测量范围最大值)。N0 仪表下限所对应的数字量。Nm仪表上限所对应的数字量。 Nx 实

19、际测量值所对应的数字量。1.3.1基于STC89C51单片机实现智能测温仪表软件设计(1)初始化任务I/O引脚初始化(按钮、LED灯、ADC、DAC、E2PROM和SPI用引脚初始化)。定时器0初始化。中断初始化。(2)按钮任务:检测按钮并执行按钮动作,需要软件消除抖动。功能选择按钮:循环选择功能,例如,正常运行、设置报警上限值、设置报警下限值、设置温度给定值、设置比例控制回差值等功能。在数值设置状态,每按一次按钮,上排4位数码管显示功能码,下排显示设置值;在正常运行状态,上排显示测量值,下排显示设定温度值。数码管选择按钮:选择需要设置数值的数码管。数值增加按钮:用于设置数值的增加,每按下一次

20、,数值加1。数值减少按钮:用于设置数值的减少,每按下一次,数值减1。按钮设置值应该随时保存到24C02中。(3)扫描显示任务:数码管位选择与段码输出,就是将显示缓冲区的内容发送到数码管显示,将要显示的数据,组合成数组,再转换成十进制数字,发送到74HC595。不需要每个主程序循环都发送显示任务,因此可在定时器0中断中设置显示任务执行标记,当标记为1时,执行显示任务。由于显示内容随按钮选择的功能不同而不同,因此功能选择按钮任务中应该给出显示控制标记,控制显示内容。(4)TLC1549数据获取任务,需要将读TLC1549的程序写成函数。在定时器0中设置ADC任务执行标记,当该标记为1时,执行ADC

21、数据获取任务。要求连续读取8个数据,然后取平均值。并将完成滤波后的数据存入显示数组。(5)24C02读写任务,需要编制读写24C02的函数。单片机用软件控制引脚实现I2C接口,在上电时,应该读出所有保存在24C02中的数据到数组中;在设置各种数据时,应该随时将设置的数据字节写入24C02。(6)TLC5615任务,该任务是把温度转换成的代表电流的数字写入TLC5615,实现电流输出。该任务在定时器0给出的标记控制下执行。(7)定时器0中断任务,该任务是产生间隔的定时信号,ADC转换、扫描显示、DAC输出以及采样周期、数据计算等都需要定时器0给出标记,在标记为1时,才能执行任务。(8)数据处理任

22、务将TLC1549输出的数字通过标度变换转成温度值。因为PT100的电阻值与温度之间呈非线性,因此需要查表法矫正。具有回差比例控制算法实现。根据温度值控制晶闸管使接触器得电或失电,使加热器加热或是不加热。所谓回差比例控制就是当温度达到并超过设定值时,停止加热;当温度低于设定值时,开始加热。而有回差比例控制就是有两个设定值,当所测温度高于上设定值时停止加热;当低于下设定值时,开始加热,上下设定值之间的温度差称为回差。回差比例控制可以防止接触器频繁动作。实现报警算法。上限报警与下限报警分别给出不同的报警声。计算TLC5615需要的数字,就是将温度值转换成电流值。1.3.2基于STC89C51单片机

23、的智能测温仪表程序框架基于STC89C51单片机的智能测温仪表程序框架如下。#include /51单片机头文件定义数码管译码数组;定义数码管位选数组;定义保存在24C02中数据的数组;定义时间标记变量; /display_time,sample_time,control_time,DAC_time等定义其他全局数组与变量;声明函数原型;(TLC1549,TLC5615、24C02等函数)void main(void)定时器初始化;引脚初始化; /按钮、LED灯、ADC、DAC、E2PROM和软件SPI用引脚初始化其他初始化语句;从24C02读数组语句;/将保存的数据读到数组,每次单片机上电后

24、,就使用该数组中的数据while(1)按键处理语句;功能选择,控制周期、设定值、回差值、报警值等输入;将数组写入24C02语句; /将按键输入的数据保存到数组/数码管显示语句:if(display_time= =1) /如果显示标记display_time=1,则执行显示任务,完成一位数码管显示数码管扫描显示语句;/采用两片74HC595扫描数码管display_time= =0;/ADC转换与数字滤波语句:if(sample_time= =1) /如果数据采样标记sample_time=1,执行ADC转换任务TLC1549转换、数字滤波与非线性校正程序;sample_time= =0;/AD

25、C输出数值判断、报警、比例算法运算与控制量输出:if (control_time= =1) /如果控制周期标记control_time=1,则实现控制算法温度值判断与报警语句;比例算法运算语句;控制量输出语句;(引脚赋值语句)control_time=0;/DAC转换语句:if (DAC_time= =1) /如果DAC转换标记DAC_time=1,将数据写入DACTLC5615数据输出语句;DAC_time=0;/定时器0中断服务程序,用于产生显示、ADC转换与控制周期标记void Timer0() interrupt 1 static unsigned char n,m,k,h;n+; m

26、+,k+;h+;if(n= = display_time0) /display_time0为显示周期n=0; display_time=1;if(m= = sample_time0) /sample_time0为ADC转换周期m=0; sample_time=1;if(k= = control_time0) /control_time0为控制周期k=0; control_time=1;if(h= = DAC_time0) /DAC_time0为DAC转换周期h=0; DAC_time=1;三 系统流程图开始系统初始化DS1302时钟信号采集PT100温度数据采集处理读到的数据结束开始初始化函数

27、A/D转换器进行A/D转换将转换后的电压转换为温度返回开始初始化函数A/D转换器进行A/D转换将转换后的电压转换为温度返回开始系统初始化调用时间、温度子程序调用显示子程序调用扫描按键程序图43 A/D转换器流程图 图45 显示流程图 四、 总原理图4.1 PROTEL99SE电气原理图:4.2 PCB版图电源连接口,连接时注意极性,接错将损坏单片机作为电源开关的跳线短路7805的跳线DX210k电位器模拟电源输出JMN1LED灯与模拟输入的跳线DA1、DA2电源指示灯按钮共阳数码管外晶体跳线、DS1302外参考电压跳线外接晶体编程接口单片机五、电路仿真的设计与分析.Proteus仿真软件介绍:

28、Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:6800系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯

29、片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。.仿真分析:Proteus软件的仿真是依靠单片机程序来实现的,因此先将程序通过第三方Keil C51软件编译,连接,执行后产生一个HEX文件,再与Proteus仿真软件进行关联就可以实现仿真。本仿真电路的前置电路的两级放大电路中,通过调节一级放大器和二级放大电

30、路的偏置电路中滑动变阻器范围来调节测温范围,使输入到A/D转换器的模拟电压在0-5V范围内,这样才能进行A/D转换。在仿真过程中由于软硬件影响,还有人为计算误差因素,使得测量温度结果与理想测量结果存在一定的误差,因此可以通过改变硬件参数和软件程序设计来减少误差。另外,在仿真过程中,按键会可能产生抖动现象,可以通过硬件来消除抖动。启动Proteus软件,按本次设计的原理图画出电路仿真图,根据元件属性设置相应元件参数。由于PT100温度传感器在仿真过程中波动较大,使得显示的温度跳跃变化,不易于温度显示与测量。因此在本次仿真中用一个电阻来代替PT100热电阻,通过改变电阻阻值来反映PT100温度测量

31、。另外,由于在Proteus软件中不能仿真LM336恒压源,所以在本次仿真过程中采用软件自带的-2.5V的恒压原代替。对于数码管显示电路,在仿真过程中没有用三级管来驱动是为了画图的方便,这对仿真结果没多大影响,但在实际电路连接中必须在数码管加上三极管驱动。系统电路仿真图如图49所示。(仅设计了信号采集与调理,外加显示电路)六、体会心得通过这次对数字温度计的设计与制作,让我了解了设计单片机电路的程序,也让我了解了关于数字温度计的原理与设计理念,要设计一个电路总要先用仿真仿真成功之后才实际接线的。但是最后的成品却不一定与仿真时完全一样,因为,再实际接线中有着各种各样的条件制约着。而且,在仿真中无法

32、成功的电路接法,在实际中因为芯片本身的特性而能够成功。本设计实现了温度的测量,在达到设计要求的同时也具备一定的扩展性,通过简单的软件修改,即可实现温度上下限控制和越限报警功能。本次设计使我更加深刻的认知到智能仪表控制的在现代仪表控制中的实用性,重要性。在以后的学习中我将加大智能仪表设计的学习。在课设中认知到了整个系统结构紧凑、简单可靠、操作灵活、功能强、性能价格比高,较好地满足现代生产和科研的需要。附录 C语言程序:#include /STC89C51单片机头文件#include Flash unsigned char disp=0xC0,0xF9,0xA4,0XB0,0x99,0x92 0x

33、82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E;/定义数码管译码数组Flash unsigned char weizhi=0xfe,0xfd,0xfd,0xfd,0xef,0xdf,0xbf,0x7f;/定义数码管位选数组;#define OFF 0#define ON 1DOUT=P2_5;/引脚定义CLK=P2_7;LATCH=P2_6;Unsigned char xs8;Void LED(unsigned char X)unsigned char i;for(i=8;i=1;i-)if(x&0x80)P2_5=1;else P2_5=0;P

34、2_7=0;P2_7=1;SPI初始化;Void SPI_MasterInit(void)DDRB|=(15)|(17);SPCR=(16)|(14) |(15)|(11)| (10);Void SPI_595_Out(unsigned char i)SPDR=i;While(!SPDR&(10;a-)IO=ACC0;SCLK=0;/delayus(10);SCLK=1;ACC=ACC1;uchar read_byte() /向1302读出一字节uchar a;for(a=8;a0;a-)ACC7=IO;SCLK=1;SCLK=0;ACC=ACC1;return(ACC);void write

35、_1302(uchar add,uchar dat) /向1302写入数据RST=0;SCLK=0;/delayus(5);RST=1;write_byte(add);write_byte(dat);/delayus(5);SCLK=1;RST=0;uchar read_1302(uchar add) /向1302读出数据uchar temp;RST=0;SCLK=0;/delayus(5);RST=1;write_byte(add);temp=read_byte();/delayus(5);SCLK=1;RST=0;return (temp);uchar BCD_Decimal(uchar

36、bcd) uchar Decimal; Decimal=bcd4; return(Decimal=Decimal*10+(bcd&=0x0F);PORTB&=(14);SPI_595_Out(weizhisaomiao);SPI_595_Out(dispwsaomiao;PORTB=|(1=8saomiao=0;while(1)uchar j=0;uint i;DDAR=0xFF;DDRB=0XFF;PORTD=0XFF;DDRD=0X00;While(1)if(PIND|0XEE)=0XEF)For(i=0;i99)j=0;While(PIND|0XEF)=0XEF);PORTB=SHUMA

37、j/50;PORTC=SHUMAj%50;PORTA=j;while(1)PORTC=SHUMAcounter;/数码管与LED灯显示语句:if(display_time= =1) /如果显示标记display_time=1,则执行显示任务,完成一位数码管显示Xs0=1;Xs1=2;Xs2=3;Xs3=4;Xs4=5;Xs5=6;Xs6=7;Xs7=8;LED(weizhii);LED(dispXsi);P2_6=0;P2_6=1;i+;if(i=8)i=0;for(k=10;k0;k-)for(j=0;j10;j+);/采用两片74HC595扫描数码管display_time= =0;/AD

38、C转换与数字滤波语句:if(sample_time= =1) sbit AD_CS=P2_4;sbit AD_CLK=P2_5;sbit AD_DAT=P2_6;unsigned int readadc(void)unsigned char i;Unsigned int AD_Te,AD2,AD8;AD8=0;AD2=0;AD_CS=1;AD_CLK=0;AD_DAT=1;AD_CS=0;for(i=0;i2;i+)AD_CLK=0;_nop_();AD2 =AD21;if(AD_DAT)AD+=0x01;AD_CLK=1;_nop_();for(i=0;i8;i+)AD_CLK=0;_nop

39、_();AD8=AD8;if(AD_DAT)AD8+=0x01;AD_CLK=1;_nop_();AD_CLK=0;AD_CS=1;return(AD_Te);char lp() /滤波函数int sum = 0;char count;for (count=0;count12; count+)sum+=get_ad(); /获取ADC转换结果,并计算累加和delay();return (char)(sum/12);unsigned char vadc;unsigned int var;unsignedcharcodeK_TABLE21=100,103.9,107.79,111.67,115.54,119.40,123.24,127.08,130.90,134.71,138.51,142.29,146.07,149.83,153.58,157.33,161.05,164.77,168.48,172.17,175.86;/PT100分度表,每隔10对应一个电势值void tab(void)/查表函数usigned int v1=0

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

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922