1、2单片机应用系统的技术要求各不相同,针对具体的任单片机应用系统的技术要求各不相同,针对具体的任务,设计方法和步骤也不完全相同。务,设计方法和步骤也不完全相同。为完成某一任务的单片机应用系统需要包含硬件和软为完成某一任务的单片机应用系统需要包含硬件和软件系统。硬件和软件必须紧密结合,协调一致才能正件系统。硬件和软件必须紧密结合,协调一致才能正常工作。在系统研制过程中,硬件设计和软件设计不常工作。在系统研制过程中,硬件设计和软件设计不能截然分开。硬件设计时应考虑软件设计方法,而软能截然分开。硬件设计时应考虑软件设计方法,而软件也一定是基于硬件基础上进行设计的。这就是所谓件也一定是基于硬件基础上进行
2、设计的。这就是所谓的的“软硬结合软硬结合”。单片机应用系统的研制过程包括单片机应用系统的研制过程包括确定任务、总体设计、确定任务、总体设计、硬件设计、软件设计、系统调试、产品化硬件设计、软件设计、系统调试、产品化等几个阶段。等几个阶段。它们不是绝对分开的,有时是交叉进行的。它们不是绝对分开的,有时是交叉进行的。 3单片机应用系统开发必须经过调试阶段,只有经过调单片机应用系统开发必须经过调试阶段,只有经过调试才能发现问题,改正错误,最终完成开发任务。实试才能发现问题,改正错误,最终完成开发任务。实际上,对于较复杂的程序,大多数情况下都不可能一际上,对于较复杂的程序,大多数情况下都不可能一次性就调
3、试成功,即使是资深程序员也是如此。次性就调试成功,即使是资深程序员也是如此。单片机只是一块芯片而已,本身并无开发能力,要借单片机只是一块芯片而已,本身并无开发能力,要借助开发工具才能实现系统设计。开发工具主要包括助开发工具才能实现系统设计。开发工具主要包括电电脑脑、编程器编程器( (又称写入器又称写入器) )、仿真机仿真机。如果使用。如果使用EPROMEPROM作作为存储器还要配备为存储器还要配备紫外线擦除器紫外线擦除器。其中必不可少的工。其中必不可少的工具是电脑和编程器具是电脑和编程器( (当然对于当然对于在线可编程(在线可编程(ISPISP)的单的单片机,如片机,如89S5189S51,也
4、可以不用编程器,而通过下载电缆,也可以不用编程器,而通过下载电缆下载下载) )。 41. 1. 仿真机及其使用仿真机及其使用(1) (1) 开发环境开发环境l单片机程序的编写、编译、调试等都是在一定的集单片机程序的编写、编译、调试等都是在一定的集成开发环境下进行的。成开发环境下进行的。l集成开发环境仿真软件集成开发环境仿真软件( (IDE)IDE)将文件的编辑,汇编语将文件的编辑,汇编语言的汇编、连接,高级语言的编译、连接高度集成于言的汇编、连接,高级语言的编译、连接高度集成于一体,能对汇编程序和高级程序进行仿真调试。一体,能对汇编程序和高级程序进行仿真调试。l单片机程序如果是汇编编写的,文件
5、名后必须加后单片机程序如果是汇编编写的,文件名后必须加后缀名缀名“. .ASMASM”。如果是。如果是C51C51编写的,必须加后缀名编写的,必须加后缀名“. .C C”。5 用 户 系 统 仿 真 头 PC 仿真器 (2) (2) 仿真机的使用仿真机的使用l为了实现目标系统的一次性完全开发,必须用到仿真机为了实现目标系统的一次性完全开发,必须用到仿真机( (也称也称在线仿真机在线仿真机) )。在线仿真机在线仿真机的主要作用是能完全的主要作用是能完全“逼真逼真”地扮地扮演用户单片机的角色,且能在集成开发环境中对运行程序进行演用户单片机的角色,且能在集成开发环境中对运行程序进行各种调试操作,即时
6、发现问题,即时修改程序,从而提高工作各种调试操作,即时发现问题,即时修改程序,从而提高工作效率,缩短开发周期。效率,缩短开发周期。l使用时,在线仿真机通过使用时,在线仿真机通过RS-232RS-232插件与电脑的插件与电脑的COM1COM1或或COM2COM2端端口相连。在断电情况下,拨下用户系统的单片机和口相连。在断电情况下,拨下用户系统的单片机和EPROMEPROM,代,代之以之以仿真头仿真头,如下图所示。,如下图所示。l运行仿真调试程序,通过运行仿真调试程序,通过跟踪执行跟踪执行,能即时发现软硬件方面,能即时发现软硬件方面的问题并进行修正。当设计达到满足系统要求后,将调试好的的问题并进行
7、修正。当设计达到满足系统要求后,将调试好的程序编译时形成的二进制文件用编程器烧写到芯片中,一个应程序编译时形成的二进制文件用编程器烧写到芯片中,一个应用系统就调试成功了。用系统就调试成功了。6 PC 编 程 器 芯 片 座 编程器与计算机的连接2. 2. 编程器编程器l当我们编写好的程序在集成开发环境编译通过后,当我们编写好的程序在集成开发环境编译通过后,会形成一个二进制文件会形成一个二进制文件( (文件名与源程序文件名相同,文件名与源程序文件名相同,后缀名为后缀名为“. .BINBIN”)”)或十六进制文件或十六进制文件( (后缀名为后缀名为“. .HEXHEX”)”),即形成所谓的,即形成
8、所谓的目标程序目标程序。这个目标程序。这个目标程序必须利用编程器才能将目标文件烧写到单片机的程必须利用编程器才能将目标文件烧写到单片机的程序存储器中,从而让单片机系统的硬件和软件真正序存储器中,从而让单片机系统的硬件和软件真正结合起来,组成一个完整的单片机系统。结合起来,组成一个完整的单片机系统。l编程器编程器的主要功能是将目标程序烧写到芯片中,其的主要功能是将目标程序烧写到芯片中,其与电脑的连接如下图所示。与电脑的连接如下图所示。71. 设计要求 用MCS-51单片机设计一个空调机的温控系统。具体要求如下:l实时测量环境温度,并显示当前温度值。当室温度高于设定温度,压缩机运转,使室温降低。当
9、室温低于设定温度,压缩机停止运转。l温度设定功能,通过按键输入压缩机启停的温度设定值。设定温度过程中显示设定温度值,以便于操作。设定完毕后,改为显示当前测定温度值。82. 总体方案(1) 系统设计l根据设计要求,设计出温度控制系统的基本结构框图如下图所示。 压缩机控制执行 LED 显示 单片机 按键输入 温度测量 9l系统由四个主要功能模块组成:温度测量、按键输入,数码显示以及控制压缩机启停模块。温度测量模块的主要功能是将环境温度转化为电参数(电压),并通过A/D转换得到数字量送入单片机。按键输入模块主要功能是实现设定温度值的输入。LED显示模块主要功能是显示当前环境温度值。因空调对温度精度要
10、求不高,本例只要求显示两位整数的温度值。压缩机控制模块主要功能是单片机根据环境温度与设定温度的比较结果送出开关信号、控制压缩机的启停。10(2) 关键技术l本系统中的关键技术是如何实时测量室内温度。在对外界物理量如温度、湿度、压力等进行测量时,首先要解决的问题是如何将这些非电量转换为电参数(电阻、电压、电流),其次,是如何将模拟量(电压)转换为数字量。l显然对温度的测量,温度传感器是必不可少的。温度传感器的种类、型号很多。在本例中选用的是AD590温度传感器。AD590产生的电流与绝对温度成正比,它可接收的工作电压为4V30V,检测的温度范围为-55度+150度,具有良好的线性输出性能,温度每
11、增加1度,电流增加1微安。 113. 硬件设计 系统的硬件电路包括主机、温度控制、压缩机的控制、按键及显示5个部分,系统硬件电路原理图如下图所示。12 a b f c g d e D PY 7 6 4 2 1 9 10 a b c d e f g 3 D S1 D PY _7-SEG a b f c g d e D PY 7 6 4 2 1 9 10 a b c d e f g 3 D S2 D PY _7-SEG S1 SW -PB R5 1k C3 10F C1 30pF C2 30pF 12M H z Q 1 PN P D 1 4004 A - + K 1 G N D G N D VCC
12、 G N D + 1 _ 2 N C 3 U 7 A D 590 VCC 3 2 6 1 5 7 4 U 9 741 3 2 6 1 5 7 4 U 8 741 3 2 6 1 5 7 4 U 10 741 A 7 B 1 C 2 D 6 L T 3 B I/RB O 4 RB I 5 a 13 b 12 c 11 d 10 e 9 f 15 g 14 U 1 74LS47 A 7 B 1 C 2 D 6 L T B I/RB O 4 RB I 5 a 13 b 12 c 11 d 10 e 9 f 15 g 14 U 4 74LS47 S2 SW -PB R20 20k R25 1k R17
13、 10k R16 10k R18 10k R21 5k R26 1k R19 10k R1 R2 R3 R4 R6 R7 R9 R10 R11 R12 R13 R14 R15 VCC V cc VCC VCC EA /V P 31 X 1 19 X 2 18 RESET 9 RD 17 W R 16 IN T0 12 IN T1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 21 P21 22 P22 2
14、3 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 A LE/P 30 TX D 11 RX D 10 U 3 8051 CLK D 2 SD 4 CD 1 5 Q 6 U 2A 74LS74 +5V V CC W R RD RD W R IN T1 IN T1 A LE A LE VCC VCC 1 2 U 6A 74LS04 5 6 U 6C 74LS04 3 U 6B 74LS04 G N D VCC R23 2k G N D +12V R24 50k R22 100k +12V +12V -12V -12V G N D G N D -12V RES
15、ET RESET X 1 X 2 X 1 X 2 G N D VCC P3.0 P3.0 220V 零 位 调 整 放 大10倍 O P A 1 O P A 2 O P A 3 压 缩 机 200 -12V R8 IN 0 26 D 7 21 D 6 20 IN 1 27 D 5 19 D 4 18 IN 2 28 D 3 8 D 2 15 IN 3 1 D 1 14 D 0 17 IN 4 2 EO C 7 IN 5 3 A 25 IN 6 4 B 24 C 23 IN 7 5 A LE 22 V ref(-) 16 O E 9 ST A R T 6 V ref(+) 12 CLK U 5
16、A D C0809 134. 软件设计(1) 系统资源分配 内部RAM分配情况。(2) 软件设计流程 主要包括5个模块:l主程序l按键设定温度模块l十进制调整和数据转换模块l控制模块l显示模块14题目一题目一 电子钟电子钟 用MCS-51单片机设计时钟控系统。具体要求如下:1. 24小时走时小时走时;2. 6位数码管显示时、分、秒;位数码管显示时、分、秒;3. 3个按键,个按键,2个分别用于时、分调整,个分别用于时、分调整,1个用于是否允个用于是否允许调整。许调整。4. 写出设计方案,画出完整的电路原理图(包括电源、写出设计方案,画出完整的电路原理图(包括电源、时钟电路、复位电路),编写程序。
17、时钟电路、复位电路),编写程序。15题目二题目二 数字温度计数字温度计 用MCS-51单片机设计数字温度计。具体要求如下:1. 5位数码管显示温度,可显示摄氏度或华氏度位数码管显示温度,可显示摄氏度或华氏度;2. 温度显示范围温度显示范围-20.0度度+50.0度;度;3. 1个按键用于显示摄氏度或华氏度切换。个按键用于显示摄氏度或华氏度切换。4. 写出设计方案,画出完整的电路原理图(包括电源、写出设计方案,画出完整的电路原理图(包括电源、时钟电路、复位电路),编写程序。时钟电路、复位电路),编写程序。16题目三题目三 波形发生器波形发生器用MCS-51单片机设计一个波形发生器。具体要求如下:
18、1. 可根据按钮选择连续输出锯齿波、三角波或正弦波可根据按钮选择连续输出锯齿波、三角波或正弦波形形;2. 4个按键,个按键,3个分别用于选择输出锯齿波、三角波、个分别用于选择输出锯齿波、三角波、正弦函数;一个用于改变输出波形的周期。正弦函数;一个用于改变输出波形的周期。3. 写出设计方案,画出完整的电路原理图(包括电源、写出设计方案,画出完整的电路原理图(包括电源、时钟电路、复位电路),编写程序。时钟电路、复位电路),编写程序。17一、串行扩展总线及特点一、串行扩展总线及特点 串行扩展总线技术是新一代单片机技术发展的一串行扩展总线技术是新一代单片机技术发展的一个显著特点个显著特点。串行扩展总线
19、有电路结构简单,程序编串行扩展总线有电路结构简单,程序编写方便,易于实现用户系统软硬件的模块化、标准化写方便,易于实现用户系统软硬件的模块化、标准化等优点。等优点。 常用的串行扩展总线和接口有常用的串行扩展总线和接口有1-wire1-wire总线、总线、I I2 2C C总总线、线、SPISPI总线、总线、MicrowareMicroware总线和总线和CANCAN总线等。总线等。 18(1 1)UARTUART串行扩展接口串行扩展接口(Universal Asynchronous Receiver/TransmitterUniversal Asynchronous Receiver/Tran
20、smitter) UARTUART通用异步收发器,既能同步又能异步通信通用异步收发器,既能同步又能异步通信的硬件电路称为的硬件电路称为USARTUSART。UARTUART是用于控制计算机与串是用于控制计算机与串行设备的芯片,它提供了行设备的芯片,它提供了RSRS232C232C数据终端设备接数据终端设备接口,这样计算机就可以和调制解调器或其它使用口,这样计算机就可以和调制解调器或其它使用RSRS232C232C接口的串行设备通信了。接口的串行设备通信了。 UARTUART接口是二线制,接口是二线制,80518051单片机的单片机的UARTUART既能作既能作通用异步接收和发送器,又能作同步移
21、位寄存器。通用异步接收和发送器,又能作同步移位寄存器。它可以实现它可以实现80518051单片机系统之间点对点的单机通信单片机系统之间点对点的单机通信或多机通信,也可以实现扩展或多机通信,也可以实现扩展I/OI/O口。口。 19(2 2)I I2 2C C(Inter Integrated CircuitInter Integrated Circuit)串行扩展总)串行扩展总线线 I I2 2C C总线是总线是PhilipsPhilips公司推出的芯片间串行传输总公司推出的芯片间串行传输总线。它用两根线实现数据传送,可以极为方便地构成线。它用两根线实现数据传送,可以极为方便地构成多机系统和外围
22、器件扩展系统。多机系统和外围器件扩展系统。 I I2 2C C总线是二线制,采用器件地址的硬件设置方法,总线是二线制,采用器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法,从通过软件寻址完全避免了器件的片选线寻址方法,从而使硬件系统具有简单灵活的扩展方法。而使硬件系统具有简单灵活的扩展方法。I I2 2C C总线简单,总线简单,结构紧凑,易于实现模块化和标准化。结构紧凑,易于实现模块化和标准化。 I I2 2C C总线传送速率主要有两种:一种是标准总线传送速率主要有两种:一种是标准S S模式模式(100Kb/s100Kb/s),另一种是快速),另一种是快速F F模式(模式(4
23、00400Kb/sKb/s)。)。20(3 3)SPI(Serial Peripheral Interface) SPI(Serial Peripheral Interface) 串行扩展串行扩展接口接口 SPISPI总线是总线是MotorolaMotorola公司提出的一种同步串行外设公司提出的一种同步串行外设接口。允许接口。允许MCUMCU与各种外围设备以同步串行方式进行通与各种外围设备以同步串行方式进行通信。其外围设备种类繁多:最简单的信。其外围设备种类繁多:最简单的TTLTTL移位寄存器到移位寄存器到复杂的复杂的LCDLCD显示驱动器、网络控制器等。显示驱动器、网络控制器等。 SPIS
24、PI总线是三线制,可直接与多种标准外围器件直总线是三线制,可直接与多种标准外围器件直接接口,在接接口,在SPISPI从设备较少而没有总线扩展能力的单片从设备较少而没有总线扩展能力的单片机系统中使用特别方便。即使在有总线扩展能力的系机系统中使用特别方便。即使在有总线扩展能力的系统中采用统中采用SPISPI设备也可以简化电路设计,省掉很多常规设备也可以简化电路设计,省掉很多常规电路中的接口器件,从而提高了设计的可靠性。电路中的接口器件,从而提高了设计的可靠性。 21(4 4)MicrowareMicroware串行扩展接口串行扩展接口 MicrowareMicroware总线是总线是NSNS公司提
25、出的串行同步双工通公司提出的串行同步双工通信接口,用于信接口,用于8 8位位COP800COP800系列单片机和系列单片机和1616位位HPCHPC系列单系列单片机。片机。 MicrowareMicroware总线是三线制,由一根数据输出(总线是三线制,由一根数据输出(SOSO)线、一根数据输入(线、一根数据输入(SISI)线和一根时钟()线和一根时钟(SKSK)线组成。)线组成。所有从器件的时钟线连接到同一根所有从器件的时钟线连接到同一根SKSK线上,主器件向线上,主器件向SKSK线发送时钟脉冲信号,从器件在时钟信号的同步沿线发送时钟脉冲信号,从器件在时钟信号的同步沿输出输出/ /输入数据。
26、主器件的数据输出线输入数据。主器件的数据输出线SOSO和所有从器和所有从器件的数据输入线相接,从器件的数据输出线都接到主件的数据输入线相接,从器件的数据输出线都接到主器件的数据输入线器件的数据输入线SISI上。上。22(5 5)单总线()单总线(1-wire1-wire)串行扩展总线)串行扩展总线 1-wire1-wire总线是总线是DallasDallas公司研制开发的一种协议,公司研制开发的一种协议,用于便携式仪表和现场监控系统。用于便携式仪表和现场监控系统。 1-wire1-wire总线是利用一根线实现双向通信,由一个总线是利用一根线实现双向通信,由一个总线主节点、一个或多个从节点组成系
27、统,通过一根总线主节点、一个或多个从节点组成系统,通过一根信号线对从芯片进行数据的读取。每一个符合信号线对从芯片进行数据的读取。每一个符合1-wire1-wire协议的从芯片都有一个唯一的地址,包括协议的从芯片都有一个唯一的地址,包括8 8位分类码、位分类码、4848位的序列号和位的序列号和8 8位位CRCCRC代码。主芯片对各个从芯片的代码。主芯片对各个从芯片的寻找依据这寻找依据这6464位的不同来进行。单总线节省位的不同来进行。单总线节省I/OI/O引脚资引脚资源、结构简单、成本低廉、便于总线扩展和维护。源、结构简单、成本低廉、便于总线扩展和维护。 23(6 6)USBUSB(Univer
28、sal Serial BUSUniversal Serial BUS)串行扩展总线)串行扩展总线 USBUSB总线是总线是CompaqCompaq、IntelIntel、MicrosoftMicrosoft、NECNEC等公等公司联合制定的一种计算机串行通信协议。司联合制定的一种计算机串行通信协议。 USBUSB比较于其他传统接口的一个优势是即插即用的比较于其他传统接口的一个优势是即插即用的实现,即插即用(实现,即插即用(Plug-and-PlayPlug-and-Play)也称为热插拔)也称为热插拔(Hot PluggingHot Plugging)。数据传输速度快,)。数据传输速度快,US
29、B1.1USB1.1接口的接口的最高传输率可达最高传输率可达12 Mb/s12 Mb/s;USB2.0USB2.0接口的最高传输率可接口的最高传输率可达达480 Mb/s480 Mb/s。扩展方便,使用。扩展方便,使用USB HubUSB Hub扩展,可以连接扩展,可以连接127127个个USBUSB设备,连接的方式十分灵活。设备,连接的方式十分灵活。24(7 7)CANCAN(Controller Area NetworkController Area Network)串行扩展总线)串行扩展总线 CANCAN总线是德国总线是德国BoschBosch公司最先提出的多主机局域公司最先提出的多主机
30、局域网,是国际上应用最广泛的现场总线之一。最初,网,是国际上应用最广泛的现场总线之一。最初,CANCAN被设计作为汽车环境中的微控制器通信,在车载各电子被设计作为汽车环境中的微控制器通信,在车载各电子控制装置控制装置ECUECU之间交换信息,形成汽车电子控制网络。之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备。比如:发动机管理系统、变速箱控制器、仪表装备。 在由在由CAN CAN 总线构成的单一网络中,理论上可以挂总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。气特
31、性所限制。CAN CAN 可提供高达可提供高达1 1MbitMbit/s/s的数据传输速的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了定特性也增强了CANCAN的抗电磁干扰能力。当信号传输距的抗电磁干扰能力。当信号传输距离达到离达到10km10km时,时,CAN CAN 仍可提供高达仍可提供高达5050KbitKbit/s/s的数据传的数据传输速率。输速率。 25二、二、 I I2 2C C串行扩展总线串行扩展总线1.I1.I2 2C C总线接口电路结构总线接口电路结构 #1 #2 #3 #4 VDD SDA SCL
32、RP RP SDA SDA SDA SDA SCL SCL SCL SCL n在在I I2 2C C总线上可以挂接各种类型的外围器件,如总线上可以挂接各种类型的外围器件,如RAM/EEPROMRAM/EEPROM、日历日历/ /时钟芯片、时钟芯片、A/DA/D转换器、转换器、D/AD/A转换器、以及由转换器、以及由I/OI/O口、显口、显示驱动器构成的各种模块。示驱动器构成的各种模块。 SDA:串行数据线:串行数据线SCL:串行时钟:串行时钟261 2 3 4 5 6 7 8 A0 A1 VSS VCC A2 SCA SCL WP 例:例:AT24C01AT24C01是是AtmelAtmel公
33、司生产的具有公司生产的具有I I2 2C C总线接口总线接口的的E E2 2PROMPROM,是,是AT24CAT24C系列存储器中的一种,芯片存系列存储器中的一种,芯片存储容量为储容量为1Kb(1281Kb(1288 8位位) )。AT24C01AT24C01引脚如下图所示。引脚如下图所示。lSCLSCL:串行时钟端。:串行时钟端。lSDASDA:串行数据端,漏极开路,:串行数据端,漏极开路,需接上拉电阻到需接上拉电阻到V VCCCC。lWPWP:写保护,:写保护, 当当WPWP为高电平时存储器只读;为高电平时存储器只读; 当当WPWP为低电平时存储器可读为低电平时存储器可读可写。可写。lA
34、2A2A0A0:芯片地址。:芯片地址。 272.I2.I2 2C C数据格式数据格式启动信号启动信号 从器件地址、读从器件地址、读/写位写位 应答信号应答信号 若干数据字节若干数据字节 停止信号停止信号283.I3.I2 2C C地址设定地址设定I I2 2C C总线器件的总线器件的7 7位从器件地址(位从器件地址(SLA-Slave AddressSLA-Slave Address)R/WA0A1A2DA0DA1DA2DA3器件识别码器件识别码如:如:RTC 1101EEPROM 1010器件选择码器件选择码允许在共用的允许在共用的I I2 2C C总线总线上同时接上同时接8 8个同类器件个
35、同类器件294.I4.I2 2C C数据传送数据传送 I I2 2C C的主要命令只有读、写两种,虽然读写的字节的主要命令只有读、写两种,虽然读写的字节根据具体器件的不同而不同,但其时序关系不会发生根据具体器件的不同而不同,但其时序关系不会发生改变。改变。 例:例: DallasDallas公司的时钟发生器公司的时钟发生器DS1085DS1085操作时序。操作时序。3031325.I5.I2 2C C虚拟实现虚拟实现I2C器件SCL EQU P1.0SDA EQU P1.133(1)发送起始信号和停止信号)发送起始信号和停止信号 SDA SCL 起始条件 停止条件 34START: SETB
36、SDASETB SCLNOP;NOP的数目根据时钟频率确定的数目根据时钟频率确定NOP;此处用;此处用NOP来延时来延时CLR SDANOPNOPCLR SCLRET35STOP: CLR SDASETB SCLNOP;此处用;此处用NOP来延时来延时NOP;NOP的数目根据时钟频率确定的数目根据时钟频率确定SETB SDANOPNOPCLR SDACLR SCLRET36(2)应答位检查子程序)应答位检查子程序TACK: SETB SDA;设置;设置SDA为输入方式为输入方式SETB SCL;产生第;产生第9个时钟脉冲个时钟脉冲NOP;此处用;此处用NOP来延时来延时NOP;NOP的数目根据
37、时钟频率确定的数目根据时钟频率确定CLR 30H;正常标志正常标志MOV C,SDAJNC TEND;若正常;若正常应答,则转移应答,则转移SETB 30HTEND: CLR SCLRET37TXBYT:MOV R4,#08H;要发送的数据长度为;要发送的数据长度为8位位TX0:RLC A;将待发送的位送入位;将待发送的位送入位CY中中JC TX1;CY位为位为1转到转到TX1CLR SDA;置为低电平,发送置为低电平,发送0SETB SCL;时钟高电平数据保持数据稳定;时钟高电平数据保持数据稳定NOP;延时延时NOPCLR SCL;时钟脉冲变为低电平,准备改变数据;时钟脉冲变为低电平,准备改
38、变数据DJNZ R4,TX0;若;若8位未发送完,转位未发送完,转TX0继续继续RET;8位发送完成位发送完成返回返回TX1:SETB SDA;置为高电平,发送;置为高电平,发送1SETB SCL;时钟为高电平保持数据稳定;时钟为高电平保持数据稳定NOP;延时延时NOPCLR SCL;时钟脉冲变为低电平,准备改变数据;时钟脉冲变为低电平,准备改变数据CLR SDA;将数据改为低电平;将数据改为低电平DJNZ R4,TX0;若;若8位未发送完,转位未发送完,转TX0继续继续RET;8位发送完成位发送完成返回返回(3)字节发送子程序)字节发送子程序38RXBYT:MOV R4,#08H;要;要接收
39、接收的数据长度为的数据长度为8位位RX0:SETB SDA;设置;设置SDA为输入方式为输入方式SETB SCL;SDA上数据有效上数据有效MOV C,SDA;读入;读入SDA引脚状态引脚状态MOV A,R5;将存放结果送入;将存放结果送入A中中RLC A;将读出的;将读出的1位移入位移入A中中MOV R5,ACLR SCL;一个脉冲结束,;一个脉冲结束,SDA上数据无效上数据无效DJNZ R4,RX0;未读完;未读完8位,转到位,转到RX0RET;读完返回;读完返回(4)字节接收子程序)字节接收子程序39一、干扰源及其分类一、干扰源及其分类 所谓干扰所谓干扰, 一般是指有用信号以外的噪声一般
40、是指有用信号以外的噪声, 在在信号输入、信号输入、 传输和输出过程中出现的一些有害的传输和输出过程中出现的一些有害的电气变化现象。这些变化迫使信号的传输值、电气变化现象。这些变化迫使信号的传输值、 指指示值或输出值出现误差示值或输出值出现误差, 出现假像。出现假像。 干扰对电路的影响干扰对电路的影响, 轻则降低信号的质量轻则降低信号的质量, 影影响系统的稳定性响系统的稳定性; 重则破坏电路的正常功能重则破坏电路的正常功能, 造成造成逻辑关系混乱逻辑关系混乱, 控制失灵。控制失灵。40常见干扰的种类常见干扰的种类41内部和外部干扰示意图内部和外部干扰示意图421.装置开口或隙缝处进入的辐射干扰装
41、置开口或隙缝处进入的辐射干扰(辐射辐射)2.电网变化干扰电网变化干扰(传输传输)3. 周围环境用电干扰周围环境用电干扰(辐射、辐射、 传输、传输、 感应感应)4. 传输线上的反射干扰传输线上的反射干扰(传输传输)5. 系统接地不妥引入的干扰系统接地不妥引入的干扰(传输、传输、 感应感应)6. 外部线间串扰外部线间串扰(传输、传输、 感应感应)7. 逻辑线路不妥造成的过渡干扰逻辑线路不妥造成的过渡干扰(传输传输)438. 线间串扰线间串扰(感应、感应、 传输传输)9.电源干扰电源干扰(传输传输)10.10.强电器引入的接触电弧和反电动势干扰强电器引入的接触电弧和反电动势干扰(辐射、辐射、 传输、
42、传输、 感应感应)11.内部接地不妥引入的干扰内部接地不妥引入的干扰(传输传输)12.漏磁感应漏磁感应(感应感应)13.传输线反射干扰传输线反射干扰(传输传输)14 .漏电干扰漏电干扰(传输传输) 44二、干扰对单片机系统的影响二、干扰对单片机系统的影响 正常程序:正常程序:13F4 A274 MOV C, 2EH.4 13F6 E544 MOV A, 44H 13F8 3402 ADDC A, 2 13FA 13 RRC A13FB F544 MOV 44H, A13FD 9274 MOV 2EH.4, C 如果干扰使程序计数器如果干扰使程序计数器PC出错出错, 在某时刻在某时刻变为变为13
43、F5H, CPU将执行如下程序片段将执行如下程序片段, 掉掉进一个死循环进一个死循环: 13F5 74E5 MOV A, 0E513F7 4434 ORL A, 3413F9 02113F5 LJMP 13F5H 45三、三、硬件硬件抗干扰技术抗干扰技术1.抗干扰稳压电源抗干扰稳压电源 (1) 应用系统的供电线路和产生干扰的用电设备分应用系统的供电线路和产生干扰的用电设备分开供电。开供电。 (2) 通过低通滤波器和隔离变压器接入电网。通过低通滤波器和隔离变压器接入电网。 (3) 整流组件上并接滤波电容。滤波电容选用整流组件上并接滤波电容。滤波电容选用1 000 pF 0.01 F的瓷片电容的瓷
44、片电容, 。 (4) 采用高质量的稳压电源。采用高质量的稳压电源。 46抗干扰稳压电源抗干扰稳压电源抗干扰稳压电源抗干扰稳压电源 4789C512.输入输出隔离输入输出隔离光电耦合器隔离光电耦合器隔离48光电耦合式固态继电器光电耦合式固态继电器493.过压保护电路过压保护电路 在输入通道上采用一定的过压保护电路在输入通道上采用一定的过压保护电路, 以防以防引入高压引入高压, 损坏系统电路。损坏系统电路。 过压保护电路由限流电过压保护电路由限流电阻和稳压管组成阻和稳压管组成, 稳压值以略高于最高传送信号电稳压值以略高于最高传送信号电压为宜。对于微弱信号压为宜。对于微弱信号(0.2 V 以下)以下
45、), 采用两支采用两支反并联的二极管反并联的二极管, 也可起到过压保护作用。也可起到过压保护作用。 50四、软件抗干扰技术四、软件抗干扰技术 1.开关量输入方法开关量输入方法512.程序执行过程中的软件抗干扰程序执行过程中的软件抗干扰 “指令冗余指令冗余”与与“软件陷阱软件陷阱”下面三条指令即组成一个下面三条指令即组成一个“软件陷阱软件陷阱”: NOP NOP LJMP ERR 一般使用在:一般使用在: 1)未使用的中断向量区)未使用的中断向量区 2)未使用的大片)未使用的大片EPROM空间空间523.WATCHDOG 如果如果“跑飞跑飞”的程序落到一个临时构成的死循环中的程序落到一个临时构成
46、的死循环中, 冗余指冗余指令和软件陷阱都将无能为力令和软件陷阱都将无能为力, 这时可采取这时可采取WATCHDOG(俗称(俗称“看门狗看门狗”)措施。)措施。 WATCHDOG有如下特性有如下特性: (1) 本身能独立工作本身能独立工作, 基本上不依赖于基本上不依赖于CPU。 CPU只在一个固定只在一个固定的时间间隔内与之打一次交道的时间间隔内与之打一次交道, 表明整个系统表明整个系统“目前尚属正常目前尚属正常”。 (2) 当当CPU落入死循环后落入死循环后, 能及时发现并使整个系统复位。能及时发现并使整个系统复位。53硬件硬件WATCHDOG电路电路 544.数字滤波数字滤波 数字滤波有如下
47、优点数字滤波有如下优点: (1) 数字滤波是由软件程序实现的数字滤波是由软件程序实现的, 不需要硬件不需要硬件, 因此不存因此不存在阻抗匹配的问题。在阻抗匹配的问题。 (2) 对于多路信号输入通道对于多路信号输入通道, 可以共用一个软件可以共用一个软件“滤波器滤波器”, 从而降低设备的硬件成本。从而降低设备的硬件成本。 (3) 只要适当改变滤波器程序或运算参数只要适当改变滤波器程序或运算参数, 就能方便地改变就能方便地改变滤波特性滤波特性, 这对于低频脉冲干扰和随机噪声的克服特别有效。这对于低频脉冲干扰和随机噪声的克服特别有效。 55(1)限幅滤波限幅滤波 56 PUSH ACC ; 保护现场
48、保护现场 PUSH PSW MOV A, 30H ; YnA CLR C SUBB A, 31H ; 求求Yn-Yn-1 INC LP0 ; Yn-Yn-10吗?吗? CPL A ; Yn Y?LP1 : MOV 31H, 30H ; 等于等于Y, 本次采样值有效本次采样值有效 SJMP LP3 LP2: JC LP1 ; 小于小于Y, 本次采样值有效本次采样值有效 ; 大于大于Y, Yn =Yn-1LP3: POP PSW POP ACC RET 57(2)中值滤波)中值滤波 中值滤波是对某一被测参数连续采样中值滤波是对某一被测参数连续采样n次(一般次(一般n取奇数)取奇数), 然后把然后把
49、n次采样值按大小排列次采样值按大小排列, 取中间值为本次采样值取中间值为本次采样值, 中值滤中值滤波能有效地克服偶然因素引起的波动或采样器不稳定引起的误波能有效地克服偶然因素引起的波动或采样器不稳定引起的误码等脉冲干扰。码等脉冲干扰。 设设SAMP为存放采样值的内存单元首地址为存放采样值的内存单元首地址, DATA为存放滤为存放滤波值的内存单元地址波值的内存单元地址, N为采为采样值个数样值个数, 中值滤波程序如下中值滤波程序如下: 58(3)算术平均滤波)算术平均滤波 对目标参数进行连续采样对目标参数进行连续采样, 然后求取算术平均值然后求取算术平均值作为有效采样值作为有效采样值, 该算法适用于抑制随机干扰。该算法适用于抑制随机干扰。