单片机原理与应用课程设计论文基于ModBus总线协议的温度报警设计.doc

上传人:仙人指路1688 文档编号:4151277 上传时间:2023-04-07 格式:DOC 页数:37 大小:1.73MB
返回 下载 相关 举报
单片机原理与应用课程设计论文基于ModBus总线协议的温度报警设计.doc_第1页
第1页 / 共37页
单片机原理与应用课程设计论文基于ModBus总线协议的温度报警设计.doc_第2页
第2页 / 共37页
单片机原理与应用课程设计论文基于ModBus总线协议的温度报警设计.doc_第3页
第3页 / 共37页
单片机原理与应用课程设计论文基于ModBus总线协议的温度报警设计.doc_第4页
第4页 / 共37页
单片机原理与应用课程设计论文基于ModBus总线协议的温度报警设计.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《单片机原理与应用课程设计论文基于ModBus总线协议的温度报警设计.doc》由会员分享,可在线阅读,更多相关《单片机原理与应用课程设计论文基于ModBus总线协议的温度报警设计.doc(37页珍藏版)》请在三一办公上搜索。

1、河海大学计算机与信息学院(常州)单片机原理与应用课程设计论文指导老师: 授课班号: 姓 名: 学 号: 课程设计(报告)任务书(理 工 科 类)、课程设计(报告)题目: 基于ModBus总线协议的温度报警设计 、课程设计(论文)工作内容一、课程设计目标 1、培养综合运用知识和独立开展实践创新的能力;2、提高了我们独立发现问题、分析问题、解决问题的能力;3、更加地了解和掌握单片机的基本知识和较复杂的程序编写,也更加深入地了解单片机及现场总线。二、研究方法及手段应用1、认证学习51单片机的知识,学好单片机的C51编程。2、学习现场总线的相关知识。3、查找有关ModBus协议的资料。4、自己编写程序

2、,完成六个基本功能,和拓展功能。三、课程设计预期效果1、熟练应用51单片机编程,掌握各个模块的应用;1、完成最基本的六个协议功能;2. 实现了LCD显示功能;3、实现了相关参数的修改保存;4、完成测温报警等功能。学生姓名: 专业年级: 摘 要随着现场总线在工业应用中的越来越广泛,越来越普及,Modbus作为其中的一种简单协议也受到不少的欢迎。本论文将根据Modbus协议内容的用Modbus的ASCII 模式实现读线圈、写单个线圈、写多个线圈、读寄存器、写单个寄存器、写多个寄存器这六个功能。本系统以STC89C52为基本平台,主要利用其中的RS232串口,然后用单片机的I/O口模拟协议中的线圈,

3、在单片机中定义几个变量模拟协议中的寄存器。然后通过测量温度,与几个寄存器里的值比较判断是否报警。本系统可以实时与上位机通信,实现数据的采集,存储,判断处理等功能。另外本系统通过液晶实时显示当前线圈的状态、寄存器的值、测量的温度,另外本系统具有掉电保护的功能。【关键词】 Modbus、线圈、寄存器、RS232、STC89C52、温度报警ABSTRACTWith fieldbus in industrial applications more widespread, more and more popular, Modbus as a simple protocol which is also w

4、elcomed by many. This paper will be based on the content of the Modbus Protocol Modbus ASCII mode to achieve with coils read and write single coil, multiple coils to write, read register, write a single register, write multiple registers of the six functions. The system STC89C52 basic platform, the

5、main advantage of one of the RS232 serial port, then the MCU I / O port emulation protocol in the coil, several variables are defined in the SCM simulation protocol register. Then by measuring the temperature, and the number of registers in the value of the comparison to determine whether the alarm.

6、 The system can real-time communication with the host computer, data collection, storage, processing and other functions to determine. In addition the system through the liquid crystal display the current state of the coil, register values, measurement of temperature, while the system has a power-do

