专业综合设计课程设计基于MODBUS数据采集系统的设计.doc

上传人:文库蛋蛋多 文档编号:4141107 上传时间:2023-04-07 格式:DOC 页数:30 大小:649.50KB
返回 下载 相关 举报
专业综合设计课程设计基于MODBUS数据采集系统的设计.doc_第1页
第1页 / 共30页
专业综合设计课程设计基于MODBUS数据采集系统的设计.doc_第2页
第2页 / 共30页
专业综合设计课程设计基于MODBUS数据采集系统的设计.doc_第3页
第3页 / 共30页
专业综合设计课程设计基于MODBUS数据采集系统的设计.doc_第4页
第4页 / 共30页
专业综合设计课程设计基于MODBUS数据采集系统的设计.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《专业综合设计课程设计基于MODBUS数据采集系统的设计.doc》由会员分享,可在线阅读,更多相关《专业综合设计课程设计基于MODBUS数据采集系统的设计.doc(30页珍藏版)》请在三一办公上搜索。

1、吉林化工学院信控学院专业综合设计说明书基于Modbus协议的数据采集系统学生学号:08540235 学生姓名: xxx 专业班级:测控0802 指导教师:xxxx 职 称:教授 讲师 起止日期:2011.10.102011.10.29 吉林化工学院Jilin Institute of Chemical Technology专业综合设计任务书一设计题目:基于MODBUS协议的数据采集系统二设计目的1培养学生实践动手能力及独立分析和解决工程实际问题的能力;2培养学生的团队协作精神、创新意识、严肃认真的治学态度和严谨求实的工作作风;3学习C8051F350单片机体系结构及程序开发;4学习电路的焊装和

2、硬件调试;5. 编写完整的实验程序,进行整机调试;6. 学习撰写设计说明书。三设计任务及要求设计并实现基于Modbus协议的数据采集系统。系统具有以下基本功能:1利用C8051F350片上系统的24位AD转换模块实现对外部数据的采集;2使用Modbus通讯协议实现单片机与上位机的通讯;3. 通过组态王软件实现数据的实时显示。四设计时间及进度安排设计时间共三周(2007.12.102007.12.28),具体安排如下表:周安排设 计 内 容设计时间第一周1. 掌握C8051F350单片机体系结构;2. 设计采样电路和调试,并应用Protel画出其电路原理图。2011.10.102011.10.1

3、6第二周1. 学习Modbus通信协议和组态王;2. 编写实验程序。2011.10.172011.10.23第三周1. 整机调试;2. 撰写综合设计报告;3. 答辩。2011.10.242011.10.29五指导教师评语及学生成绩指导教师评语:年 月 日成绩指导教师(签字):目 录专业综合设计任务书I摘要III第1章 概述1第2章 方案选取22.1 通信方式选择22.2 ADM2852的选择2第3章 硬件电路设计33.1 RS484通信电路图33.3 单片机最小系统43.4 供电电源4第4章 核心元器件的介绍64.1 C8051F350微控制器64.1.1 24或16位模/数转换器(ADC0)

4、74.1.2 端口输入/输出74.1.2电压基准选择74.1.3 定时器7第5章 系统电源9第6章 结论10参考文献11附录1 电路原理图12附录2 程序13摘要此次专业综合设计采用C8051F350单片机、ADM2582隔离型RS-485收发器,HT7133稳压芯片、集成RS485转RS232转换器构成的系统,C8051F350单片机作为下位机,应用组态王6.55软件编制的上位机监控程序,应用单片机内部集成A/D转换器完成对实时电压模拟量的采集和处理,而组态王用于对下位机参数读写、显示、报警等,从而实现了一套完整可靠的电压采集监控系统。上位机和下位机通过Modbus通讯协议来进行数据的采集。

5、该设计电压采集范围在02.2V,误差范围可控制在0.5mV。该系统具有使用方便、测量精确、稳定性高、可性强等优点,可以在很多领域应用,如温度、液位、压力等物理量的采集和监控。关键字:C8051F350,ADM2582,组态王6.55,Modbus协议第1章 概述计算机网络、通信与控制技术的发展,导致自动化系统的深刻变革。随着微处理器与计算机功能的不断增强,价格急剧降低,计算机与计算机网络系统得到迅速发展。而处于企业生产过程底层的测控自动化系统,由于设备之间采用传统的一对一连线,用电压、电流的模拟信号进行测量控制,或采用自成体系的封闭式的集散系统,难以实现设备之间以及系统与外界之间信息变换,使自

