基于MODBUS数据采集系统的设计毕业设计_第1页
基于MODBUS数据采集系统的设计毕业设计_第2页
基于MODBUS数据采集系统的设计毕业设计_第3页
基于MODBUS数据采集系统的设计毕业设计_第4页
基于MODBUS数据采集系统的设计毕业设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、吉林化工学院信控学院专业综合设计说明书 基于 modbus 协议的数据采集系统 吉林化工学院 jilin institute of chemical technology 独 创 声 明 本人郑重声明:所呈交的毕业设计 (论文),是本人在指导老师的指导下,独立 进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经 注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过 的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标 明。 本声明的法律后果由本人承担。 作者签名: 二一年九月二十日 毕业设计(论文)使用授权声明 本人完全了解滨州学院关于收

2、集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位 论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文); 同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计 (论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定) 作者签名: 二一年九月二十日 专业综合设计任务书 一设计题目:基于一设计题目:基于 modbusmodbus 协议的数据采集系统协议的数据采集系统 二二设设计计目目的的 1培养学生实践动手能力及独立分析和解决工程实际问题的能力; 2培养学生的团队协作精神、创新意识

3、、严肃认真的治学态度和严谨求实的工作作风; 3学习c8051f350 单片机体系结构及程序开发; 4学习电路的焊装和硬件调试; 5. 编写完整的实验程序,进行整机调试; 6. 学习撰写设计说明书 。 三三设设计计任任务务及及要要求求 设计并实现基于modbus 协议的数据采集系统 。系统具有以下基本功能: 1利用c8051f350 片上系统的24 位ad 转换模块实现对外部数据的采集; 2使用modbus 通讯协议实现单片机与上位机的通讯; 3. 通过组态王软件实现数据的实时显示。 四四设设计计时时间间及及进进度度安安排排 设计时间共三周(2007.12.102007.12.28),具体安排如

4、下表: 周安排设 计 内 容设计时间 第一周 1. 掌握c8051f350 单片机体系结构; 2. 设计采样电路和调试,并应用 protel 画出其电路原理图。 2011.10.10 2011.10.16 第二周 1. 学习modbus 通信协议和组态王; 2. 编写实验程序。 2011.10.17 2011.10.23 第三周 1. 整机调试; 2. 撰写综合设计报告; 3. 答辩。 2011.10.24 2011.10.29 五五指指导导教教师师评评语语及及学学生生成成绩绩 指导教师评语: 年 月 日 成绩指导教师(签字): 目 录 专业综合设计任务书i 摘要iii 第1 章 概述1 第2

5、 章 方案选取2 2.1 通信方式选择2 2.2 adm2852 的选择2 第3 章 硬件电路设计3 3.1 rs484 通信电路图3 3.3 单片机最小系统4 3.4 供电电源4 第4 章 核心元器件的介绍6 4.1 c8051f350 微控制器6 4.1.1 24 或16 位模/数转换器(adc0)7 4.1.2 端口输入/输出7 4.1.2 电压基准选择7 4.1.3 定时器7 第5 章 系统电源9 第6 章 结论10 参考文献11 附录1 电路原理图12 附录2 程序13 摘要 此次专业综合设计采用c8051f350 单片机、adm2582 隔离型rs-485 收发器,ht7133 稳

6、压 芯片、集成rs485 转rs232 转换器构成的系统, c8051f350 单片机作为下位机,应用组态王6.55 软件编制的上位机监控程序 ,应用单片机内部集成a/d 转换器完成对实时电压模拟量的采集和处 理,而组态王用于对下位机参数读写、显示、报警等,从而实现了一套完整可靠的 电压采集监控 系统。上位机和下位机通过modbus 通讯协议来进行数据的采集。该设计电压采集范围在 02.2v,误差范围可控制在0.5mv。 该系统具有使用方便、测量精确、稳定性高、可性强等优点,可以在很多领域应用,如温 度、液位、压力等物理量的采集和监控。 关关键键字字:c8051f350,adm2582,组态王

7、6.55,modbus 协议 第 1 章 概述 计算机网络、通信与控制技术的发展,导致自动化系统的深刻变革。随着微处理器与计算 机功能的不断增强,价格急剧降低,计算机与计算机网络系统得到迅速发展。而处于企业生产 过程底层的测控自动化系统,由于设备之间采用传统的一对一连线,用电压、电流的模拟信号 进行测量控制,或采用自成体系的封闭式的集散系统,难以实现设备之间以及系统与外界之间 信息变换,使自动化系统成为 “信息孤岛”。 随着现代工业的发展,对工业设备的控制逐步从单一独立系统向集散控制监控系统发展, 因此,我们设计了基于modbus 协议实现下位机对电压信号的采集和组态王通信 的智能工业控制器