7、wn protection.【Key words】:Modbus 、Coil、Registers、RS232、STC89C52、Temperature alarm目录摘 要3第一章设计要求及需求7第一节 设计目标7一、基本功能7二、拓展功能7第二节 设计需求8第二章系统设计8第一节设计平台STC89C528一、STC89C52简介8第二节Modbus协议9一、Modbus概述9二、Modbus通信协议10第三节总体设计方案11第三章模块设计11第一节串口通信模块12第二节数据帧处理模块12第三节参数保存模块13第四节液晶显示模块15第五节DS18B20温度采集模块16一、DS18B20的主要特

8、征:17二、DS18B20引脚功能:17四、温度计算18五、时序18第四章系统调试18第一节硬件调试18第二节软件件调试19一、调试平台19二、调试问题19三、调试结果20第五章心得体会24致谢25参考文献26附录27一、硬件部分原理图27二、部分程序代码27第一章 设计要求及需求第一节 设计目标一、基本功能设计一个基于Modbus总线协议的系统,实现Modbus协议部分内容,如表1.1功能码功能本系统中功能十进制十六进制101读线圈输出:D1D4(只写)输入:P3.4P3.7(只读)505写单个线圈150F写多个线圈303读寄存器量程上限010000(读/写)量程下限05000(读/写)报警

9、上限010000(读/写)报警下限05000(读/写)测量值0.010000.0(只读)606写单个寄存器1610写多个寄存器表1.1用ASCII模式完成以上功能是本设计的基本要求,功能实现,程序规范。二、拓展功能在以上的基础上实现了RTU通信模式;系统能用LCD显示有关内容;实现了相关参数的修改保存;能够实时测温,并且有报警功能。独立完成软件设计、软硬件调试和论文撰写,所有变量、函数命名格式为“XXXX_学号”,例如“RangeMax_123”、“RangeMin_123”。论文必需包括需求分析、系统设计、详细设计、运行调试等过程,必须包含设计及运行过程的关键截图。第二节 设计需求在工业上,

10、温度是个很关键的参数,很多设备系统等都需要有一个工作范围,所以对温度的测量及报警,以及通过上位机可以实时去修改这个参数显得尤其重要。那么怎么降低成本同时更好的完成上述功能呢?现场总线给我们指引了一条道路,其中的一个Modbus总线协议就可以帮助我们很好的完成上述功能,而且性能稳定,价格便宜,很适合要求不是十分高的场合。现在很多测量仪表价格很是昂贵,而且线路复杂,功能还不齐全,所以所做的基于Modbus总线协议的温度测量控制系统能很好的解决这些问题,所以应用很广泛,需求也是很大。第二章 系统设计第一节 设计平台STC89C52一、STC89C52简介STC89C52是一种低功耗、高性能CMOS8

11、位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振

12、荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。如图2.1:图 2.1 单片机资源第二节 Modbus协议一、Modbus概述Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给IDA(Interface for Distributed Automation,分布式自动化接口)组织,并成立了Modbus-IDA组织,为Modbus今后的发展奠定了基础。在我国,Mod

13、bus已经成为国家标准GB/T19582-2008。据不完全统计:截止到2007年,Modbus的节点安装数量已经超过了1000万个。 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一Modbus网络上通信时,