6、动化系统成为“信息孤岛”。 随着现代工业的发展,对工业设备的控制逐步从单一独立系统向集散控制监控系统发展,因此,我们设计了基于Modbus协议实现下位机对电压信号的采集和组态王通信的智能工业控制器监控系统,它的数据通信系统由数据的发送设备、接收设备、作为传输介质的总线、通信协议组成。本设计虽然是简单的用单片机内部集成A/D转换器进行电压采样,但是利用此原理,并将设计稍加改动,就会演变成很多工业自动化监控系统,例如对温度、压力、液位等工业现场参数的精确控制,并且可以利用上位组态软件实现现场参数的读写、显示、越限报警等实现了一个完整的工业监控系统。 现场总线是当今自动化领域技术发展的热点之一,被誉

7、为自动化领域的计算机局域网。它的出现,将对该领域的技术发展产生重要影响,而本设计所运用的Modbus协议更是现场总线中应用较为广泛的一种总线技术。第2章 方案选取 2.1 通信方式选择用通信方式来看,有两种总线方式即:RS232总线和RS485总线。方案一:采用采用RS232串行总线方式,它是外部串行总线,通常我们用9针线接口进行通信,实际上只用到TXD、RXD、GND三根线,单端传输方式,最大传输距离是15米,最大传输速度20Kbit/s,具有串行传输只需要一根传输线即可,在成本上可以有一定的节约。但是典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端的驱动器输出正电平在+5+1

8、5V,负电平在-5-15V之间。当没有数据传输时,线上未TTL,从开始传输数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的正工作电平再+3+12V,负电平在-3-12V。由于发送电平和接收电平的差仅为2V到3V,所以共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为15M,最高速率为20Kbit/s。由于RS-232用于一对收发设备通讯,所以它只适合本地设备之间的通讯。方案二:采用RS485串行总线方式,它也是外部串行总线,RS-485可以采用二线与四线方式,二线制可以真正实现多点双向通讯。而在采用四线连接时,只能实现点对多的通信,也就是只有一个主设备,

9、其他全为从设备。它的特点是输入为差分输入方式,最大传输距离为1200米,最大传输速率为10Mbit/s,其优点是在RS232基础上其抗干扰能力极强,同一根电缆线的数据传输可以不受其他线路的干扰,还具有总线收发器灵敏度很高,能检测很低的电压(200mV),在远距离传输时也能使信号得以恢复。RS-485的接口信号电平较RS-232低,不易是接口电路的芯片受到损坏。由于RS-485的种种优点,使它成为众多工程师的首选串行接口。所以基于RS-485的优点,本设计也采用方案二作为通信方式。2.2 ADM2852的选择RS485 电路总体上可以分为隔离型与非隔离型。隔离型比非隔离型在抗干扰、系统稳定性等方

10、面都比较好,但有一些要求比较低的场合也可以用非隔离型。为防止电磁干扰或者电源尖峰脉冲干扰,所以尽管本设计电路较为简单,传输距离较近,但为了安全,选用隔离型电路。ADM2582是高集成度数据收发器,支持15 kVESD保护及信号和电源隔离,该器件适合用于多点传输线上的高速通信,内部集成隔离式DC-DC电源,无需外加DC-DC模块。采用5V或3.3V供电,实现完全集成的信号与电源隔离RS-485解决方案。ADM2582驱动器具有高电平有效使能特性,也具有低电平有效接收器使能特性,禁止时可使接收器输出进入高阻抗状态。第3章 硬件电路设计在设计方案选定好之后,需要对整个系统的实现过程有个具体的思考分析

11、,并拿出一个具体的系统实现方案框图,将整个实现过程模块化,便于硬件电路的设计和分工焊接,便于硬件的检错和硬件的调试。图3-1,便是选定的方案一的系统实现框图。图3-1 工作流程图3.1 RS484通信电路图RS-485数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485串行总线标准。RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能

12、在千米以外得到恢复。 RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS-485 可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。 RS-485驱动器可以用在RS-422网络中应用。RS-485的最大传输距离约为1219米,最大传输速率为10Mbps。平衡双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mbps。在短距离的信息传输过程中,可以忽略大部