8、监控系统,它的数据通信系统由数据的发送设备、接收设备、作为传输介质的总线、通信协议 组成。本设计虽然是简单的用单片机内部集成a/d 转换器进行电压采样,但是利用此原理,并将 设计稍加改动,就会演变成很多工业自动化监控系统,例如对温度、压力、液位等工业现场参 数的精确控制,并且可以利用上位组态软件实现现场参数的读写、显示、越限报警等 实现了一个 完整的工业监控系统。 现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它 的出现,将对该领域的技术发展产生重要影响,而本设计所运用的 modbus 协议更是现场总线中 应用较为广泛的一种总线技术。 第 2 章 方案选取 2.1

9、 通信方式选择 用通信方式来看,有两种总线方式即: rs232 总线和rs485 总线。 方案一:采用采用rs232 串行总线方式,它是外部串行总线,通常我们用 9 针线接口进行通 信,实际上只用到txd、rxd、gnd 三根线,单端传输方式,最大传输距离是15 米,最大传输 速度20kbit/s,具有串行传输只需要一根传输线即可,在成本上可以有一定的节约 。 但是典型的rs-232 信号在正负电平之间摆动,在发送数据时,发送端的驱动器输出正电平在 +5+15v,负电平在-5-15v 之间。当没有数据传输时,线上未ttl,从开始传输数据到结束, 线上电平从ttl 电平到rs-232 电平再返回

10、ttl 电平。接收器典型的正工作电平再 +3+12v,负电 平在-3-12v。由于发送电平和接收电平的差仅为2v 到3v,所以共模抑制能力差,再加上双绞 线上的分布电容,其传送距离最大为15m,最高速率为20kbit/s。由于rs-232 用于一对收发设备 通讯,所以它只适合本地设备之间的通讯。 方案二:采用rs485 串行总线方式,它也是外部串行总线, rs-485 可以采用二线与四线方 式,二线制可以真正实现多点双向通讯。而在采用四线连接时,只能实现点对多的通信,也就 是只有一个主设备,其他全为从设备。它的特点是输入为差分输入方式,最大传输距离为 1200 米, 最大传输速率为10mbit

11、/s,其优点是在rs232 基础上其抗干扰能力极强,同一根电缆线的 数据传 输可以不受其他线路的干扰,还具有总线收发器灵敏度很高,能检测很低的电压( 200mv),在 远距离传输时也能使信号得以恢复。 rs-485 的接口信号电平较rs-232 低,不易是接口电路的芯 片受到损坏。由于rs-485 的种种优点,使它成为众多工程师的首选串行接口。 所以基于rs-485 的优点,本设计也采用方案二作为通信方式。 2.2 adm2852 的选择 rs485 电路总体上可以分为隔离型与非隔离型。隔离型比非隔离型在抗干扰、系统稳定性 等方面都比较好,但有一些要求比较低的场合也可以用非隔离型。 为防止电磁

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

13、方案框图,将整个实现过程模块化,便于硬件电路的设计和分工焊 接,便于硬件的 检错和硬件的调试。图3-1,便是选定的方案一的系统实现框图。 采集电路 a/d转换 单片机 rs-485 pc机组态界面 3.3v直流电源 图3-1 工作流程图 3.1 rs484 通信电路图 rs-485 数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定 义为a,另一线定义为b。rs-485 可以采用二线与四线方式,二线制可实现真正的多点双向通信。 rs-485 总线,在要求通信距离为几十米到上千米时,广泛采用 rs-485 串行总线标准。rs-485 采 用平衡发送和差分接收,因此具有抑制共

14、模干扰的能力。加上总线收发器具有高灵敏度,能检 测低至200mv 的电压,故传输信号能在千米以外得到恢复。 rs-485 采用半双工工作方式,任何 时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。 rs-485 用于多点互连时 非常方便,可以省掉许多信号线。应用rs-485 可以联网构成分布式系统,其允许最多并联32 台 驱动器和32 台接收器。 rs-485 驱动器可以用在rs-422 网络中应用。rs-485 的最大传输距离约 为1219 米,最大传输速率为10mbps。平衡双绞线的长度与传输速率成反比,在100kbps 速率以 下,才可能使用规定最长的电缆长度。只有在很短

