基于单片机的数字采控器设计毕业论文


    





    毕业设计说明书


    基单片机数字采控器
    设计









    专业
    电气工程动化
    学生姓名

    班级

    学号

    指导教师

    完成日期
    20XX年X月X日

    基单片机数字采控器设计
    摘 :数字采集系统简称DAS(Digital Acquisition System)指温度压力流量位移等模拟量进行采集量化转换成数字量便计算机进行存储处理显示印装置数字采集系统采集系统中常见类型着单片机技术飞速发展通单片机控象进行控制日益成重发展方需种应范围广性价高数采集系统
    次设计采集象数字量通单片机采集输入端数字量控制输出端继电器动作设计包括两种控制方式:种控制种RS485远程控制两种设计时实现功:机址设置波特率设置继电器控制通RS485通信时利位机控制继电器动作进行界面显示
    该设计STC89C52单片机控制核心选RS485通信技术进行远程控制通串口通信实现单片机PC机间通信完成单片机通道数采集控制系统设计

    关键词:数字采集器单片机 RS485
    Design of Microcontroller Dased Digital Acquisition Controller
    Abstract Data Acquisition System referred to DAS (Data Acquisition System) refers to the temperature pressure flow displacement such as simulation of a collection quantitative converted into digital so as to provide computer storage processing display or print device Digital Acquisition System Acquisition System is the most common type with the rapid development of SCM technology the object through the MCU control has increasingly become an important future development direction So people require a broad scope of application high reliability and lowcost data acquisition system
    The design is primarily a collection of objects for digital SCM Acquisition digital input to control the action of output relay This design includes two control methods One is Local control another is RS485 remote control The two designs to achieve the following functions Local address is set the baud rate settings relay control PC control relay RS485 and interface display
    The design is based on STC89C52 microcontroller as the core Selection of RS485 communication technology for remote control Communication between the MCU and PC through the serial communication the complete singlechip multihannel data acquisition and control system design

    Key Words Data acquisition MCU Communication RS485
    目 录
    1 概 述 1
    11 课题研究背景 1
    12 课题研究意义 1
    13 课题研究容 2
    2 系统方案设计 3
    21 系统设计求 3
    22 总体方案设计证选择 3
    221 总体方案设计 3
    222 单片机选型 3
    223 数字量信号采集方案选择 7
    224 数字量输入电路 7
    225 数字量输出电路方案选择 9
    226 通信电路方案选择 11
    23 硬件开发环境 12
    24 软件开发环境 13
    3 硬件电路设计 14
    31 系统硬件电路原理结构框图 14
    32 系统模块电路设计 14
    321 单片机系统设计 14
    322 系统电源电路设计 15
    323 系统数字量输入电路设计 16
    324 系统数字量输出电路设计 17
    325 RS485通信电路设计 18
    326 通信波特率机址设置电路设计 18
    4 软件设计 21
    41 系统软件设计 21
    5 系统调试 26
    51 硬件调试 26
    52 软件调试 27
    6 结束语 36
    参考文献 37
    致 谢 38
    附 录 39
    附 录1 设计图纸 39
    附 录2 元器件清单 42
    附 录3 程序清单 43

    基单片机数字采控器设计
    1 概 述
    现实中通计算机现实世界中信息进行处理显示首先必须计算机现实世界联系起需真实世界中种信号(称模拟信号)转化计算机识存储信号(称数字信号)程数采集数采集技术前端模拟信号处理模拟信号数字化数字信号处理计算机控制技术等高科技基础形成门综合技术许领域广泛应数字技术促进述领域发展反数采集系统提出愈愈高求型数采集系统部分组成:数测量数采集数传送数存储数处理数分析数显示等
    简言数字采集技术发展离开计算机控制技术网络化测量采集控制发展必然趋势
    11 课题研究背景
    计算机广泛应天数采集领域着十分重应计算机外部物理世界连接桥梁利串行红外通信方式实现移动数采集器应软件升级通制定位机(PC)移动数采集器通信协议实现两者间阻塞式通信交互程工业工程生产车间等部门尤信息实时性求较高者恶劣数采集环境中更突出应必性例:工业生产科学技术研究行业中常常利PC工控机种数进行采集中方需种数采集液位温度压力频率等现常采集方式通数采集卡常AD卡232422485等总线板卡卫星数采集系统利航天遥测遥控遥监等技术航天器远点进行种监测根需求进行动采集卫星床书数中心处理送户应系统
    12 课题研究意义
    着科学技术发展社会进步现场监控系统已越越广泛应金融交通商业工农业生产等领域数字采控器作现场监控系统中数字量采集控制设备性整系统现场监控工作稳定性具十分重作研制结构简单性稳定性高成低廉新型数字采控器具十分重意义
    现实中通计算机现实世界中信息进行处理显示首先必须计算机现实世界联系起需真实世界中种信号(称模拟信号)转化计算机识存储信号(称数字信号)程数采集数采集技术前端模拟信号处理模拟信号数字化数字信号处理计算机控制技术等高科技基础形成门综合技术许领域广泛应数字技术促进述领域发展反数采集系统提出愈愈高求型数采集系统部分组成:数测量数采集数传送数存储数处理数分析数显示等
    总言数采集技术发展离开传感器计算机控制技术网络化测量采集控制室器发展必然趋势
    13 课题研究容
    文基单片机数字采集控制系统结构功进行分析设计分硬件软件结构进行研究STC89C52控制核心通RS485总线串口通信实现单片机PC机间通信进行机址波特率设置
    课题研究容:
    A 根课题求确定系统硬件结构完成系统方案设计
    B 根电路功求完成硬件电路设计
    C 完成软件部分设计首先设计流程图次进行编程
    D 进行软件仿真绘制原理图PCB图
    E 实物进行硬件调试



















    2 系统方案设计
    21 系统设计求
    A 数字量输入路数:16路
    B 数字量输出路数负载规格:16路220V5A24V10A
    C 通信:RS485通信
    D 附加功:址设置——0~255波特率设置:24004800960019200
    22 总体方案设计证选择
    221 总体方案设计
    数字采集控制器硬件单片机核心实现通信波特率设置机址设置16路数字量采集16路数字量控制等功系统硬件组成框图图21示

    图21 系统整体硬件结构框图
    系统微控制器控系统通信接口通信波特率机址设置16路数字输入电路16路数字量输出电路单片机系统系统电源等组成
    222 单片机选型
    A 方案:PIC单片机
    美国Micro chip公司推出PIC单片机系列产品首先采RISG结构嵌入式微控制器高速度低电压电流LCD驱动力低价位OTP技术等体现出单片机产业新趋势PIC 8位单片机具指令少执行速度快等优点原PIC系列单片机结构单片机该系列单片机引入原型计算机双总线两级指令流水结构种结构般采CLSC(复杂指令集计算机)单片机结构
    PIC系列单片机种开发控制外围设备集成电路(IC)种具分散作(务)功CPU类相脑CPUPIC享部分相神系统PIC单片机计算机PIC单片机计算功记忆存CPU软件控制运行然处理力存储器容量限取决PIC类型高操作频率约20MHz左右存储器容量做写程序约1~4K字节
    B 方案二:AVR单片机
    AVR单片机ATMEL公司1997年推出精简指令集(RISC)单片机系列ATMEL公司通AVRRISC技术带8位单片机世界里种全新结构带优势该系列程序存储器片Flash存储器反复修改千次新产品开发产品升级方便单片机指令基单晶振周期够1MIPSMHz性该系列单片机针应C语言编程做优化系列单片机型号宽电压工作时种睡眠模式利降低系统功耗加部振荡器门狗电复位AD输入PWM输出等功称零外设单片机具片系统锥形AVR单片机适领域表现出卓越性
    C 方案三:STC单片机
    STC系列单片机价格便宜(性价方便讲)功抗干扰力强EEPROM串口编程方便出厂时程序引导区已加密STC解密市面价格15w~25w间见解密难度定程度保护单片机工程师利益产品开发商利益生产时已考虑传统51兼容问题兼容做增加许功STC89C52单片机学版功强具报警跑马灯串行通信(MAX485)等十七种功供学者学开发
    综述PIC单片机解密容易单片机价格较贵性价高PIC系列单片机指令数量较少AVR系列单片机没类似累加器A结构通R16~R31寄存器实现A功AVR中没类似51系列单片机数指针DPTRSTC系列单片机价格便宜性价较高功抗干扰力强EEPROM串口编程方便出厂时程序引导区已加密STC解密难度生产时已考虑传统51单片机兼容性问题增加许复位功次设计选STC89C52作控制核心
    STC89C52单片机概述:
    STC89C52低功耗高性CMOS 8位微控制器具8K系统编程Flash存储器片含4KB反复擦写程序存储器128B机存取数存储器(RAM)器件采Atmel公司高密度非易失性存储技术生产兼容标准MCS51指令系统片配置通8位中央处理器(CPU)Flash存储单元功强STC89C52单片机灵活应种控制领域
    A)性参数
    a MCS51产品指令系统完全兼容
    b 4KB反复擦写Flash闪速存储器
    c 1000次擦写周期
    d 时钟频率范围:0Hz—24MHz
    e 3级加密程序存储器
    f 128*8B部RAM
    g 32编程IO接口线
    h 216位定时计数器
    i 6中断源
    j 编程串行UART通道
    k 低功耗空闲掉电模式
    B)功特性概述
    STC89C52提供标准功:8KBFlash闪速存储器512B部RAM32IO接口线三16位定时计数器5量两级中断结构全双工串行通信口片振荡器时钟电路时STC89C52降0Hz静态逻辑操作支持两种软件选节电工作模式空闲方式停止CPU工作允许RAM定时计数器串行通信口中断系统继续工作掉电方式保存RAM中容振荡器停止工作禁止部件工作直硬件复位高运作频率35MHz6T12T选
    C)引脚性概述
    STC89C52芯片引脚图图22示

    图22 STC89C52芯片引脚图
    VCC:供电电压
    GND:接
    P0口:P0口8位漏级开路双IO口脚吸收8TTL门电流P1口脚第次写1时定义高阻输入P0够外部程序数存储器定义数址第八位FIASH编程时P0 口作原码输入口FIASH进行校验时P0输出原码时P0外部必须拉高
    P1口:P1口部提供拉电阻8位双IO口P1口缓器接收输出4TTL门电流P1口脚写入1部拉高作输入P1口外部拉低电时输出电流部拉缘FLASH编程校验时P1口作第八位址接收
    P2口:P2口部拉电阻8位双IO口P2口缓器接收输出4TTL门电流P2口写1时脚部拉电阻拉高作输入作输入时P2口脚外部拉低输出电流部拉缘P2口外部程序存储器16位址外部数存储器进行存取时P2口输出址高八位出址1时利部拉优势外部八位址数存储器进行读写时P2口输出特殊功寄存器容P2口FLASH编程校验时接收高八位址信号控制信号
    P3口:P3口脚8带部拉电阻双IO口接收输出4TTL门电流P3口写入1部拉高电作输入作输入外部拉低电P3口输出电流(ILL)拉缘
    P3口作STC89C52特殊功口表示:
    P30(RXD):串行输入口
    P31(TXD):串行输出口
    P32(INT0(________)):外部中断0
    P33(INT1(________)):外部中断1
    P34(T0):记时器0外部输入
    P35(T1):记时器1外部输入
    P36(WR(______)):外部数存储器写选通
    P37(RD(_______)):外部数存储器读选通
    P3口时闪烁编程编程校验接收控制信号
    RST:复位输入振荡器复位器件时保持RST脚两机器周期高电时间
    ALEPROG:访问外部存储器时址锁存允许输出电锁存址位字节FLASH编程期间引脚输入编程脉时ALE端变频率周期输出正脉信号频率振荡器频率16作外部输出脉定时目然注意:作外部数存储器时跳ALE脉想禁止ALE输出SFR8EH址置0时 ALE执行MOVXMOVC指令ALE起作外该引脚略微拉高果微处理器外部执行状态ALE禁止置位效
    PSEN(___________):外部程序存储器选通信号外部程序存储器取指期间机器周期两次PSEN(___________)效访问外部数存储器时两次效PSEN(___________)信号出现
    :保持低电时期间外部程序存储器(0000HFFFFH)否部程序存储器注意加密方式1时部锁定RESET端保持高电时间部程序存储器FLASH编程期间引脚施加12V编程电源(VPP)
    XTAL1:反振荡放器输入部时钟工作电路输入
    XTAL2:反振荡器输出
    223 数字量信号采集方案选择
    A 方案:采AD转换器
    采AD转换电路先采集模拟量通AD转换电路采集模拟量转换成需数字量AD转换模数转换顾名思义模拟信号转换成数字信号
    数字采集电路般传感器模拟信号调理电路采样保持电路AD转换芯片微处理器组成结构框图图23示

    图23 数采集系统基组成框图
    B 方案二:采集开关量
    设计课题数字采控器需采集数字量拨码开关两种状态:01皆数字量开关拨ON时开关处接通状态值1拨码开关拨OFF处时开关处断开状态值0
    综述第二方案简单易实现顾设计选择方案二
    224 数字量输入电路
    A 方案:串行输入方式
    采两级74HC165级联组成行输入串行输出16位移位寄存器
    74HC165款高速CMOS器件74HC165遵循JEDEC标准no7A74HC165引脚兼容低功耗肖特基TTL(LSTTL)系列74HC1658位行输入串行输出移位寄存器末级互斥串行输出(Q0Q7)行读取(PL)输入低时D0D7口输入行数异步读取进寄存器PL高时数DS输入端串行进入寄存器时钟脉升右移移位(Q0→Q1→Q2→Q3等等)利种特性Q7输出绑定级DS输入实现转串扩展74HC165时钟输入控构允许中输入端作低效时钟(CE)输入CPCE引脚分配独立必时布线方便互换CP高电时允许CE低转高PL升前CPCE应置高防止数PL活动状态发生位移
    B 方案二:行输入方式
    选74LS245数总线收发器74LS245属行通信16双传输数端A1~A8B1~B8两控制端允许段G方控制端DIRG允许该收发器操作DIR控制数传送方(A→BB→A)
    G信号效(高电)DIR种电面两门输出均低电两方三态门输出均高阻态收发器处隔开状态两方数传送均进行信号效(低电)某方进行数传送底方进行传送方控制端DIR逻辑电决定74LS245通信常数双传送缓驱动
    综述74HC165 串行输入74LS245属行输入行占IO 口较直接单片机行IO口肯定够串行输入扩张IO接口选择方案
    74HC165简介:
    A)电特性典型值见表21
    表21 74HC165电特性典型值
    型号


    5474HC165
    26MHz
    210Mw
    5474LS165
    35MHz
    90mW

    移位置入控制端(SH)低电时行数(A~H)置入寄存器时钟(CLKCLKNH)串行数(SER)均关SH高电时行数功禁止CLKCLKINH功等价交换CLKCLKINH低电SH高电时时钟输入CLKCLKINH高电时时钟禁止CLK高电时CLKINH变高电
    B)引出端符号
    CLKCLKINH:时钟输入端(升效)
    A~H:行数输入端
    SER:串行数输入端
    :输出端
    :互补输出端
    SH:移位控制 置入控制(低电效)
    C)脚图(见图24)

    图24 74HC165脚图
    D)基参数(见表22)
    表22 74HC165参数值
    参 数
    参数值
    电 压
    20~60V
    驱动电流
    +52mA
    传输延迟
    16ns@5V
    高频率
    56 MHz
    逻辑电
    CMOS
    工作温度
    40~+85℃
    封 装
    SO16SSOP16DIP16TSSOP16

    E)74HC165特性:
    a 异步8位行读取
    b 步串行输入
    c 兼容JEDEC标准no7A
    d ESD保护
    225 数字量输出电路方案选择
    A 方案:采行扩展输出方式
    采8255A行IO扩展芯片该芯片种常见8位编程行接口芯片
    8255Intel公司生产编程行IO接口芯片38位行IO口具3通道3种工作方式编程行接口芯片(40引脚) 口功软件选择灵活通性强8255作单片机种外设连接时中间接口电路8255作机外设连接芯片必须提供机相连3总线接口数线址线控制线接口时必须具外设连接接口ABC口8255编程必须具逻辑控制部分8255部结构分3部分:CPU连接部分外设连接部 分控制部分
    B 方案二:采串转输出方式
    输出采74HC595芯片74HC595具8位移位寄存器存储器三态输出功移位寄存器存储器分时钟74HC595优点数存储寄存器移位程中输出端数保持变串行速度慢场合处数码没闪烁感164数清零相74HC595输出端禁止控制端输出高阻态
    综述方案二串转口输出IO口较少方案口输出占接口较单片机IO接口显然够设计选择方案二
    74HC595简介:
    74HC595具8位移位寄存器存储器数升输入升进入存储寄存器中果两时钟连起移位寄存器总存储寄存器早脉移位寄存器串行移位输入()串行输出()异步低电复位存储寄存器行8位具备三态总线输出 OE时(低电)存储寄存器数输出总线(脚图见图25)


    图25 74HC595脚图
    A)脚功简介
    Q1~Q7:行数输出口存储寄存器数输出口
    :串行输出口应该接SPI总线MISO接口
    :存储寄存器时钟脉输入口
    :移位寄存器时钟脉输入口
    :输出端
    :芯片复位端
    :串行数输入
    B)控制端说明
    (10脚):低点时移位寄存器数清零通常接
    SCK(11脚):升时数寄存器数移位QA→QB→QC→…→QH降移位寄存器数变(脉宽度:5V时十纳秒行通常选微秒级)
    RCK(12脚):升时移位寄存器数进入数存储寄存器降时存储寄存器数变通常RCK置低电移位结束RCK端产生正脉(5V时十纳秒行通常选微秒级)更新显示数
    (13脚):高电时禁止输出(高阻态)果单片机引脚紧张引脚控制方便产生闪烁熄灭效果通数端移位控制省时省力
    7416474595功相仿8位串行输入转行输出移位寄存器74164驱动电流(25mA)74595(35mA)14脚封装体积74HC595优点具数存储寄存器
    C)真值表(见表24)
    表24 74HC595真值表
    输入脚

    输出脚
    S

    I

    SCK

    SC

    LR
    RC

    K

    OE




    X
    X
    X
    X
    H
    QA~QH输出高阻
    X
    X
    X
    X
    L
    QA~QH输出效值
    X
    X
    L
    X
    X
    移位寄存器清零
    L

    H
    X
    X
    移位寄存器存储L
    H

    H
    X
    X
    移位寄存器存储H
    X

    H
    X
    X
    移位寄存器状态保持

    X

    X

    X



    X
    输出寄存器锁存
    移位寄存器中状态值
    X
    X
    X

    X
    输出存储器状态保持

    226 通信电路方案选择
    A 方案:RS232串行通信接口
    目前RS232PC机通信工业中应广泛种串行接口RS232采取衡传输方式谓单端通讯收发端数信号相信号典型RS232信号正负电间摆动发送数时发送端驱动器输出正电+5~+I5V负电5~15V电数传输时线TTL开始传送数结束线电TTL电RS232电返回TTL电接收器典型工作电+3~+12V3~12V发送电接收电差仅2V3V左右模抑制力差加双绞线分布电容传送距离约15m高速率20kbsRS232点点(收发设备)通讯设计驱动器负载3~7kΩRS232适合设备间通信计算机串行通信端口RS232标配
    B 方案二:RS485串行通信接口
    RS485RS422基础发展RS485许电气规定RS422相仿RS485采二线四线方式二线制实现真正点双通信采四线连接时RS422样实现点通信(Master)设备余设备RS422改进四线二线连接方式总线接32设备RS485RS422模输出电压RS4857V+12V间RS4227V+7V间RS485满足RS422规范RS485驱动器RS422网络中应RS485RS422样传输距离约1219m传输速率10Mbs衡双绞线长度传输速率成反100kbs速率规定长电缆长度短距离获高速率传输般100m长双绞线传输速率仅1Mbs
    RS485采衡发送差分接收具抑制模干扰力加总线收发器具高灵敏度检测低200mV电压传输信号千米外恢复RS485采半双工工作方式时候点处发送状态发送电路须信号加控制RS485点互连时非常方便省掉许信号线应RS485 联网构成分布式系统允许联32台驱动器32台接收器
    MCU间中长距离通信诸方案中RS485硬件设计简单控制方便成低廉等优点广泛应工厂动化工业控制区监控水利动报测等领域RS485总线抗干扰适应通信效率等方面存缺陷细节处理常会导致通信失败甚系统瘫痪等障提高RS485总线运行性关重
    综述RS485总线目前现场监控系统中常见通信接口RS485总线允许通信距离达1200米条总线允许设备达32台适串口扩展完全够满足现场监控系统通信距离设备设备数量求RS232存噪声抑制模干扰等问题传输距离短次设计选RS485通信接口
    23 硬件开发环境
    方案:Protel99SE
    Protel99SEProtel公司10年致力Windows台开发新结晶实现电学概念设计输出物理生产数间分析验证设计数理天Protel新产品已单纯PCB(印制电路板)设计工具系统工具覆盖PCB核心整物理设计 新版Protel软件毫障碍读OrcadPadsAccel(PCAD)等知名EDA公司设计文件便户利渡新EDA台Protel99 SE分5模块分原理图设计PCB设计(包含信号完整性分析)动布线器原理图混合信号仿真PLD设计
    方案二:Altium Designer
    Altium Designer 提供款统应方案综合电子产品体化开发需必须技术功Altium Designer 单设计环境中集成板级FPGA系统设计基FPGA分立处理器嵌入式软件开发PCB版图设计编辑制造集成现代设计数理功Altium Designer成电子产品开发完整解决方案-满足前满足未开发需求解决方案
    综述然方案二选择软件功较强学Protel99SE熟悉度言选择方案
    24 软件开发环境
    A Keil编译器简介
    Keil标准C编译器微控制器软件开发提供C语言特点环境时保留汇编代码高效快速特点单片机编译器功端增加更加贴CPU身衍生产品单片机已完全集成uVision4集成开发环境中集成开发环境包含:编译器汇编器实时操作系统项目理器调试器uVision4IDE提供单灵活开发环境
    B Proteus软件简介
    Proteus软件英国Labcenter electronics公司出版EDA工具软件(该软件中国总代理广州风标电子技术限公司)仅具EDA工具软件仿真功仿真单片机外围器件目前仿真单片机外围器件工具然目前国推广刚起步已受单片机爱者事单片机教学教师致力单片机开发应科技工作者青睐Proteus世界著名EDA工具(仿真软件)原理图布图代码调试单片机外围电路协仿真键切换PCB设计真正实现概念产品完整设计目前世界唯电路仿真软件PCB设计软件虚拟模型仿真软件三合设计台处理器模型支持8051HC11PIC101216182430DsPIC33AVRARM8086MSP430等2010年增加CortexDSP系列处理器持续增加系列处理器模型编译方面支持IARKeilMPLAB等种编译器






    3 硬件电路设计
    31 系统硬件电路原理结构框图
    设计系统STC89C52微控制器控系统RS485通信接口通信波特率设置机址设置电路16路数字量输入电路16路数字量输出电路等组成系统硬件组成框图图31示:

    图31 硬件电路原理结构框图
    32 系统模块电路设计
    321 单片机系统设计
    A 时钟电路(图32示)
    时钟电路单片机系统硬件设计中关键部分晶振体工作频率高设计工作时产生高频信号电路产生干扰尤模拟部分STC89C52系列单片机时钟输入接口EXTALXTAL引脚通常接110592MHz晶振体
    次设计单片机时钟信号利单片机部时钟电路产生图42示产生单片机工作需时钟信号输入端芯片引脚XTAL1输出端引脚XTAL2芯片外部XTAL1XTAL2间跨接晶体震荡器微调电容构成稳定激震荡器单片机时钟电路时钟电路产生震荡脉触发器进行二分频成单片机时钟脉信号电路中电容C1C2取33pF晶振110592 MHz
    时钟信号产生:STC89C52芯片部高增益反相放器输入端芯片引脚XTAL1输出端引脚XTAL2芯片外部通两引脚跨接晶体振荡器微调电容形成反馈电路构成稳定激振荡器晶体振荡频率范围通常12MHz~12MHz(设计采110592 MHz)晶体振荡频率高系统时钟频率高单片机运行速度快反运行速度快存储器速度求高印制电路板工艺求高(线间寄生电容)

    图32 时钟电路
    B 复位电路
    复位单片机初始化操作功PC初始化0000H单片机0000H单元开始执行程序进入系统正常初始化外程序运行出错操作错误系统处死锁状态时摆脱困境需复位键重新启动
    单片机复位电路电复位手动钮复位两种形式RSTVPD端高电直接电瞬间产生高电电复位通钮产生高电复位信号称手动键复位设计中采键电复位方式复位电路图43示运行程中需程序头开始执行需图33中钮电瞬间RST端电位Vcc相着电容充电电流减+5V立加RSTVPD端该高电单片机复位单片机复位P0~P3四行接口全高电寄存器全部清零SBUF寄存器状态确定

    图33 复位电路
    322 系统电源电路设计
    该电路输入220V交流电变压器变压全桥整流稳压器稳压输出稳定+5V直流电该电路方便实输出电压稳定输出电流1A电路带动定负载电路原理框图图34示

    图34 系统电源原理框图
    变压器输入端保险丝电源插头相连果变压器面电路发生短路保险丝会电流引发高温熔化断开变压器面接桥式整流电路整流电压波动直流电源面接330uF25V电解电容变压器输出端9V电压桥式整流电容滤波电容C1两端约会11V点电压假电容两端直接接负载负载变化交流电源少许波动会C1两端电压发生较幅度变化较稳定电压里接三端稳压器元件保持稳压器输出电压保持基变输出5V电压选7805三端稳压器面接105电容电容滤波阻尼作(电源电路图35示)

    图35 +5V电源设计电路
    323 系统数字量输入电路设计
    设计数字量输入电路拨码开关TLP5214光电耦合器74HC165移位寄存器排阻等组成
    STC89C52单片机GPIO引脚直接作16路数字量输入16路数字量控制输出通信波特率机址设置实现需通转串方式减少单片机IO口率16路数字量输入电路采两级行输入串行输出8位移位寄存器74HC165级联16位移位寄存器加光电耦合器TLP5214进行隔离电路进行保护数字量输入电路原理图图36示

    图36 数字量输入电路原理图
    324 系统数字量输出电路设计
    设计数字量控制输出电路74HC595移位寄存器TLP5214光电耦合器驱动电路输出继电器等组成
    数字采集控制器收远程监控中心发送数字量输出指令命令先74HC595锁存然串行输入行输出次输出16位二进制控制信息移位输出前完成16位二进制控制数74HC595输出状态稳定新二进制控制信息输出控制输出端继电器动作输出电路图37示

    图37 数字量输出控制电路原理图
    325 RS485通信电路设计
    图38中MAX487DESTC89C52单片机P27控制MAX487半双工方式工作P27控制发送接收 P27高电时驱动器接收器高阻态时发送数P27低电时.接收器驱动器高阻态时接收数外PC机COM口基RS232串行通讯口电气特性RS485致需电转换

    图38 RS485通信仿真电路
    326 通信波特率机址设置电路设计
    通信波特率机址设置电路属数字量输入电路块74HC165完成输入拨码开关设置中两组开关通信波特率设置设置2400 b/s4800 b/s9600 b/s19200b/s四种通信波特率八组开关机址设置设置成256设备址:0~255取低10位二进制数作通信波特率机址设置值取低8位机址高两位通信波特率设置值(电路图39 ab示)
    选择波特率时候需考虑两点:首先系统需通信速率根系统运作特点确定通信频率范围然考虑通信时钟误差晶振频率选择通信速率时通信时钟误差会差通信稳定应该量选择时钟误差频率进行通信(波特率设置见表31)

    图39 a 机址设置电路

    图39 b 波特率设置电路
    表31 波特率设置
    SW2
    SW1
    波特率
    0
    0
    2400
    0
    1
    4800
    1
    0
    9600
    1
    1
    19200





































    4 软件设计
    41 系统程序设计
    数字采控器软件流程图程序系统初始化程序RS485串口程序等组成(程序流程图图41示)中系统初始化程序单片机端口定义中断服务程序入口址定义等
    设计包括控制远程控制两种方式系统启动时数字采控器直接进行控制包括:继电器控制机址波特率设置远程控制通PC机发送命令控制设计选RS485串口通信远程控制时控制没禁止远程控制包括:通信检测IO口信息传继电器状态信息传远程控制继电器动作改变机址波特率设置

    图41 程序流程图
    42 系统初始化程序设计
    单片机电启动进入程序系统述步骤完成初始化操作:
    A 定义全部寄存器单片机端口
    B 初始化片寄存器端口状态
    C 系统监控系统复位启动中断复位等
    D 初始化命令应答包
    E 读取串口通信址初始化串口设备
    F 开放中断源

    图42 初始化程序流程图






    43 寄存器程序设计
    移位寄存器设计中起IO口扩展作设计求16路输入输出16路输入输出机址波特率设置接单片机IO显然单片机IO口肯定够通寄存器扩展达设计求设计输入电路采74HC165寄存器输出采74HC595寄存器(寄存器程序设计流程图图43示)

    图43 寄存器程序流程图


    44 串口通信程序设计
    系统中单片机负责数采集处理控制通信协议采半双工串行通信方式选RS485通信进行收发转换传输数采二进制数RS485采衡发送差分接收具抑制模干扰力发送信号需信号加控制(程序流程图44示)

    图44 串口通信流程图


    5 系统调试
    51 硬件调试
    A 实物正面

    B 实物反面

    C 运行中

    笔记没串口条件收限制示实物没485部分设计
    52 软件调试
    软件调试结果:
    A 控制
    A)波特率设置(图51示)
    波特率设置两锁开关完成
    B)机址设置(图52示)
    机址8位拨码开关设置设置成256设备址:0~255
    C)控制继电器(图53示)
    拨动输入端拨码开关时输出端应继电器会动作继电器串联发光二极会导通发光
    B RS485通信设置(x址y校验z继电器状态m波特率设置n址设置)
    RS485通信PC机发送指令完成务:改变波特率机址控制继电器动作传单片机IO口状态继电器状态户选择485通信控制时时控制必须禁止指令0x01回复控制需命令设置0x00(系统启动时进行直接控制485通信控制时址波特率初始值采设置值)
    A)通信测试(图54示)
    指令:AA 01 x 00 y
    B)IO口信息传(图55示)
    指令:AA 02 x 00 y
    C)继电器状态传(图56示)
    指令:AA 03 x 00 y
    D)控制继电器(图57示)
    指令:AA 04 x 03 01 z y(01禁止控制)
    E)更改波特率(图58示)
    指令:AA 05 x 02 01 m y(01禁止控制)
    F)更改设备址(图59示)
    指令:AA 06 x 02 01 n y(01禁止控制)
    C 设置调试图示

    图51 波特率设置

    图52 机址设置


    图53 控制继电器

    D RS485通信控制图示


    图54 通信测试




    图55 IO口状态显示


    图56 继电器状态显示


    图57 485通信控制继电器动作

    图58 波特率设置

    图59 址设置


    6 结束语
    时间飞逝接三月毕业设计步入尾声月奋战毕业设计完成程然艰辛快乐次设计学里项务刚开始决心做然完成程中遇困难没放弃继续坚持着次毕业设计受益匪浅仅学书知识学许书外东西设计组十组成然班级家没陌生感家家庭样起说笑遇问题时家起讨寻找解决办法集体里学珍贵知识——团队精神
    次设计学里正式次较完整毕业设计包括选题完成开题报告选择方案设计硬件电路软件调试仿真焊接电路板拽写设计说明书等步骤前包括实(拽写实报告)外文翻译文献摘抄
    设计基单片机数字采集控制器设计刚开始课题时脑子里片空白知道该里着手设计老师指导点头绪通种途径查阅资料进步设计容深入解次毕业设计软件:PtoteusProtelKeil次课程设计熟练掌握软件然前接触时间相隔太久许设置已生疏遇问题时惯网搜解决办法者咨询请教
    焊接实物时实现课题功电路较复杂元器件较线杂焊接时候难度较焊接两天终完成务焊接实物时先单片机系统焊接先测试结果成功系统单片机核心绝出错板子焊心里默默祈祷调试定成功
    次设计教会东西磨练耐力提高解决问题力通次毕业设计深深感受知识面欠缺次设计明白真正全面系统学知识真正掌握真正技次设计说具重意义步入社会工作岗位奠定基础






    参考文献
    [1] 马明建 数采集处理技术[M]西安:西安交通学出版社2005:143
    [2] 张祖晋数采集发展现状[J]北京:数采集处理20023(3):2526
    [3] 吴黎明单片机原理应技术[M]北京:科学出版社2005:184192
    [4] 陆子明徐长根单片机设计应基础教程[M]北京:国防工业出版社200409: 8995
    [5] 许强基8位单片机数采集系统研究[N]湖南广播电视学学报20051(1): 5758
    [6] 段谟意两种串行通信实现方法较[J]工业控制计算机20044(11):184192
    [7] 门雅彬采MAX487ERS232422485隔离转换器[J]电子元器件应20052(1):2225
    [8] 张毅刚刘杰单片机原理应[M]哈尔滨:哈尔滨工业学出版社20046:2328
    [9] 冯建华赵亮单片机应系统设计产品开发[M]北京:民邮电出版社2005:320325
    [10] 张晓莹刘丽华74HC154AD595制作温度采集仪[J]电子技术应20032(2):21
    [11]M Michael Space Science Studies Come to the Internet[J]Aviation Week & Space Technology1998(6):5966
    [12]张淑俭PC机单片机间串行通信[J]电脑知识技术20054(14):3436
    [13]王幸王雷王闪著单片机应系统抗干扰技术[M]北京:北京航空航天学出版社199912:347371
    [14]李叶紫等MCS51单片机应教程[M]北京:清华学出版社2004:263265



















    致 谢
    期四月毕业设计结束首先感谢X老师予指导帮助刚设计题目时脑子里片空白感觉难直迷茫外界帮助设计定解理解次设计中学东西
    感谢设计组位成员帮助




































    附 录
    附 录1 设计图纸
    A PCB图












    B 仿真图





    附 录2 元器件清单
    名称
    规格
    数量
    万板
    12*18
    1
    单片机
    STC89C52
    1
    插座
    40P
    1
    瓷片电容
    30pF
    2
    电解电容
    10uF
    1
    晶振
    110592MHz
    1
    电阻
    10K
    41

    SW
    1
    锁开关
    85*85MM
    2
    拨码开关
    8P
    3
    排阻
    103
    4
    串行输入行输出移位寄存器
    74HC165
    3
    行输入串行输出寄存器
    74HC595
    2
    插座
    16P
    5
    电阻
    180
    24
    电阻
    100
    16
    电阻
    1K
    32
    三极
    S9013
    16
    光耦
    TLP5214
    10
    继电器
    SRD05VDCSLC
    16
    发光二极
    3MM
    24
    MAX485
    DIP8
    2
    排针
    254mm
    40
    杜邦线
    20CM
    40











    附 录3 程序清单
    #include
    #include
    #include commonh
    #include comcmdh
    #include comh
    #ifndef __COMMOM_H__
    #define __COMMOM_H__
    #define UCHAR unsigned char
    #define UINT unsigned int
    #define ULONG unsigned long
    #define BOOL unsigned char
    #define COMEVENT UCHAR
    #define TRUE 1
    #define FALSE 0
    #define VCC 1
    #define GND 0
    #define HIGH 1
    #define LOW 0
    #define XTAL 11059200 系统晶振110592MHz
    #define timer0_TL 0xFF
    #define timer0_TH 0xDB
    #define SUBID 0x20
    #define HOSTID 0x04
    #define MAX_SBUF 20
    UCHAR SubID 子机ID
    UCHAR HostID 机ID
    UCHAR baurd_SetVal
    UCHAR SubID_SetVal
    sbit RS485_Re_ENP3^2 定义发送接收控制
    bit SetUp1 键加升延中间变量
    bit SetDown1 键减升延中间变量
    sbit SW1P3^6
    sbit SW2P3^7
    sbit LCKP2^5 行输出时钟 升锁存
    sbit DSP2^4 串行数输入
    sbit SCKP2^3 移位输入时钟 升移位
    sbit CLK_165P2^2
    sbit QH_165P2^0
    sbit SHLD_165P2^1
    UCHAR get_Value[3]
    UCHAR flag1 允许设置波特率
    UCHAR flag_ID1允许设置ID
    UCHAR flag_Relay1

    void delay1ms() 1ms延时子程序(110592MHZ)
    {
    unsigned char ij
    for(i0i<10i++)
    for(j0j<33j++)
    }

    void hc74_165(unsigned char *strunsigned char n)
    {
    unsigned char ijp
    SHLD_1650
    _nop_()
    _nop_()
    SHLD_1651
    delay1ms()
    CLK_1650
    for(j0j {
    p0
    for(i0i<8i++)
    {
    p<<1
    p|QH_165
    CLK_1650
    _nop_()
    _nop_()
    CLK_1651
    _nop_()
    }
    *str++p
    }
    }
    void Writ_595_HL(UCHAR datHUCHAR datL) 十六位数输出
    {
    UCHAR i
    UCHAR sdataHsdataL
    sdataH datH
    sdataL datL
    for(i0i<8i++)
    {
    SCK0
    if(sdataL&0x01)
    DS 1 串行数输出   
    else
    DS 0
    SCK1 移位输入时钟升输入  
    sdataL>>1
    _nop_()
    _nop_()
    _nop_()
    }
    for(i0i<8i++)
    {
    SCK0
    if(sdataH&0x01)
    DS 1 串行数输出   
    else
    DS 0
    SCK1 移位输入时钟升输入  
    sdataH>>1
    _nop_()
    _nop_()
    _nop_()
    }
    LCK0 行输出时钟   
    _nop_()
    _nop_()
    _nop_()
    LCK1
    }
    main()
    {
    UCHAR *lpc
    BOOL COM_OKFALSE
    UCHAR lpxdata[5]
    UCHAR tmp0x00
    RS485_Re_EN0
    tmpP3 P30xFF获取波特率设置
    tmp(tmp&0xC0)>>6
    baurd_SetValtmp
    hc74_165(get_Value3) 获取模块ID设置
    SubID_SetValget_Value[2]
    SetSubID(SubID_SetVal)
    Init_COM(SubID_SetValHOSTIDtmpVERIFY_NONE0) 初始化串口
    ClrCOM() 清缓存
    EA 1 开中断
    while ( 1 )
    {
    RS485_Re_EN0 485接收
    lpcGetCOM_Event(SCommand) 获取串口通信事件
    switch(lpc[IDX_CMD])
    {
    case CMD_COMM_TEST0x01
    { COM通信测试
    WriteCom(CMD_COMM_TESTTEST OK7)
    COM_OKTRUE
    break
    }
    case CMD_IO_IN0x02
    { IO输入信息传
    hc74_165(get_Value3)
    lpxdata[0]get_Value[0] 传数
    lpxdata[1]get_Value[1]
    lpxdata[2]get_Value[2]
    WriteCom(CMD_IO_INlpxdata3)
    break
    }
    case CMD_RELAY_IN
    {控制继电器信息传
    hc74_165(get_Value3)
    lpxdata[0]get_Value[0] 传数
    lpxdata[1]get_Value[1]
    WriteCom(CMD_RELAY_INlpxdata2)
    break
    }
    case CMD_RELAY_SET0x04
    {继电器控制
    if(lpc[IDX_DATA])
    {
    flag_Relay0x00
    Writ_595_HL(lpc[IDX_DATA+1]lpc[IDX_DATA+2])
    }
    else
    {
    flag_Relay0x01
    }
    break
    }
    case CMD_BRAD_SET0x05
    {波特率设置
    EA0
    if(lpc[IDX_DATA])
    {
    flag0x00
    if(lpc[IDX_DATA+1]<0x03)
    {
    Init_COM(SubIDHostIDlpc[IDX_DATA+1]VERIFY_NONE0)
    ClrCOM()
    EA 1
    }
    }
    else
    {
    flag0x01
    }
    break
    }
    case CMD_SUBID_SET0x06
    {模块址设置
    if(lpc[IDX_DATA])
    {
    SetSubID(lpc[IDX_DATA+1])
    flag_ID0x00
    }
    else
    {
    flag_ID0x01
    }
    break
    }
    case CMD_HOSTID_SET0x07
    {监控中心模块址设置
    SetHostID(lpc[IDX_DATA])
    break
    }
    default
    break
    }
    if(flag) 设置波特率
    {
    tmpP3
    tmp(tmp&0xC0)>>6
    if(tmpbaurd_SetVal)
    {
    EA0
    baurd_SetValtmp
    Init_COM(SubIDHostIDtmpVERIFY_NONE0)
    ClrCOM()
    EA 1
    }
    }
    hc74_165(get_Value3) 获取输入
    if(flag_ID) 设置模块SubID
    {
    if(SubID_SetValget_Value[2])
    {
    EA0
    ClrCOM()
    SubID_SetValget_Value[2]
    SetSubID(SubID_SetVal)
    EA 1
    }
    }
    P0 ~get_Value[0] 输出控制LED灯
    P1 ~get_Value[1]
    if(flag_Relay)
    {
    Writ_595_HL(get_Value[1]get_Value[0])
    }

    }
    }

    通信命令定义
    #ifndef __COMCMD_H__
    #define __COMCMD_H__
    #define CMD_COMM_TEST 0x01测试子机通信情况
    #define CMD_IO_IN 0x02IO输入信息传
    #define CMD_RELAY_IN 0x03继电器信息传
    #define CMD_RELAY_SET 0x04继电器控制
    #define CMD_BRAD_SET 0x05波特率设置
    #define CMD_SUBID_SET 0x06子机址设置
    #define CMD_HOSTID_SET 0x07机址设置

    COMEVENT code SCommand[]
    {
    { CMD_COMM_TEST}
    { CMD_IO_IN}
    { CMD_RELAY_IN}
    { CMD_RELAY_SET}
    { CMD_BRAD_SET}
    { CMD_SUBID_SET}
    { CMD_HOSTID_SET}
    { 0 } 命令结束
    }

    #ifndef __COM_H__
    #define __COM_H__
    #include commonh
    波特率定义
    #define COMBaud_Rate_2400 0x00
    #define COMBaud_RateD_4800 0x01
    #define COMBaud_Rate_9600 0x02
    #define COMBaud_Rate_19200 0x03
    串口工作方式定义
    #define UART0_COM_MODE_8BIT 0x00
    #define UART0_COM_MODE_9BIT 0x01
    奇偶校验定义
    #define VERIFY_EVEN 0x01
    #define VERIFY_ODD 0x02
    #define VERIFY_NONE 0x00
    通信协议格式
    #define IDX_SYHEAD 0x00
    #define IDX_CMD 0x01
    #define IDX_SUBID 0x02
    #define IDX_SIZE 0x03
    #define IDX_DATA 0x04
    波特率发生参数定义
    #define TIMECOM_2400 0xF4
    #define CTRLCOM_2400 0x00
    #define TIMECOM_4800 0xFA
    #define CTRLCOM_4800 0x00
    #define TIMECOM_9600 0xFD
    #define CTRLCOM_9600 0x00
    #define TIMECOM_19200 0xFD
    #define CTRLCOM_19200 0x80
    #define MAX_SERIERS 40 串口数存储区定义
    #define MAX_SERIERSTACK 15 串口数缓区定义
    typedef struct _tgCOMBaud_Rate 串口波特率设置数结构定义
    {
    UCHAR time
    UCHAR ctrl
    }
    COMBaud_Rate * LPCOMBaud_Rate
    函数声明
    void Init_COM(UCHAR subIDUCHAR hostIDUCHAR cRateUCHAR cVerifyUCHAR cMode) 初始化串口
    void SetHostID(UCHAR hID) 设置机ID
    void ClrCOM(void) 清楚串口接收缓区准备接收数
    void Send_Byte(UCHAR d) 串口发送Byte
    void WriteCom(UCHAR cmd UCHAR *lpdataUCHAR size) 串口发送数
    UCHAR * GetCOM_Event(COMEVENT * lp) 获取串口事件消息

    #include comh
    sbit RS485_Re_ENP3^2 定义发送接收控制
    UCHAR COMVerify 奇偶校验
    UCHAR BuftoDataPC 数缓区转移存储区数计数
    UCHAR RecDataPC 接收数数计数
    UCHAR RecData[MAX_SERIERS] 串口接收数存储区
    UCHAR RecBuffPC 数缓区数计数
    UCHAR RecBuff[MAX_SERIERSTACK+1] 串口接收数缓区
    BOOL Buff_full 缓区否接收满
    局部变量定义
    COMBaud_Rate code com_mode[]{ 串口波特率发生定时器设置参数
    {TIMECOM_2400CTRLCOM_2400}
    {TIMECOM_4800CTRLCOM_4800}
    {TIMECOM_9600CTRLCOM_9600}
    {TIMECOM_19200CTRLCOM_19200}
    }
    extern UCHAR SubID 子机ID
    extern UCHAR HostID 机ID
    函数定义
    void Init_COM(UCHAR subIDUCHAR hostIDUCHAR cRateUCHAR cVerifyUCHAR cMode) 初始化COM
    {
    UCHAR tmp
    SubID subID
    HostID hostID
    BuftoDataPC 0
    RecDataPC 0
    RecBuffPC 0
    Buff_full FALSE
    COMVerify cVerify 设置串口奇偶校验
    if(cMode) 设置串口工作方式
    SCON 0xD0
    else
    SCON 0x50 SCON 设置成串口1工作方式允许w接收8 位变波特率奇偶校验位
    tmp TMOD
    tmp tmp&0x0F
    tmp tmp|0x20
    TMOD tmp TMOD 定时器1模式28位重载
    TL1 TH1 com_mode[cRate]time
    PCON com_mode[cRate]ctrl
    COMVerify cVerify
    ES 0x01
    IP 0x10
    ET1 0
    TR1 0x01
    }
    void SetHostID(UCHAR hID) 设置机ID
    {
    HostID hID
    }
    void SetSubID(UCHAR subID)
    {
    SubID subID
    }
    void ClrCOM(void) 清楚串口接收缓区准备接收数
    {
    UCHAR i
    BuftoDataPC 0
    RecDataPC 0
    RecBuffPC 0
    Buff_full FALSE
    for(i0i RecBuff[i]0xFF
    }
    void COM_interrupt_Serve(void) interrupt 4 using 2 串口中断服务程序
    {
    UCHAR tmp_SBUF
    if( RI )
    {
    tmp_SBUFSBUF
    switch (COMVerify)
    {
    case VERIFY_NONE 校验
    RecBuff[RecBuffPC] tmp_SBUF
    RecBuffPC ++
    RecBuffPC & MAX_SERIERSTACK
    if(RecBuffPCMAX_SERIERSTACK) 实现缓区循环
    RecBuffPC0
    if ( RecBuffPC BuftoDataPC )
    {
    Buff_full TRUE
    }
    else
    {
    Buff_full FALSE
    }
    break
    case VERIFY_EVEN 偶校验
    break
    case VERIFY_ODD 奇校验
    break
    }
    RI 0
    }
    }
    UCHAR * GetCOM_Event(COMEVENT * lp) 获取串口事件消息
    {
    BOOL bfind
    UCHAR i
    static UCHAR Verify_Sum
    if ( RecDataPC (IDX_SYHEAD+1)) 判定否合法帧步头
    {
    if ((RecData[IDX_SYHEAD] 0xAA))
    {
    RecDataPC0 果合法帧步头掉
    return 0
    }
    }
    if (RecDataPC 0)
    {
    Verify_Sum 0
    }
    if (Buff_fullTRUE)
    {
    if (BuftoDataPC RecBuffPC)
    {
    return 0
    }
    }
    Buff_full FALSE
    RecData[RecDataPC] RecBuff[BuftoDataPC]
    BuftoDataPC ++
    BuftoDataPC & MAX_SERIERSTACK
    if (RecDataPC < MAX_SERIERS )
    RecDataPC ++
    if (RecDataPC (IDX_SYHEAD+1))
    return 0 步头
    if ( RecDataPC (IDX_CMD+1) )
    {
    i 0
    bfind FALSE
    while (lp[i] 0 )
    {
    if ( RecData[IDX_CMD] lp[i])
    {
    bfind TRUE
    break
    }
    i ++
    }
    if ( bfind TRUE )
    {果没查找命令合法删
    RecDataPC 0
    return 0
    }
    else
    {
    Verify_SumRecData[IDX_CMD]
    return 0
    }
    }
    if ( RecDataPC (IDX_SUBID+1) ) 判定否发数包
    { if ( RecData[IDX_SUBID] SubID)
    {果发包全部删掉
    RecDataPC 0
    return 0
    }
    }
    if ( RecDataPC (IDX_SIZE+1) ) 判定接收数数
    { 果发数包超缓区表示非法删
    if ( RecData[IDX_SIZE]>(MAX_SERIERS5 ) )
    {
    RecDataPC 0
    return 0
    }
    }
    if ( RecDataPC >(IDX_SIZE+1)) 判定收数数
    {
    if ( (RecData[IDX_SIZE]+5) RecDataPC)
    {
    if ( RecData[RecDataPC1] Verify_Sum )
    {
    RecDataPC0
    ClrCOM()
    return (&RecData[0])
    }
    else
    {
    RecDataPC 0
    return 0
    }
    }
    }
    Verify_Sum+RecData[RecDataPC1] 做累加
    return 0
    }
    void Send_Byte(UCHAR d) 串口发送Byte
    {
    switch ( COMVerify)
    {
    case VERIFY_NONE 校验
    break
    case VERIFY_EVEN 偶校验
    ACC d
    TB8 P
    break
    case VERIFY_ODD 奇校验
    ACC d
    TB8 ~P
    break
    }
    RS485_Re_EN1
    SBUF d
    while (TI0)
    TI 0
    RS485_Re_EN0
    }
    void WriteCom(UCHAR cmd UCHAR *lpdataUCHAR size) 串口发送数
    {
    UCHAR isum
    i 0
    TI 0
    Send_Byte(0xAA) 帧步头
    sum 0
    sum + cmd
    Send_Byte(cmd) 传送命令
    sum + HostID
    Send_Byte(HostID) 传送机ID
    sum + size
    Send_Byte(size) 传送数
    for ( i 0 i < size i ++)
    {
    sum +lpdata[i]
    Send_Byte(lpdata[i])
    }
    Send_Byte(sum)
    }


    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 4 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    基于单片机的数字采控器设计毕业论文

    摘 要:数字采集系统简称DAS(Digital Acquisition System),是指将温度、压力、流量、位移等模拟量进行采集、量化转换成数字量后,以便由计算机进行存储、处理、显示或打印...

    5年前   
    1334    0

    学士论文开题报告基于51单片机的数字示波器设计

    XX学院信息工程学院学士学位论文开题报告课题名称 基于51单片机的数字示波器设计 学生姓名 导师姓名 所在系部 信息工程学院 ...

    2年前   
    745    0

    毕业论文:基于单片机的数字电能表设计

    随着中国经济的腾飞,人民生活水平的提高,对电能的需求日益增长,之前传统单一的费率政策已经不能满足需求,电网开始采用新的用电政策,用来平衡高峰用电和低谷用电,保证电网的安全稳定运行。这就对电能表提...

    5年前   
    1471    0

    基于单片机的鱼缸控制器设计毕业设计论文

    基于单片机的鱼缸控制器设计 摘 要 本文是基于单片机的鱼缸控制器的设计,目前市场上有各种各样的观赏类的鱼缸,进入了不同的应用场合,如家庭、宾馆和商场等等,但现有的鱼缸一般需要人为的...

    5年前   
    2457    0

    基于单片机的彩灯控制器设计毕业设计

     题目: 基于单片机的节日彩灯控制器的设计 作 者 姓 名: 学 号: ...

    3年前   
    558    0

    基于单片机的温度控制系统设计毕业论文

    职业学院毕业论文 题目:单片机温度控制系统研制 系 院:工程技术学院 学生姓名: 学 号: 专 业:机电一体化 ...

    5年前   
    5859    0

    基于单片机的自动门控制系统设计毕业论文

     职业技术学院 毕业设计(论文) 作 者: 学 号: 系 部: 电气工程系 班 级: ...

    5年前   
    1752    0

    外文文献翻译基于单片机的数字滤波器设计

     毕 业 设 计(论文) 外 文 文 献 翻 译 文献、资料中文题目:数字滤波器设计 文献、资料英文题目:digital filter design 文献...

    5年前   
    1610    0

    基于单片机的温湿度控制器设计课程设计报告

    《智能仪器仪表设计与调试》课程设计报告 学 院: 电气与信息工程学院 专业班级: 测控10-01 学生姓名: 学 ...

    1年前   
    303    0

    基于单片机的数控恒流源设计

    该数控直流恒流源采用模块化,主要由单片机控制模块、键盘输入模块、A/D转换模块、恒流源模块、D/A转换模块和显示模块六部分组成。通过开关和按钮的设置,配合AT89S52单片机的编程实现数字控制及...

    3年前   
    906    0

    基于单片机的程控放大器设计

     毕业设计(论文) 基于单片机的程控放大器设计 专 业: 电子科学与技术 ...

    5年前   
    1645    0

    基于单片机的数字温度计设计课程设计

    基于单片机的数字温度计设计引言随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需...

    3年前   
    929    0

    基于51单片机数字温度计设计课程设计

    课 题: 基于51单片机数字温度计设计专 业: 电子信息工程班 级: 班学 号: 姓 名: ...

    3年前   
    972    0

    单片机课程设计报告基于单片机的温控系统

    职业学院机械与电子工程学院基于单片机温控系统课程设计报告班 级 电信班 学生姓名 学 号 指导教...

    3年前   
    990    0

    基于单片机的数字电压表

     基于单片机的数字电压表 摘要:本文介绍一种基于89S52单片机的一种电压测量电路,该电路采用ICL7135高精度、双积分A/D转换电路,测量范围直流0-±2000伏,使用LCD液晶模...

    5年前   
    1048    0

    基于单片机的数字温度计课程设计

    摘要 本文提出了关于MCS-51系列单片机的数字温度计的制作电路方法和编程思想。设计一直灌输着电子电路制作软硬结合,以硬件为主的理念。采用模块化的设计思想。硬件模块分为温度的感应模块、时钟...

    3年前   
    779    0

    基于51单片机的数字温度计毕业设计

    数字测温计设计摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。在工业生产中温度是常用的被控参数,而采用单片机来对这些被控参数进行控制...

    3年前   
    1197    0

    基于MATLAB的IIR数字滤波器的设计与仿真毕业设计

     本科毕业设计论文 题 目 基于MATLAB的IIR数字滤波器的设计与仿真 专业名称 电子信息工程 学生姓名 ...

    5年前   
    1521    0

    基于单片机的智能窗帘控制系统设计毕业论文

    基于单片机的智能窗帘控制系统设计 摘 要 在现代的社会中,人们对生活环境很重视,智能家居对人们的生活产生了极其重要的影响。本文将研究一种基于单片机的智能窗帘控制系统。在此设计系统中,以STC8...

    5年前   
    4336    0

    基于AT89C51单片机的简易计算器的设计

     毕 业 设 计 题目 简易计算器的制作 ...

    5年前   
    2344    0

    文档贡献者

    z***u

    贡献于2019-03-27

    下载需要 4 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档