13、分的干扰,即可以不使用双绞线。在没有强干扰的影响时,信号传输的终端也可以不加抗共模干扰的电阻。有的情况,485总线芯片的供电电源也会引起干扰,在这种情况下,需要对供电电源进行隔离,图3-3所示的电路就是消除电源干扰的一种电路设计方案。图3-2 RS485通信原理图3.3 单片机最小系统如下图3-3所示是单片机最小系统图3-3 单片机最小系统3.4 供电电源本次设计采用+5V电源供电,由于C8051F350单片机的工作电压范围为2.7V - 3.6V,所以选择LM1117T-3.3作为电源稳压器,输出稳定的3.3V电压为单片机和ADM2582E使用。如图3-4所示。 图3-4 系统电源第4章 核

14、心元器件的介绍4.1 C8051F350微控制器C8051F350器件是完全集成的低功耗混合信号片上系统型MCU,具有片内上电复位、VDD监视器、看门狗定时器和时钟振荡器的C8051F41x器件是真正能独立工作的片上系统。FLASH存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051固件。用户软件对所有外设具有完全的控制,可以关断任何一个或所有外设以节省功耗。 片内Silicon Labs二线(C2)开发接口允许使用安装在最终应用系统上的产品MCU进行非侵入式(不占用片内资源)、全速、在系统调试。调试逻辑支持观察和修改存储器和寄存器,支持断点、单步、运行和停机命令。在

15、使用C2进行调试时,所有的模拟和数字外设都可全功能运行。两个C2接口引脚可以与用户功能共享,使在系统调试功能不占用封装引脚。每种器件都可在工业温度范围(-45到+85)内用 2.7V-3.6V 的电压工作。端口 I/O 和/RST 引脚都容许 5V的输入信号电压。 C8051F350/1/2/3 采用28脚 QFN (也称为 MLP或MLF)封装或 32 脚 LQFP 封装。如图4-1所示图4-1 C8051F350顶视图4.1.1 24或16位模/数转换器(ADC0)C8051F350/1/2/3内部有一个全差分24位(C8051F350/1)或16位(C8051F352/3)Sigma-D

16、elta的数转换器(ADC),该ADC具有在片校准功能。两个独立的抽取滤波器可被编程到1KHz的样率。可以使用内部的2.5V电压基准,也可以用差分外部基准进行比率测量。ADC0中包含个可编程增益放大器,有8种增益设置,最大增益可达128倍。模拟多路选择器将ADC的差输入与8个外部引脚及内部温度传感器相连。可以使用内部输入缓冲器为直接连接的变送器供高输入阻抗。一个8位的偏移DAC允许修正较大的输入偏移电压。4.1.2 端口输入/输出C8051F350/1/2/3有17个I/O引脚(两个8位口和一个1位口)。C8051F350/1/2/3端口的工作情况与标准8051相似,但有一些改进。每个端口引脚

17、都可以被配置为模拟输入或数字I/O引脚。被选择作为数字I/O的引脚还可以被配置为推挽或漏极开路输出。在标准8051中固定的“弱上拉”可以被总体禁止以节省功耗。数字交叉开关允将内部数字系统资源映射到端口I/O引脚。可通过设置交叉开关控制寄存器将片内的计数器/定时器、串行总线、硬件中断或其它数字信号配置为出现在端口I/O引脚。这一特性允许用户根据自己的特定应用选择通用端口I/O和所需要的模拟和数字资源的组合。4.1.2电压基准选择C8051F350有两个电压基准选项:内部 2.5V参考电压或外部参考电压。ADC0CF寄存器中的 AD0VREF 位选择基准源。 内部电压基准电路包含一个 1.25V、

18、温度性能稳定的带隙电压基准发生器和一个两倍增益的输出缓冲放大器,产生 2.5V的电压基准。 当内部电压基准被使用时, 它被驱动输出到 VREF+引脚,此时 VREF-引脚被接到 AGND。通过将寄存器 ADC0MD 中的 AD0EN 位置1和将寄存器 ADC0CF中的 AD0VREF 位清0来使能内部电压基准。 当内部振荡器被使能时,内部振荡器的偏压发生器被自动使能。REF0CN 中的 BIASE 位也可以用于在内部振荡器未被使能使能的情况下来使能内部振荡器的偏压发生器。类似地,寄存器 REF0CN中的 REFBE 位可用于使能内部带隙基准发生器,该带隙基准发生器为 ADC、IDAC、时钟乘法