15、的距离下才能获得最高速率传输。一般 100 米 长双绞线最大传输速率仅为1mbps。 在短距离的信息传输过程中,可以忽略大部分的干扰,即可以不使用双绞线。在没有强干 扰的影响时,信号传输的终端也可以不加抗共模干扰的电阻。有的情况, 485 总线芯片的供电电 源也会引起干扰,在这种情况下,需要对供电电源进行隔离,图 3-3 所示的电路就是消除电源干 扰的一种电路设计方案。 图3-2 rs485 通信原理图 3.3 单片机最小系统 如下图3-3 所示是单片机最小系统 3.4 供电电源 本次设计采用+5v 电源供电,由于c8051f350 单片机的工作电压范围为2.7v - 3.6v,所以选 择lm

16、1117t-3.3 作为电源稳压器,输出稳定的3.3v 电压为单片机和adm2582e 使用。如图3-4 所示。 gnd1 1 vcc 2 gnd1 3 rxd 4 re 5 de 6 txd 7 vcc 8 gnd1 9 gnd1 10 gnd2 11 visoout 12 y 13 gnd2 14 z 15 gnd2 16 b 17 a 18 visoin 19 gnd2 20 u1 adm2582e 10uf c5 103 c7 10uf c1 103 c3 vdd tx rx d+/a d-/b 100 r3 100 r4 r d 图3-3 单片机最小系统 agnd 9 av+ 10

17、ain0.0 1 ain0.1 2 ain0.2 3 ain0.3 4 p2.0/c2d 11 rst/c2ck 12 p0.0 13 p0.1 14 p0.2/xtal1 15 p0.3/xtal2 16 p0.4 17 p0.5 18 p0.6/cnvstr 19 p0.7 20 vdd 21 dgnd 22 p1.0 23 p1.1 24 p1.2 25 p1.3 26 p1.4 27 p1.5 28 p1.6/ida0 29 p1.7/ida1 30 vref+ 31 vref- 32 c8051f350/2 ain0.4 5 ain0.5 6 ain0.6 7 ain0.7 8 u2

18、 c8051f350/2 vdd 1k r1 res2 1k r2res2 10uf c10 cap 1uf c9 cap s1 rst rst vdd gnd vdd gnd 104 c11 100uf c12 vref- vref+ vref+ vref- r d rx tx adin gnd 图3-4 系统电源 in 3 out 2 1 gnd u3 lm1117t-3.3 10uf c18 104 c15 vdd gnd 1 vsrc 第 4 章 核心元器件的介绍 4.1 c8051f350 微控制器 c8051f350器件是完全集成的低功耗混合信号片上系统型 mcu,具有片内上电复位

19、、vdd监视器、 看门狗定时器和时钟振荡器的 c8051f41x器件是真正能独立工作的片上系统 。flash存储器还具有 在系统重新编程能力,可用于非易失性数据存储,并允许现场更新 8051固件。用户软件对所有外 设具有完全的控制,可以关断任何一个或所有外设以节省功耗。 片内silicon labs 二线(c2)开发接口允许使用安装在最终应用系统上的产品 mcu 进行非侵 入式(不占用片内资源)、全速、在系统调试。调试逻辑支持观察和修改存储器和寄存器,支 持断点、单步、运行和停机命令。在使用c2 进行调试时,所有的模拟和数字外设都可全功能运 行。两个c2 接口引脚可以与用户功能共享,使在系统调