14、此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。Modbus具有以下几个特点: (1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。 (2)Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,

15、如双绞线、光纤、无线等。 (3)Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。二、Modbus通信协议控制器通信使用主从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。 从设备回应消息也由Modbus协议构成,包括确认

16、要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。 第三节 总体设计方案本系统在基于stc单片机平台上,利用其中的RS232,然后根据Modbus总线协议去编写相应的程序完成其功能,另外再利用DS18b20测量温度,在Modbus上去实现温度报警等功能,然后

17、利用NOKIA5110液晶实时显示线圈的状态、几个寄存器的值、实时温度值。 图2.3为系统的总体方框图。图2.3 系统总体流程图其中系统一直在死循环判断是否接收到一个完整的帧,通过串口中断接收数据,一旦接收完数据,那么进入程序进行相应的处理并且把数据返回到上位机,同时定时器中断也一直开着,只要到一定时间就去保存寄存器数据、读取并且显示温度,同时本系统会用数码管显示出现在在处理功能几,这样方便判断程序的执行。第三章 模块设计第一节 串口通信模块串行通信是实现单片机与PC 及通信的一种基本方式。在本课题研究中,出于研究的需要,我们采用串口通信实现上位机与下位机之间的通信。同时由于在课题研究中总线上

18、我们只挂载了一个节点,所以只采用RS-232 串行通信。在串行通信的实现中,我采用了串口通信工作在方式一,波特率位9600 的方案。在串行通信过程中必然涉及寄存器以及定时器的配置。TMOD(定时器寄存器)GATE C/T* M1 M0 GATE C/T* M1 M0T1 方式字段T0 方式字段TMOD |= 0X20 即定时器T1 工作在方式2(自动重装的8 位定时器)。SCON(串行口控制寄存器)SM0 SM1 SM2 REN TB8 RB8 TI RISCON = 0X50 即串行口工作方式一(8 位UART,波特率可变)。由于单片机需要对数据帧进行处理,而处理数据帧所需要的时间相对比较长

19、,为了提高单片机的效率,在串行通信时,应该采用中断方式接受数据帧。一般而言,中断函数应该尽可能的简单。所以中断函数只负责接受数据帧,而对于接收上网数据帧的处理则放在主函数里。第二节 数据帧处理模块数据帧处理是整个系统的核心部分,在现场总线技术中有着至关重要的作用。所以要好好读懂理解Modbus的各个功能对应的帧格式,理解其含义和本质,然后才能找到对应信息去对其相应的处理。根据ModBus 协议,其ASCII 模式数据帧格式如下:编码系统: 16 进制,ASCII 字符0-9,A-F起始符位“:”,终止符为0X0D,0X0A;在数据帧处理过程中,首先判断数据帧是否完整,然后判断是不是发给本从机。

20、对完整数据帧进行LRC校验,LRC 校验正确的帧执行下面的处理步骤,否则丢弃该帧,并通知上位机重发数据。帧处理的前提除了LRC 校验正确,还需要确保地址位正确。在前提条件满足的情况下才能提取功能位和数据位。根据功能位确保要执行的功能。并执行相关功能。在具体功能中提取实现功能所需的数据位。图3.2为数据帧处理流程图图 3.2 数据帧处理流程图然后上位机队发回来的帧进行处理,判断是否正确然后对应的处理。第三节 参数保存模块在本系统中,为信息安全,我们需要增加参数的保存模块,让掉电后数据能保存起来,下次开机的时候能读出来。保存修改的参数可以使之能够较好的适应各种环境的测量。我们可以设置报警的上下限,

21、测量的上下限。由于需要保存的参数较少,我直接使用片内的EEPROM 来保存修改的参数。EEPROM 可以用于保存一些选哟在应用过程中修改并前掉电不丢失的参数数据ISP/IAP 数据寄存器ISP_DATA:ISP/IAP 操作时的数据寄存器,ISP/IAP 从Flash 读出数据放在此处,向Flash 写的数据也放在此处。ISP/IAP 地址寄存器ISP_ADDRH 和ISP_ADDRL:用于存放EEPROM 要寻址的地址,复位后为0000H。ISP/IAP 命令寄存器ISP_CMD:用于选择EEPROM 的模式。ISP/IAP 命令触发寄存器ISP_TRIG:操作时的命令触发寄存器。在ISPE

22、N(ISP_CONTR.7)=1 时,对ISP_TRIG 先写入46 好,在写入B9h,ISP/IAP 命令才会生效。每次ISP/IAP 操作前。都要对ISP_TRIG 先写入46 好,在写入B9h,ISP/IAP 命令才会生效。ISP/IAP 命令寄存器ISP_CONTR:用于配置ISP/IAP。建议:由于扇区擦除一次是一个扇区,所以同一次修改的数据放在一个扇区,不同次修改的数据放在不同的扇区较好。(每个扇区512 字节)。特别得注意的是在修改扇区内容时,无法覆盖。只有扇区擦除才能把原来的“0”修改为“1”。第四节 液晶显示模块本系统为了方便现场观察数据和调试,加上了液晶显示。这里液晶采用N

23、okia5110。Nokia5110是一款经典机型,可能由于经典的缘故,旧机器很多,所以很多电子工程师就把旧机器的屏幕拆下来,自己驱动Nokia5110,用于开发的设备显示,取代LCD1602。通过取字幕软件可以提取汉字、字母、图形的编码,然后通过5110显示。本系统主要用液晶实时显示线圈 状态和寄存器的值,很直观。该模块具有以下特点:84x48 的点阵LCD,可以显示4 行汉字,采用串行接口与主处理器进行通信,接口信号线数量大幅度减少,包括电源和地在内的信号线仅有9 条。支持多种串行通信协议(如AVR 单片机的I、MCS51 的串口模式等),传输速率高达4Mbps,可全速写入显示数据,无等待

24、时间。可通过导电胶连接模块与印制版,而不用连接电缆,用模块上的金属钩可将模块固定到印制板上,因而非常便于安装和更换。LCD 控制器驱动器芯片已绑定到LCD 晶片上,模块的体积很小。采用低电压供电,正常显示时的工作电流在200A 以下,且具有掉电模式。图 3.4 液晶引脚图图 3.5 液晶指令表命令字符解释:图 3.6 命令字符解释要注意的是“功能设置”命令的“H”和“V”。H=0使用基本指令集命令,H=1使用扩展指令集命令。V=0水平寻址,V=1垂直寻址。第五节 DS18B20温度采集模块本系统主要利用Modbus总线来实现温度的报警功能,这里温度的测量使用了DS18B20温度传感器。温度传感

25、器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。一、DS18B20的主要特征: (1) 全数字温度转换及输出。 (2) 先进的单总线数据通信。 (3) 最高12位分辨率,精度可达土0.5摄氏度。 (4) 12位分辨率时的最大工作周期为750毫秒。 (5) 可选择寄生工作方式。 (6) 检测温度范围为55C +125C (67F +257F) (7) 内置EEPROM,限温报警功能。 (8) 64位光刻ROM,内置产品序列号,方便多机挂接。 (

26、9) 多样封装形式,适应不同硬件系统。 二、DS18B20引脚功能: GND 电压地 DQ 单数据总线 VDD 电源电压三、特点 独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件 可用数据总线供电,电压范围为3.0 V至5.5 V 无需备用电源 测量温度范围为-55 C至+125 。华氏相当于是-67 F到257华氏度 -10 C至+85 C范围内精度为0.5 C 。温度传感器可编程的分辨率为912位 温度转换为12位数字格式最大值为750毫秒 用户可定义的非易失性温度报警设置 应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统 。描述该D

27、S18B20的数字温度计提供9至12位(可编程设备温度读数。信息被发送到/从DS18B20 通过1线接口,所以中央微处理器与DS18B20只有一个一条口线连接。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个DS18B20的包含一个独特的序号,多个ds18b20s可以同时存在于一条总线。这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。 四、温度计算 1、Ds1820用9位存贮温值度最高位为符号位下图为18b20的温度存储方式负温度S=1正温度S=0如00AAH为+85,0032H为25FF92H为-5

28、5 2、Ds18b20用12位存贮温值度最高位为符号位下图为18b20的温度存储方式负温度S=1正温度S=0如0550H为+850191H为25.0625,FC90H为-55五、时序主机使用时间隙(time slots)来读写DSl820的数据位和写命令字的位。具体每个功能的相应时序比较复杂,官方资料中有详细的描述,这里就不在说了。第四章 系统调试第一节 硬件调试本系统用老师发的板子,自己按照原理图焊接了板子,这个由于都是现成的材料,所以也没有什么难度,自己以前也做过很多东西,所以很快就焊接好,经测试没有问题,下面就进行软件的编写了。第二节 软件件调试一、调试平台软件调试也是此系统最关键的一步

29、了,也是有难度的一步。本系统采用Keil软件编写程序,调试,如图4.2。图4.2 调试平台二、调试问题1、关于工程的建立:.C、.h文件的处理。在程序编译中会遇到不少关于这个的问题,其中有一些包含的问题,变量定义的问题,函数同名的问题,数据类型重定义的问题,不过经过查找资料,咨询有经验的同学都一个一个解决了这个问题。2、关于具体函数的问题:这都怪自己C语言功底还不够扎实,会出现一些有关语法、函数的问题,所以这也提醒我去把知识学扎实,学深入。3、关于串口:自己写的程序发送少了一个字符,所以老是出问题,通过用软件调试发现了这个问题,并且改掉了。4、LRC校验出了问题:我当时对LRC理解的错误,我是

30、用ASIIC码相加得到了结果,正确的应该是把ASIIC码转换为16进制的值相加取反在加1。5、关于EEPROM:这时第一次用EEPROM功能,所以调试中也遇到不少问题,有的寄存器设置出错。6、调试中的协议问题:有的时候对帧的处理出了问题,所以这个也比较头疼,经过对帧的理解,一步步解决所有问题。7、程序中判断一个帧是否接受完的方法不是很好,我是通过接收的个数去判断的,后来发现这样不够稳定,所以我又改成通过判断一个帧结尾的0X0D、0X0A来判断。8、其他问题三、调试结果1.硬件调试在对硬件和软件综合调试后,经标准上位机验证,基本满足课题要求。可以实现读写线圈和寄存器的功能,同时参数的储存也可以达

31、到要求,还可以去实时显示线圈的状态和寄存器的值。图4.3.1 开机画面图4.3.2 系统运行时的照片其中第一行显示的是8个线圈的状态,第二行显示的是测量上限,第三行显示的是测量下限,第四行显示的是报警上限,第五行显示的是报警下限,第六行显示的是实时的温度值。2、软件调试截图功能1:读线圈功能3:读寄存器功能5:写单个线圈功能6:写单个寄存器功能15:写多个线圈功能16:写多个寄存器第五章 心得体会通过此次课程设计,我更进一步地熟悉了单片机的结构及掌握了单片机的工作原理和其具体的使用方法,了解了单片机程序设计与特点,同时也更加深入的掌握了51 系列单片机的相关知识。并且我懂得了单片机程序设计的基

32、本思路,增强了实践动手能力。除此以外,我还深深地认识到严谨、认真的科学态度在科学实验中发挥的重要作用。对于这次课设,我是把它当做一个项目来做,所以一开始就抱着很负责很严谨的态度去面对。这也是我在大学以来第一次去用51单片机去调试一个关于串口的协议,也是算我亲自写的最长的程序了,所以很有感慨。将一个复杂的工程分成若干个基本模块进行分步设计和测试,最后将这些模块连接起来是本实验基本的设计思想。从老师刚布置这个题目,感觉这个好难啊,从来没有接触过啊,到自己亲手去查资料,去写成程序,去一步一步解决问题,去实现基本功能,去实现附加功能,感觉自己成长了不少。一个东西刚开始接触可能会觉的有难度,但是自己亲手

33、认真去作,一个一个解决问题,到最后会发现其实这个大的难题也没有什么。这次我学到的最多的不是单片机知识,不是Modbus协议,是这种过程,这种态度,这种方法,和这种感觉。同样自己还有很多方面的不足有待于改善,所以,我要更加的努力去学习,更加静下心去完善自己。致谢在课程设计的过程中,由于对知识的不理解,因此也遇到了很多的困难,虽然设计存在一些不足之处,但通过同学和老师的帮助,问题得到了一步一步的解决,也让我在课程设计的过程中学到了很多很多知识,让我了解到单片机编程是一个很精深的过程,只有不断的调试,不断的实践,不断的付出努力才可以得到预期的结果。此课程设计得到了很多同学和老师的支持,在此深表感谢!

34、参考文献1 张友德,赵志英,涂时亮. 单片微型机原理、应用与实验(第五版). 复旦大学出版社,2006.2 朱大奇,邬勤文,袁芳. 单片机原理、应用与实验. 科学出版社,2009.3 李朝青. 单片机原理及接口技术. 北京航空航天大学出版社,2005.4 张凤登. 现场总线技术及应用. 科学出版社,2008.附录一、 硬件部分原理图二、 部分程序代码1、 main函数#include main.h#include intrins.h#include nokia_5110.h#include ds18b20.h#include EEPROM.h/*modbus ASSCII 的C51程序单片机S

35、TC89C52通信波特率 9600 8位数据 1位停止位 232通位接口*/uint8sendBuf_12435,receBuf_12435; /发送接收缓冲区uint16 reg_1245; /寄存器uint16 wendu_124; /温度值unsigned int zhengshu_124,xiaoshu_124;char temperature_124= . ;uint8 code table_124= /数码管码0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;uint8re

36、ceTimeOut_124;/接收超时bit f1ms_124=0,f10ms_124=0,f100ms_124=0;/定时标志位uint8 c10ms_124,c100ms_124; /定时计数/*/*函数名称: commIntProc()*输入参数: 共 0 个参数;*输出参数: 共 0 个参数;*返回值:*需储存的参数: 共 0 个参数;*功能介绍:串口中断函数*修改日志:*2010-12-14 Ver. 1.00开始编写;2010-12-7完成; 2010-12-7/* */*/void commIntProc_124() interrupt 4 / 串行中断程序if(TI)TI =

37、0;if(sendPosi_124 =10)c10ms_124 = 0; /10ms计时器清零f10ms_124=1; / void Timer0IntProc()/*/*函数名称: save_124(void)*输入参数: 共 0 个参数;*输出参数: 共 0 个参数;*返回值:*需储存的参数: 共 0 个参数;*功能介绍:保存掉电寄存器数据*修改日志:*2010-12-14 Ver. 1.00开始编写;2010-12-14完成; 2010-12-14/* */*/void save_124(void) /保存掉电寄存器数据uint8 tempdata_124;tempdata_124=P1

38、;IapEraseSector_124(0x2000);IapProgramByte_124(0x2000,reg_1240);IapProgramByte_124(0x2001,reg_1241);IapProgramByte_124(0x2002,reg_1242);IapProgramByte_124(0x2003,reg_1243);IapProgramByte_124(0x2004,reg_1244);IapProgramByte_124(0x2005,tempdata_124);/*/*函数名称: read_124(void)*输入参数: 共 0 个参数;*输出参数: 共 0 个参

39、数;*返回值:*需储存的参数: 共 0 个参数;*功能介绍:开机读取掉电时的寄存器数据*修改日志:*2010-12-14 Ver. 1.00开始编写;2010-12-14完成; 2010-12-14/* */*/void read_124(void) /开机读取掉电时的寄存器数据reg_1240=IapReadByte_124(0x2000);reg_1241=IapReadByte_124(0x2001);reg_1242=IapReadByte_124(0x2002);reg_1243=IapReadByte_124(0x2003);P1=IapReadByte_124(0x2005);/

40、*/*函数名称: displaytempr(void)*输入参数: 共 0 个参数;*输出参数: 共 0 个参数;*返回值:*需储存的参数: 共 0 个参数;*功能介绍:读取温度值并且显示出来*修改日志:*2010-12-14 Ver. 1.00开始编写;2010-12-14完成; 2010-12-14/* */*/void displaytempr_124(void)wendu_124=read_T_124();if(wendu_1242048) /温度为0上的温度wendu_124&=0x07ff;zhengshu_124=wendu_124/16; /计算温度的整数部分xiaoshu_124=(wendu_124*25/4)%100; /计算温度的小数部分temperature_124

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号