19、器和内部电压基准所用。ADC 的电压基准由寄存器 ADC0CF中的 ADC0VREF 选择。当ADC0VREF位被置1时,ADC 使用外部电压基准源;当 ADC0VREF 位被清0时,ADC使用内部基准。4.1.3 定时器C8051F350内部有4个16位计数器/定时器:其中两个与标准8051中的计数器/定时器兼容,另外两个是16位自动重装载定时器,可用于其他外设或作为通用定时器使用。这些定时器可以用于测量时间间隔,对外部事件计数或产生周期性的中断请求。定时器0和定时器1几乎完全相同,有四种工作方式。定时器2和定时器3均可作为一个16位或两个8位自动重装载定时器。定时器2和定时器3还具有sma

20、RTClock捕捉方式,可用于测量smaRTClock时钟(相对于另一振荡器)第5章 系统电源本次综合设计中介绍的直流稳压电源一般是线性稳压电源, 它是将起电压调整的作用器件始终工作在线性放大区,由50Hz工频变压器、整流器、滤波器和串联调整稳压器组成。它的基本工作原理为:工频交流电源经过变压器降压、 整流、滤波、再次滤波后成为一稳定的直流电源。图中其余部分是起电压调节,实现稳压作用的控制部分。电源接上负载后,通过采样电路获得输出电压,将此输出电压与基准电压进行比较。如果输出电压小于基准电压,则将误差值经过放大电路放大后送入调节器的输入端,通过调节器调节使输出电压增加,直到与基准值相等;如果输

21、出电压大于基准电压,则通过调节器使输出减小,最后直至与基准电压相等。这种稳压电源具有优良的纹波及动态响应特性。此次设计所用到的电源是3.3V直流电源,此电源是在+5V电源的基础上用一个HT7133稳压芯片将电压稳在3.24V,以达到单片机和ADM2582供电制要求。电路图如图5-1所示 图5-1 系统电源第6章 软件设计 6.1 编程软件Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生

22、成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。我们用开发软件Keil uVision3来编写、修改所需程序和下载程序到单片机运行。其下介绍Keil uVision3的使用步骤:1. 双击Keil uVision3,得到主画面,如图6-1所示:图6-1 Keil uVision3基本画面2. 新建界面 Project-new project,如图6-2所示:图6-2 KeiluVision3的新建界面2. 单片机的选择,如图6-3所示:图6-3 单片机的选择界面3. C文件的创建和添

23、加,如图6-4所示:图6-4 添加C文件6.2 编程语言的介绍C语言1是一种面向过程的计算机程序设计语言,它是目前众多计算机语言中举世公认的优秀的结构程序设计语言之一。它由美国贝尔研究所D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASE 都是由C 语言编写的。用C 语言加上一些汇编语言子程序,就更能显示C 语言的优势了,像PC- DOS 、WORDSTAR等就是用这种方法编写的。 C语言主要有以下特点: 1、C是中级语言。它把高级语言的基本结构和

24、语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。2、C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。3、C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。4

25、、C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。基于C语言的这些特点,我们选用C语言来作为编程语言。6.3 组态王软件组态王开发监控系统软件,是新型的工业自动控系统,它以标准的工业计算机软、硬件平台构成的集成系统取代传统的封闭式系统。它具有适应性强、开放性好、易于扩展、经济、开发周期短等优点。通常可以把这样的系统划分为控

26、制层、监控层、管理层三个层次结构。其中监控层对下连接控制层,对上连接管理层,它不但实现对现场的实时监测与控制,且在自动控制系统中完成上传下达、组态开发的重要作用。尤其考虑三方面问题:画面、数据、动画。通过对监控系统要求及实现功能的分析,采用组态王对监控系统进行设计。组态也为试验者提供了可视化监控画面,有利于试验者实时现场监控。而且,它能充分利用Windows的图形编辑功能,方便地构成监控画面,并以动画方式显示控制设备的状态,具有报警窗口、实时趋势曲线等,可便利的生成各种报表。它还具有丰富的设备驱动程序和灵活的组态方式、数据链接功能。下面介绍组态监控界面的建立,其步骤如下:1. 双击组态王6.5