20、试功能不占用封装引脚。 每种器件都可在工业温度范围( -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- delta的数转换器(adc),该adc具有在片校准功能。两个独立的抽取

21、滤波器可被编程到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相似,但有一些改进。每个端口引脚都可以被配置为模拟输入或数字i/o引脚。 被选择作为数字

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

23、和一个两倍增益的 输出缓冲放大器,产生 2.5v 的电压基准。 当内部电压基准被使用时, 它被驱动输出到 vref+引 脚,此时 vref-引脚被接到 agnd。通过将寄存器 adc0md 中的 ad0en 位置1和将寄存器 adc0cf 中的 ad0vref 位清0来使能内部电压基准。 当内部振荡器被使能时,内部振荡器的偏压发生器被自动使能。 ref0cn 中的 biase 位也可 以用于在内部振荡器未被使能使能的情况下来使能内部振荡器的偏压发生器。类似地,寄存器 ref0cn 中的 refbe 位可用于使能内部带隙基准发生器,该带隙基准发生器为 adc、idac、时钟 乘法器和内部电压基准

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

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

26、端,通过调节器调节使输出电压增加,直到与 基准值相等;如果输出电压大于基准电压,则通过调节器使输出减小 ,最后直至与基准电压相等 。 这种稳压电源具有优良的纹波及动态响应特性 。 此次设计所用到的电源是3.3v 直流电源,此电源是在 +5v 电源的基础上用一个ht7133 稳压芯 片将电压稳在3.24v,以达到单片机和adm2582 供电制要求。电路图如图5-1 所示 图5-1 系统电源 第 6 章 软件设计 6.1 编程软件 keil c51 是美国 keil software 公司出品的 51 系列兼容单片机 c 语言软件开发系统。 keil c51 软件提供丰富的库函数和功能强大的集成开

27、发调试工具,全windows 界面。 另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51 生成的目标 代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能 体现高级语言的优势。下面详细介绍 keil c51 开发系统各部分功能和使用。 我们用开发软件keil uvision3 来编写、修改所需程序和下载程序到单片机运行。其下介绍 keil uvision3 的使用步骤: 1.双击keil uvision3,得到主画面,如图6-1 所示: 2. 新建界面 project-new project,如图6-2 所示: 图6-1 keil uvisio

28、n3 基本画面 图6-2 keiluvision3 的新建界面 2.单片机的选择,如图6-3 所示: 3.c 文件的创建和添加,如 图6-4 所示: 6.2 编程语言的介绍 c 语言1是一种面向过程的计算机 程序设计语言,它是目前众多计算机语言中举世公认的优 秀的结构程序设计语言之一。它由美国 贝尔研究所d.m.ritchie 于1972 年推出。1978 后,c 语言 已先后被移植到大、中、小及微型机上。 c 语言发展如此迅速,而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的 系统软件,如dbase 都是由c 语言编写的。用c 语 图6-3 单片机的选择界面 图6-4 添加

29、c 文件 言加上一些汇编语言子程序,就更能显示c 语言的优势了,像pc- dos 、wordstar 等就是用这 种方法编写的。 c 语言主要有以下特点: 1、c 是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 c 语言 可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。 2、c 是结构式语言。结构式语言的显著特点是 代码及数据的分隔化,即程序的各个部分除 了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。c 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程 序流向,从而使程

30、序完全结构化。 3、c 语言功能齐全。具有各种各样的 数据类型,并引入了指针概念,可使程序效率更高。另 外c 语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、 逻辑判断功能也比 较强大,可以实现决策目的的游戏。 4、c 语言适用范围大。适合于多种 操作系统,如windows、dos、unix 等等;也适用于多种 机型。c 语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型 应用 软件也是用c 语言编写的。c 语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因 此适于编写系统软件, 三维,二维图形和动画。它是数值计算的高级语言。 基于c 语言的这些特

31、点,我们选用c 语言来作为编程语言。 6.3 组态王软件 组态王开发监控系统软件,是新型的工业自动控系统,它以标准的工业计算机软、硬 件平台构成的集成系统取代传统的封闭式系统。 它具有适应性强、开放性好、易于扩展、经济、开发周期短等优点。通常可以把这样 的系统划分为控制层、监控层、管理层三个层次结构。其中监控层对下连接控制层,对上 连接管理层,它不但实现对现场的实时监测与控制,且在自动控制系统中完成上传下达、 组态开发的重要作用。尤其考虑三方面问题:画面、数据、动画。通过对监控系统要求及 实现功能的分析,采用组态王对监控系统进行设计。 组态也为试验者提供了可视化监控画 面,有利于试验者实时现场

32、监控。而且,它能充分利用windows 的图形编辑功能,方便地 构成监控画面,并以动画方式显示控制设备的状态,具有报警窗口、实时趋势曲线等,可 便利的生成各种报表。它还具有丰富的 设备驱动程序和灵活的组态方式、数据链接功能。 下面介绍组态监控界面的建立,其步骤如下: 1. 双击组态王6.55,得到主画面,启动“组态王”工程管理器(projmanager) ,选择菜单 “文件新建工程”或单击“新建”按钮,弹出如图6-4所示 2.点击下一步,按照步骤进行建立工程和存档,直到出现如下界面则创建成功。如图 6-5 所 示 图 6-5 建立工程完成 3.点击设备串口设置,选择数据传输波特率等相关参数。如

33、图 6-6 所示 图6-4 新建工程界面 图 6-6 设置串口 4.双击com2,新建i/o 设备,按照提醒设置需要的参数。如图6-7 所示 图6-7 设备配置向导 5.监控画面的建立,单击画面,出现新建画面,根据操作手册进行画面建立。如图 6-8 所示 图 6-8 新画面 第 7 章 结论 本设计运用组态王和c8051f3500 单片机及adm2582 设计的一个简单、实用、测量精度高的 电压采集和组态监控画面系统,它可以把温度测量精度控制在 0.5mv 之内。 在这次硬件课程设计过程中,我得到了童老师和王老师悉心的指导,是我在短期内学会了 modbus 通信协议和crc 校验的计算方法,以

34、及组态王上位机与下位机通信的参数设定。 通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的 含义,并且检验了这一年年的学习成果。虽然在这次设计中对于知识的运用和衔接还不够熟练。 但是我将在以后的工作和学习中继续努力、不断完善。这三 星期的设计是对过去所学知识的系统 提高和扩充的过程,为今后的发展打下了良好的基础。 参考文献 1 翟玉文,梁伟, 艾学忠.电子设计与实践. 中国电力出版社,2005.5 2 童诗白,华成英. 模拟电子技术基础. 高等教育出版社出版社, 2009.3 3 阎石. 数字电子技术基础(第五版) m. 高等教育出版社,2006.5 4 时景荣,李

35、立春. c 语言程序设计. 中国铁道出版社,2008.12 5 张齐,朱宁西. 单片机系统设计与开发 . 北京:机械工业出版社, 2008.8 6 张毅刚. 单片机原理及应用. 北京:高等教育出版社, 2008 7 申琢玉.吉林化工学院毕业设计说明书 .2009.6.12 附录 1 电路原理图 附录 2 程序 #include #define uint unsigned int #define uchar unsigned char #define ulong unsigned long #define lint long int #define sysclk 24500000 /系统时钟 #

36、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 = 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0

37、x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x01, 0 xc0, 0

38、 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01,

39、0 xc0, 0 x80, 0 x41, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41,

40、 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x00, 0 xc1, 0 x81

41、, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc

42、1, 0 x81, 0 x40, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x01, 0 xc0, 0 x80, 0 x41, 0 x00, 0 xc1, 0 x81, 0 x40 ; /* table of crc values for low-order byte crc 校验低位*/ uchar code auchcrclo = 0 x00, 0 xc0, 0 xc1, 0 x01, 0 xc3, 0 x

43、03, 0 x02, 0 xc2, 0 xc6, 0 x06, 0 x07, 0 xc7, 0 x05, 0 xc5, 0 xc4, 0 x04, 0 xcc, 0 x0c, 0 x0d, 0 xcd, 0 x0f, 0 xcf, 0 xce, 0 x0e, 0 x0a, 0 xca, 0 xcb, 0 x0b, 0 xc9, 0 x09, 0 x08, 0 xc8, 0 xd8, 0 x18, 0 x19, 0 xd9, 0 x1b, 0 xdb, 0 xda, 0 x1a, 0 x1e, 0 xde, 0 xdf, 0 x1f, 0 xdd, 0 x1d, 0 x1c, 0 xdc, 0

44、x14, 0 xd4, 0 xd5, 0 x15, 0 xd7, 0 x17, 0 x16, 0 xd6, 0 xd2, 0 x12, 0 x13, 0 xd3, 0 x11, 0 xd1, 0 xd0, 0 x10, 0 xf0, 0 x30, 0 x31, 0 xf1, 0 x33, 0 xf3, 0 xf2, 0 x32, 0 x36, 0 xf6, 0 xf7, 0 x37, 0 xf5, 0 x35, 0 x34, 0 xf4, 0 x3c, 0 xfc, 0 xfd, 0 x3d, 0 xff, 0 x3f, 0 x3e, 0 xfe, 0 xfa, 0 x3a, 0 x3b, 0

45、 xfb, 0 x39, 0 xf9, 0 xf8, 0 x38, 0 x28, 0 xe8, 0 xe9, 0 x29, 0 xeb, 0 x2b, 0 x2a, 0 xea, 0 xee, 0 x2e, 0 x2f, 0 xef, 0 x2d, 0 xed, 0 xec, 0 x2c, 0 xe4, 0 x24, 0 x25, 0 xe5, 0 x27, 0 xe7, 0 xe6, 0 x26, 0 x22, 0 xe2, 0 xe3, 0 x23, 0 xe1, 0 x21, 0 x20, 0 xe0, 0 xa0, 0 x60, 0 x61, 0 xa1, 0 x63, 0 xa3,

46、0 xa2, 0 x62, 0 x66, 0 xa6, 0 xa7, 0 x67, 0 xa5, 0 x65, 0 x64, 0 xa4, 0 x6c, 0 xac, 0 xad, 0 x6d, 0 xaf, 0 x6f, 0 x6e, 0 xae, 0 xaa, 0 x6a, 0 x6b, 0 xab, 0 x69, 0 xa9, 0 xa8, 0 x68, 0 x78, 0 xb8, 0 xb9, 0 x79, 0 xbb, 0 x7b, 0 x7a, 0 xba, 0 xbe, 0 x7e, 0 x7f, 0 xbf, 0 x7d, 0 xbd, 0 xbc, 0 x7c, 0 xb4,

47、 0 x74, 0 x75, 0 xb5, 0 x77, 0 xb7, 0 xb6, 0 x76, 0 x72, 0 xb2, 0 xb3, 0 x73, 0 xb1, 0 x71, 0 x70, 0 xb0, 0 x50, 0 x90, 0 x91, 0 x51, 0 x93, 0 x53, 0 x52, 0 x92, 0 x96, 0 x56, 0 x57, 0 x97, 0 x55, 0 x95, 0 x94, 0 x54, 0 x9c, 0 x5c, 0 x5d, 0 x9d, 0 x5f, 0 x9f, 0 x9e, 0 x5e, 0 x5a, 0 x9a, 0 x9b, 0 x5b

48、, 0 x99, 0 x59, 0 x58, 0 x98, 0 x88, 0 x48, 0 x49, 0 x89, 0 x4b, 0 x8b, 0 x8a, 0 x4a, 0 x4e, 0 x8e, 0 x8f, 0 x4f, 0 x8d, 0 x4d, 0 x4c, 0 x8c, 0 x44, 0 x84, 0 x85, 0 x45, 0 x87, 0 x47, 0 x46, 0 x86, 0 x82, 0 x42, 0 x43, 0 x83, 0 x41, 0 x81, 0 x80,0 x40 ; sfr16 adc0dec = 0 x9a; / adc0dec 首地址 unsigned

49、long ada; union unsigned char num4; long a; dat; uchar xdata commbuffer8; /存储上位机下发的请求命令 uchar xdata sendbuf9; /上传数据缓存数组 static int index = 0; /以上数组的元素序列号 0 到7 bit r_finish = 0; /单片机接收一次请求命令完成, 1 为接受完成 uchar slaveid = 0 x02; /本机(从机)设备号 sbit en = p11; /发送接收允许位 uchar t0h = (65536-17000)/256; uchar t0l

50、= (65536-17000)%256; /系统时钟和端口初始化 void sysclk_init() oscicn = 0 x83; /不分频 clksel = 0 x00; /内部时钟 rstsrc = 0 x04; /使能时钟丢失检测 pca0md = 0 x00; /禁止看门狗 void io_init() p0mdout = 0 xf0; /p0 输出方式 1 为推挽方式 p1mdin = 0 xff; /p1 输入方式为数字输入 0 为模拟输入 p1mdout = 0 xff; /p1 输出方式 1 为推挽方式 xbr0 = 0 x01; /关闭其他外设,开串口 xbr1 = 0

51、x40; /使能交叉开关 /ad 初始化 void adc_init() ref0cn |= 0 x03; /使能内部电压基准 adc0cn = 0 x00; /增益为1,单极性方式 adc0cf = 0 x00; /sinc3 滤波,内部基准(2.5v) adc0clk = (sysclk/mdclk)-1; /使mdclk = 2.4576mhz adc0dec = (unsigned long) mdclk / (unsigned long) out_r / (unsigned long) 128) - 1; adc0buf = 0 x00; /关闭缓冲器 adc0mux = 0 x67

52、; /ain+接到ain0.6,ain-接模拟地 adc0md = 0 x81; /启动全内部校准 while(ad0calc != 1); /等待校准完成 adc0md = 0 x80; /使能adc0 /ad 一次采样并计算结果 void adc0() ad0int = 0; adc0h = adc0m = adc0l = 0; adc0md |= 0 x02; /写1 启动一次转换 while(ad0int = 0) /等待转换结束 ad0int = 0; ada = adc0l+adc0m*256+adc0h*65536; /毫伏 dat.a = 128 * ada; /串口初始化 void uart0_init () scon0 = 0 x10; if (syscl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论