第8章80C51应用系统设计方法课件电子教案幻灯片.ppt
2022-5-311第第8 8章章 80C5180C51应用系统设计方法应用系统设计方法单片机应用系统单片机应用系统设计设计8.1课程设计示例课程设计示例单片机数字时钟单片机数字时钟8.2毕业设计示例毕业设计示例基于基于18B2018B20的温的温度监测系统设计度监测系统设计 8.32022-5-312 可靠性高可靠性高8.1.1 8.1.1 系统设计的基本要求系统设计的基本要求 处于前端数据采集、控制输出处于前端数据采集、控制输出系统规划时要考虑可靠性措施系统规划时要考虑可靠性措施设计时要考虑故障自动检测和处理环节设计时要考虑故障自动检测和处理环节8.1 单片机应用系统设计过程单片机应用系统设计过程 操作简单操作简单设计观念:注重使用和维修设计观念:注重使用和维修功能设置:开关简洁、顺序明了、符号直观功能设置:开关简洁、顺序明了、符号直观 性价比高性价比高2022-5-313 确定任务确定任务8.1.2 8.1.2 系统设计的步骤系统设计的步骤 前提:市场需求前提:市场需求 目标:克服旧缺点、开发新功能目标:克服旧缺点、开发新功能 规划:系统功能、技术指标、系统构成规划:系统功能、技术指标、系统构成 方案设计方案设计单片机型号选择单片机型号选择 硬件与软件的功能划分硬件与软件的功能划分 应采取的可靠性措施应采取的可靠性措施 2022-5-314 硬件设计硬件设计单片机基本系统设计单片机基本系统设计 扩展电路和输入扩展电路和输入/ /输出通道设计输出通道设计 人机界面设计人机界面设计 软件设计软件设计功能模块化:信号采集、控制算法、人机交互功能模块化:信号采集、控制算法、人机交互 设计方法:模块化设计、自顶向下设计设计方法:模块化设计、自顶向下设计 开发流程见下图开发流程见下图2022-5-3152022-5-316交流电源干扰及其抑制交流电源干扰及其抑制干扰现象干扰现象l持续时间:几个纳秒持续时间:几个纳秒l幅度约在幅度约在50V50V4000V4000Vl使系统的程序使系统的程序“跑飞跑飞” ” 8.1.3 8.1.3 提高系统可靠性的方法提高系统可靠性的方法 电源干扰及其抑制电源干扰及其抑制抑制措施抑制措施l尽量远离干扰源尽量远离干扰源l采用交流电源滤波器采用交流电源滤波器l采用交流稳压器采用交流稳压器l采用采用1:11:1隔离变压器隔离变压器 2022-5-317 直流电源抗干扰措施直流电源抗干扰措施l采用高质量集成稳压电路单独供电采用高质量集成稳压电路单独供电l采用直流开关电源采用直流开关电源l采用采用DCDCDCDC变换器变换器 2022-5-318 地线干扰及其抑制地线干扰及其抑制l一点接地和多点接地的应用一点接地和多点接地的应用l数字地与模拟地的连接原则数字地与模拟地的连接原则l印刷电路板的地线分布原则印刷电路板的地线分布原则l信号电缆屏蔽层的接地信号电缆屏蔽层的接地 其它提高系统可靠性的方法其它提高系统可靠性的方法l使用微处理器监控电路使用微处理器监控电路 l软件抗干扰措施软件抗干扰措施 输入输入/ /输出抗干扰输出抗干扰 避免系统避免系统“死机死机” ” 2022-5-319v8.2 课程设计示例课程设计示例单片机数字时钟单片机数字时钟8.2.1 8.2.1 数字时钟的设计要求数字时钟的设计要求 n 采用采用8 8个个LEDLED数码管显示。时间为数码管显示。时间为“时时分分秒秒”形式,日期为形式,日期为“年年月月日日”形式。两种显示形式通过按键进行切换。形式。两种显示形式通过按键进行切换。n 采用采用4 4个按键进行功能控制。个按键进行功能控制。 AN1AN1键。键。按下按下AN1AN1键完成键完成“运行运行”与与“设置设置”两种状态切换。两种状态切换。 AN2AN2键。键。按下按下AN2AN2键完成设置状态指示信息显示位置调整。键完成设置状态指示信息显示位置调整。 设置状态指示信息显示位置有设置状态指示信息显示位置有3 3个,分为右、中、左(如设置指个,分为右、中、左(如设置指示在示在“中中”时,表示调整分或月的设置值)。指示信息用两位小数点时,表示调整分或月的设置值)。指示信息用两位小数点表示,位置由表示,位置由AN2AN2键调整,每按一次键调整,每按一次AN2AN2键,位置改变一次。另外,长键,位置改变一次。另外,长按按AN2AN2键时,设置的内容生效。键时,设置的内容生效。 AN3AN3键。键。按下按下AN3AN3键完成键完成“时间时间”与与“日期日期”两种形式的切换。两种形式的切换。 AN4AN4键。键。按下按下AN4AN4键完成调制内容加键完成调制内容加1 1。调制内容达到相应上限时,。调制内容达到相应上限时,回卷到回卷到0 0再继续调整(如调整再继续调整(如调整“月月”时,达到时,达到1212时要回卷到时要回卷到0 0)。)。l计算计算2100 2100 年之前的秒、分、时、日、星期、月和年年之前的秒、分、时、日、星期、月和年; ;l3131字节静态字节静态RAM;RAM;l工作电流小于工作电流小于300nA300nA,有备份电源和涓流充电能力。,有备份电源和涓流充电能力。8.2.2 DS13028.2.2 DS1302的功能简介的功能简介 DS1302DS1302引脚定义引脚定义 I/OI/O:数据输入:数据输入/ /输出引脚输出引脚 SCLKSCLK:串行时钟输入引脚:串行时钟输入引脚 RSTRST复位引脚复位引脚 GNDGND:接地引脚:接地引脚 Vcc1Vcc1、Vcc2Vcc2:工作电源、备份电源引脚:工作电源、备份电源引脚 X1X1、X2X2:晶振接入管脚。晶振频率为:晶振接入管脚。晶振频率为32.768KHz32.768KHz。 n 命令字格式命令字格式 DS1302DS1302的操作的操作 位:位:D7D6D5D4D3D2D1D01R/CR/CA4A3A2A1A0R/WR/W D7D7位:固定为位:固定为1 1 R/C R/C位:为位:为0 0时选择操作时钟,为时选择操作时钟,为1 1时选择操作时选择操作RAMRAM A4A3A2A1A0:A4A3A2A1A0:操作地址操作地址 R/WR/W位:为位:为0 0时进行写操作,为时进行写操作,为1 1时进行读操作时进行读操作 读写操作时序读写操作时序 字节写字节写 字节读字节读 多字节操作多字节操作(突发模式)(突发模式) 每次写入或读出每次写入或读出8 8个字节时钟日历数据或个字节时钟日历数据或3131个字节个字节RAMRAM数据。与单字数据。与单字节时相似,节时相似,仅需将仅需将A0A4A0A4换成换成“1111111111” 。DS1302DS1302的寄存器及的寄存器及RAMRAM日历时钟相关寄存器日历时钟相关寄存器 寄存器名命令字节范 围位内容写读D7D6D5D4D3D2D1D0秒80H81H0059CH秒的十位秒的个位分82H83H00590分的十位分的个位时84H85H0112或002312/240A/PHR小时个位日86H87H013100日的十位日的个位月88H89H01120000/1月的个位星期8AH8BH010700000星期几年8CH8DH0099年的十位年的个位注意:注意:1 1、秒寄存器的、秒寄存器的CHCH位:位:置置1 1,时钟停振,进入低功耗态;,时钟停振,进入低功耗态;置置0 0,时钟工作。,时钟工作。2 2、小时寄存器的、小时寄存器的D7D7位:位:置置1 1,1212小时制(小时制(D5D5置置1 1表示上午,置表示上午,置0 0表示下午);表示下午);置置0 0,2424小时制(此时小时制(此时D5D5、D4D4组成小时的十位)。组成小时的十位)。其它寄存器及其它寄存器及RAMRAM 寄存器名命令字节范 围位内容写读D7D6D5D4D3D2D1D0写保护8EH8FH00H80HWP0涓流充电90H91H-TCSDSRS时钟突发BEHBFH-RAM突发FEHFFH-RAM0C0HC1H00HFFHRAM数据 00HFFHRAM30FCHFDH00HFFH注意:注意:1 1、WPWP:写保护位:置为:写保护位:置为1 1时,写保护;置为时,写保护;置为0 0时,时,未写保护。未写保护。2 2、TCSTCS:10101010时慢充电;时慢充电;DSDS为为0101,选一个二极管,选一个二极管,为为1010,选,选2 2个二极管;个二极管;1111或或0000,禁止充电。,禁止充电。3 3、RSRS:与二极管串联电阻选择。:与二极管串联电阻选择。0000,不充电;,不充电;0101,2K2K电阻;电阻;1010,4K4K电阻;电阻;1111,8K8K电阻。电阻。8.2.3 DS13028.2.3 DS1302的操作子程序的操作子程序 字节写操作字节写操作 void WByte1302(uchar void WByte1302(uchar chch) ) ucharuchar i; i; for (i = 0; i 8; i+) for (i = 0; i 1; 1; ioio = CY; = CY; sclksclk = 1; = 1; D4us(); D4us(); 字节读操作字节读操作 ucharuchar RByte1302() RByte1302() ucharuchar i, i, chch = 0; = 0; ioio = 1; / = 1; /设置为输入口设置为输入口 for (i = 0; i 8; i+) for (i = 0; i 1; 1; if ( if (ioio = 1) = 1) chch = = chch | 0 x80; | 0 x80; sclksclk = 1; = 1; D4us(); D4us(); return ( return (chch);); 读读ds1302ds1302某地址的数据某地址的数据ucharuchar R1302FromAddr(uchar R1302FromAddr(uchar addraddr) ) ucharuchar chch; ; reset = 0;reset = 0; D4us();D4us(); sclksclk = 0; / = 0; /为低电平时为低电平时 D4us();D4us(); reset = 1; /reset = 1; /才能置为高电平才能置为高电平 D4us();D4us(); WByte1302(addr); /WByte1302(addr); /先写地址先写地址 chch = RByte1302(); / = RByte1302(); /然后再读数据然后再读数据 sclksclk = 1; = 1; reset = 0;reset = 0; return (return (chch);); 设置设置ds1302ds1302时间和日期时间和日期 void Set1302Time(uchar void Set1302Time(uchar addraddr, , ucharuchar * *p, p, ucharuchar n) n) W1302DataToAddr(0 x00, 0 x8e); /W1302DataToAddr(0 x00, 0 x8e); /写允许写允许 for (; n 0; n-)for (; n 0; n-) W1302DataToAddr(W1302DataToAddr(* *p,addrp,addr);); p+;p+; addraddr = = addraddr + 2; + 2; W1302DataToAddr(0 x80, 0 x8e); /W1302DataToAddr(0 x80, 0 x8e); /写保护写保护 读读ds1302ds1302当前时间和日期当前时间和日期 void R1302Time(uchar void R1302Time(uchar addraddr, , ucharuchar * *p, p, ucharuchar n) n) for (; n 0; n-)for (; n 0; n-) * *p = R1302FromAddr(addr);p = R1302FromAddr(addr); p+;p+; addraddr = = addraddr + 2; + 2; DS1302DS1302初始化初始化 void Init1302()void Init1302() reset = 0; reset = 0; sclksclk = 0; = 0; W1302DataToAddr(0 x00, 0 x8e); / W1302DataToAddr(0 x00, 0 x8e); /写控制字,允许写操作写控制字,允许写操作 W1302DataToAddr(0 x00, 0 x80); /W1302DataToAddr(0 x00, 0 x80); /时钟启动时钟启动 W1302DataToAddr(0 xa6, 0 x90); /W1302DataToAddr(0 xa6, 0 x90); /一个二极管一个二极管4K4K电阻充电电阻充电 W1302DataToAddr(0 x80, 0 x8e); /W1302DataToAddr(0 x80, 0 x8e); /写控制字,禁止写操作写控制字,禁止写操作 8.2.4 8.2.4 数字时钟硬件电路数字时钟硬件电路 8.2.5 8.2.5 数字时钟的程序实现数字时钟的程序实现 模块划分模块划分 代码实现(略)代码实现(略)8.2.6 8.2.6 数字时钟的数字时钟的ProteusProteus仿真仿真 v8.3 毕业设计示例毕业设计示例单片机综合验证系统设计单片机综合验证系统设计 8.3.1 8.3.1 综合验证系统方案确定综合验证系统方案确定 n配置经典器件配置经典器件 8 8个个LEDLED;4 4位位7 7段段LEDLED数码管;数码管;1 1个蜂鸣器;个蜂鸣器;3 3个按键;个按键;1 1个温度传感器个温度传感器DS18B20DS18B20;1 1个实时时钟芯片个实时时钟芯片DS1302DS1302;1 1个个D/AD/A转换芯片转换芯片TLC5615;TLC5615;1 1个个A/DA/D转换芯片转换芯片TLC549TLC549;1 1个个AT24C04AT24C04储存芯片;储存芯片;1 1个个MAX232MAX232芯片及串口连接器。芯片及串口连接器。n支持扩展部件支持扩展部件 LCD1602LCD1602字符液晶模块;字符液晶模块;LCD12864LCD12864点阵液晶模块;点阵液晶模块;电机驱动接口;电机驱动接口;HMIHMI人机接口设备。人机接口设备。8.3.2 HMI8.3.2 HMI及及MODBUSMODBUS协议简介协议简介 HMIHMI人机接口人机接口 基本功能:基本功能:1 1、信息的实时显示;、信息的实时显示;2 2、信息的自动采集与储存;、信息的自动采集与储存;3 3、历史数据的趋势显示;、历史数据的趋势显示;4 4、图形界面控件的组态;、图形界面控件的组态;5 5、事件越限报警与记录等。、事件越限报警与记录等。MODBUSMODBUS协议协议 ModBusModBus可分为两种传输模式:可分为两种传输模式:ASCIIASCII模式和模式和RTURTU模式。模式。 nASCIIASCII模式:模式:当控制器设为在当控制器设为在ModBusModBus网络上以网络上以ASCIIASCII模模式通信,在消息中的每个式通信,在消息中的每个8Bit8Bit字节都作为两个字节都作为两个ASCIIASCII字符字符发送。这种方式的主要优点是字符发送的时间间隔可达发送。这种方式的主要优点是字符发送的时间间隔可达到到1 1秒而不产生错误。秒而不产生错误。 ASCII模式的消息帧模式的消息帧起始位设备地址功能码数据LRC校验结束符:2个字符2个字符N个字符2个字符0DH, 0AHnRTURTU模式:消息帧中的每个模式:消息帧中的每个8 8 位字节包含两个位字节包含两个4 4位的十位的十六进制字符。与六进制字符。与ASCIIASCII模式相比,在同样的波特率下可比模式相比,在同样的波特率下可比ASCIIASCII模式传送更多的数据。模式传送更多的数据。 RTU模式的消息帧模式的消息帧起始位设备地址功能码数据CRC校验结束符T1-T2-T3-T4 8位8位N个8位16位T1-T2-T3-T4RTURTU模式和模式和ASCIIASCII模式的比较模式的比较 nRTU RTU 模式报文中每个模式报文中每个8 8位字节含有两个位字节含有两个4 4位十六进制字位十六进制字符。符。RTURTU模式主要优点是较高的数据密度,在相同的波特模式主要优点是较高的数据密度,在相同的波特率下比率下比ASCII ASCII 模式有更高的吞吐率。每个报文必须以连模式有更高的吞吐率。每个报文必须以连续的字符流传送。续的字符流传送。RTURTU模式采用模式采用CRCCRC校验校验 。 nASCII ASCII 模式报文中的每个模式报文中的每个 8 8 位子节以两个位子节以两个 ASCII ASCII 字字符发送。当通信链路或者设备无法符合符发送。当通信链路或者设备无法符合RTU RTU 模式时使用模式时使用该模式。由于一个字节需要两个字符,所以该模式。由于一个字节需要两个字符,所以ASCII ASCII 模式模式比比RTU RTU 模式效率低。模式效率低。ASCII ASCII 模式采用模式采用LRCLRC校验校验 。 8.3.3 8.3.3 综合验证系统的硬件电路综合验证系统的硬件电路 单片机最小系统电路单片机最小系统电路 A/DA/D及及D/AD/A转换电路转换电路实时时钟、实时时钟、24C0424C04及及18B2018B20电路电路 LEDLED数码管电路数码管电路 UARTUART接口电路接口电路 电源、按键及电源、按键及ISPISP接口电路接口电路 驱动、驱动、LCDLCD字符及点阵扩展电路字符及点阵扩展电路 蜂鸣器、蜂鸣器、LEDLED及电机驱动电路及电机驱动电路 系统软件略!系统软件略!