27、5,得到主画面,启动“组态王”工程管理器(ProjManager) ,选择菜单“文件新建工程”或单击“新建”按钮,弹出如图6-4所示图6-4 新建工程界面2.点击下一步,按照步骤进行建立工程和存档,直到出现如下界面则创建成功。如图6-5所示图 6-5 建立工程完成3.点击设备串口设置,选择数据传输波特率等相关参数。如图6-6所示图 6-6 设置串口4.双击COM2,新建I/O设备,按照提醒设置需要的参数。如图6-7所示图6-7 设备配置向导5.监控画面的建立,单击画面,出现新建画面,根据操作手册进行画面建立。如图6-8所示图 6-8 新画面第7章 结论本设计运用组态王和C8051F3500单片

28、机及ADM2582设计的一个简单、实用、测量精度高的电压采集和组态监控画面系统,它可以把温度测量精度控制在0.5mV之内。在这次硬件课程设计过程中,我得到了童老师和王老师悉心的指导,是我在短期内学会了MODBUS通信协议和CRC校验的计算方法,以及组态王上位机与下位机通信的参数设定。通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了这一年年的学习成果。虽然在这次设计中对于知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这三星期的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。 参考文献 1 翟玉文

29、,梁伟, 艾学忠.电子设计与实践. 中国电力出版社,2005.52 童诗白,华成英. 模拟电子技术基础. 高等教育出版社出版社,2009.33 阎石. 数字电子技术基础(第五版)M. 高等教育出版社,2006.54 时景荣,李立春. C语言程序设计. 中国铁道出版社,2008.125 张齐,朱宁西. 单片机系统设计与开发. 北京:机械工业出版社,2008.86 张毅刚.单片机原理及应用.北京:高等教育出版社,20087申琢玉.吉林化工学院毕业设计说明书.2009.6.12附录1 电路原理图附录2 程序#include#define uint unsigned int#define uchar

30、unsigned char#define ulong unsigned long#define lint long int#define SYSCLK 24500000 /系统时钟#define MDCLK 2457600 /采样速率#define Out_R 20 /AD输出字速率#define SYSCLK 24500000 /系统频率#define BAUDRATE 9600 /串口波特率设置值/* Table Of CRC Values for high-order byte CRC校验高位*/uchar code auchCRCHi = 0x00, 0xC1, 0x81, 0x40,

31、 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x

32、80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,

33、0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x4

34、1, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,

35、0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40 ;/* T

36、able of CRC values for low-order byte CRC校验低位*/uchar code auchCRCLo = 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA

37、, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0

38、x3A,0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,0x62, 0x66, 0xA6, 0xA7, 0x67,

39、 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x

40、70, 0xB0, 0x50, 0x90, 0x91,0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,0x44,

41、0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40; sfr16 ADC0DEC = 0x9A; / ADC0DEC首地址unsigned long ada;union unsigned char num4; long a;dat;uchar xdata CommBuffer8; /存储上位机下发的请求命令uchar xdata sendBuf9; /上传数据缓存数组static int Index = 0; /以上数组的元素序列号 0到7bit R_Finish = 0

42、; /单片机接收一次请求命令完成,1为接受完成uchar SlaveID = 0x02; /本机(从机)设备号sbit EN = P11; /发送接收允许位uchar T0H = (65536-17000)/256;uchar T0L = (65536-17000)%256;/系统时钟和端口初始化void SYSCLK_Init() OSCICN = 0x83; /不分频 CLKSEL = 0x00; /内部时钟 RSTSRC = 0x04; /使能时钟丢失检测 PCA0MD = 0x00; /禁止看门狗void IO_Init() P0MDOUT = 0xf0; /P0 输出方式 1为推挽方

43、式 P1MDIN = 0xff; /P1 输入方式为数字输入 0为模拟输入 P1MDOUT = 0xff; /P1 输出方式 1为推挽方式 XBR0 = 0x01; /关闭其他外设,开串口 XBR1 = 0x40; /使能交叉开关 /AD初始化void ADC_Init() REF0CN |= 0x03; /使能内部电压基准 ADC0CN = 0x00; /增益为1,单极性方式 ADC0CF = 0x00; /SINC3滤波,内部基准(2.5V) ADC0CLK = (SYSCLK/MDCLK)-1; /使MDCLK = 2.4576MHz ADC0DEC = (unsigned long) MDCLK / (unsigned long) Out_R / (unsigned long) 128) - 1; ADC0BUF = 0x00; /关闭缓冲器 ADC0MUX = 0x67; /AIN+接到AIN0.6,AIN-接模拟地 ADC0MD = 0x81; /启动全内部校准 while(AD0CALC != 1); /等待校准完成 ADC0MD

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号