第13章 应用设计_第1页
第13章 应用设计_第2页
第13章 应用设计_第3页
第13章 应用设计_第4页
第13章 应用设计_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

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

文档简介

1、第第1313章章 AT89S51AT89S51单片机的应用单片机的应用 设计与调试设计与调试1内容概要内容概要介绍介绍AT89S51单片机应用系统的设计。单片机应用系统的设计。主要包括:应用系统的设计步骤和方法以及应用系统设计主要包括:应用系统的设计步骤和方法以及应用系统设计举例。此外,还介绍了目前流行的单片机应用系统的仿真开举例。此外,还介绍了目前流行的单片机应用系统的仿真开发工具以及如何利用仿真开发工具对单片机应用系统进行开发工具以及如何利用仿真开发工具对单片机应用系统进行开发调试。发调试。对单片机应用系统的抗干扰和可靠性设计作以介绍。对单片机应用系统的抗干扰和可靠性设计作以介绍。 213

2、.1 单片机应用系统的设计步骤单片机应用系统的设计步骤 应用系统指以单片机为核心,配以一定的外围电路和软应用系统指以单片机为核心,配以一定的外围电路和软件、能实现用户所要求的测控功能。件、能实现用户所要求的测控功能。 系统的设计,首先需深入细致的需求分析,周密而科学的系统的设计,首先需深入细致的需求分析,周密而科学的方案论证。应用系统设计,一般可分为方案论证。应用系统设计,一般可分为4阶段。阶段。(1)明确任务和需求分析以及拟定设计方案阶段)明确任务和需求分析以及拟定设计方案阶段 明确系统所要完成的任务,是系统设计工作的基础,系统明确系统所要完成的任务,是系统设计工作的基础,系统设计方案正确性

3、保证。设计方案正确性保证。3 需求分析主要包括:需求分析主要包括:被测控参数的形式(电量、非电量、被测控参数的形式(电量、非电量、模拟量、数字量等)、范围、性能指标、系统功能、工作环模拟量、数字量等)、范围、性能指标、系统功能、工作环境、显示、报警、打印要求等。境、显示、报警、打印要求等。 拟定设计方案是需求分析,先确定大致方向和准备采用的拟定设计方案是需求分析,先确定大致方向和准备采用的手段。注意,在进行设计方案确定的时候,简单的方法往往手段。注意,在进行设计方案确定的时候,简单的方法往往可以解决大问题,切忌可以解决大问题,切忌“将简单的问题复杂化将简单的问题复杂化”(2)硬件和软件设计阶段

4、)硬件和软件设计阶段 根据拟定的设计方案,设计出相应的系统硬件电路。硬件根据拟定的设计方案,设计出相应的系统硬件电路。硬件设计的前提是必须能够完成系统的要求和保证可靠性。在硬设计的前提是必须能够完成系统的要求和保证可靠性。在硬件设计时,如果能够将硬件电路设计与软件设计结合起来考件设计时,如果能够将硬件电路设计与软件设计结合起来考虑效果会更好。因为当有些问题在硬件电路中无法完成时,虑效果会更好。因为当有些问题在硬件电路中无法完成时,4可直接由软件来完成(如某些软件滤波、校准功能等);当可直接由软件来完成(如某些软件滤波、校准功能等);当软件编写程序很麻烦的时候,通过稍稍改动硬件电路(或尽软件编写

5、程序很麻烦的时候,通过稍稍改动硬件电路(或尽可能不改动)可能会使软件变得十分简单。另外在另一些要可能不改动)可能会使软件变得十分简单。另外在另一些要求系统实时性强、响应速度快的场合,则往往必须用硬件代求系统实时性强、响应速度快的场合,则往往必须用硬件代替软件来完成某些功能。所以在硬件设计时,最好能与软件替软件来完成某些功能。所以在硬件设计时,最好能与软件的设计结合起来,统一考虑,合理安排软、硬件的比例,使的设计结合起来,统一考虑,合理安排软、硬件的比例,使系统具有最佳的性系统具有最佳的性/价比。当硬件电路设计完成后,就可以进价比。当硬件电路设计完成后,就可以进行硬件电路板的绘制和焊接工作了。行

6、硬件电路板的绘制和焊接工作了。 接下来就是软件设计。正确的编程就是根据需求分析,先接下来就是软件设计。正确的编程就是根据需求分析,先绘制出软件的流程图,十分重要。绘制往往不能一次成功,绘制出软件的流程图,十分重要。绘制往往不能一次成功,通常需进行多次修改。通常需进行多次修改。 5 流程图的绘制可按照由简到繁的方式再逐步细化,先绘制流程图的绘制可按照由简到繁的方式再逐步细化,先绘制系统大体上需要执行的程序模块,然后将这些模块按照要求系统大体上需要执行的程序模块,然后将这些模块按照要求组合在一起(如主程序、子程序以及中断服务子程序等)。组合在一起(如主程序、子程序以及中断服务子程序等)。 在大方向

7、没有问题后,再将每个模块进行细化,最后形成在大方向没有问题后,再将每个模块进行细化,最后形成软件流程图,这样程序的编写速度就会很快,同时程序流程软件流程图,这样程序的编写速度就会很快,同时程序流程图还会为后面的调试工作带来很多方便,如程序调试中某个图还会为后面的调试工作带来很多方便,如程序调试中某个模块不正常,就可以通过流程图来查找问题的原因。模块不正常,就可以通过流程图来查找问题的原因。软件编软件编写者一定要克服不绘制流程图直接在计算机上编写程序的习写者一定要克服不绘制流程图直接在计算机上编写程序的习惯。惯。 设计者也可在上述软硬件设计完成后,先使用单片机的EDA软件仿真开发工具Proteu

8、s,来进行仿真设计。 用Proteus设计的系统与用户样机在硬件上无任何联系,是一种完全用软件手段完全用软件手段来对单片机硬件电路和软件来进行设计、开发与仿真调试的开发工具。如果先在软件仿真工具的环境下进行设计并调试通过,虽然还不能完全说明实际系统就完全通过,至少在逻辑上是行得通的。 软件仿真通过后,再进行软硬件设计与实现,可大大减少可大大减少设计上所走的弯路设计上所走的弯路。也是目前世界上流行的一种开发方法。7(3)硬件与软件联合调试阶段)硬件与软件联合调试阶段下一步就是软硬件的联合调试。需通过硬件仿真开发工具来进行,具体的调试方法和过程,在本章后面介绍。所有软件和硬件电路全部调试通过,并不

9、意味系统设计成功,还需通过运行来调整系统的运行状态,例如例如系统中的A/D转换结果是否正确,如果不正确,是否要调零和调整基准电压等。(4)资料与文件整理编制阶段)资料与文件整理编制阶段系统调试通过,就进入资料与文件资料与文件整理编制阶段。8资料与文件包括:资料与文件包括:任务描述、设计的指导思想及设计方案论证、性能测定及现场试用报告与说明、使用指南、软件资料(流程图、子程序使用说明、地址分配、程序清单)、硬件资料(电原理图、元件布置图及接线图、接插件引脚图、线路板图、注意事项)。文件不仅是设计工作的结果,而且是以后使用、维修以及文件不仅是设计工作的结果,而且是以后使用、维修以及进一步再设计的依

10、据。进一步再设计的依据。因此,要精心编写,描述清楚,使数据及资料齐全。913.2 单片机应用系统设计单片机应用系统设计 系统的设计。主要从硬件设计硬件设计和软件设计软件设计两方面考虑。13.2.1 硬件设计应考虑的问题硬件设计应考虑的问题 硬件设计硬件设计时,应重点考虑以下问题。1尽可能采用功能强的芯片尽可能采用功能强的芯片(1)单片机选型)单片机选型。单片机的集成度越来越高,许多外围部件都已集成在芯片内,有的单片机本身就是一个系统,这可省去许多外围部件的扩展工作,使设计工作简化。10 第1章已介绍较为流行的各种单片机,根据需求,选择合适机型。 例如,例如,目前市场上较为流行的美国美国Cygn

11、al公司公司的C8051F020 8位单片机,片内集成有8通道A/D、两路D/A、两路电压比较器,内置温度传感器、定时器、可编程数字交叉开关和64个通用I/O口、电源监测、看门狗、多种类型的串行总线(两个UART、SPI)等。用1片C8051F020 单片机,就构成一个应用系统。再如,如系统需要较大的I/O驱动能力和较强的抗干扰能力,可考虑选用可考虑选用AVR单片机单片机。11(2)优先选片内有闪存的产品)优先选片内有闪存的产品。例如,例如,使用ATMEL公司的AT89S5x系列产品,PHILIPS公司的89C58(内有32KB的闪烁存储器)等,可省去片外扩展程序存储器的工作,减少芯片数量,缩

12、小系统体积。(3)RAM容量的考虑。容量的考虑。多数单片机片内的RAM单元有限,当需增强数据处理功能时,往往觉得不足,这就要求系统配置外部RAM,如6264、62256芯片等。如处理的数据量大,需更大的数据存储器空间,可采用数据存储器芯片DS12887,其容量为256KB,内有锂电池保护,保存数据可达10年以上。12(4)对)对I/O端口留有余地端口留有余地。在样机研制出来现场试用时,往往会发现一些被忽视的问题,而这些问题是不能单靠软件措施来解决的。如有新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。如果在硬件设计之初就多设计留有一些多设计留有一些I/O端口端口,

13、这些问题就会迎刃而解。(5)预留)预留A/D和和D/A通道通道。与上述I/O端口同样原因,留出一些A/D和D/A通道将来可能会解决大问题。132以软代硬以软代硬原则上,只要软件能做到且能满足性能要求,就不用硬件。硬件多不但增加成本,而且系统故障率也会提高硬件多不但增加成本,而且系统故障率也会提高。以软带硬的实质,是以时间换空间,软件执行过程需要消耗时间,因此带来的问题就是实时性下降。问题就是实时性下降。在实时性要求不高的场合,以软代硬是很合算的。3工艺设计工艺设计包括机箱、面板、配线、接插件等。须考虑到安装、调试、维修方便。另外,硬件抗干扰措施(将在本章后面介绍)也须在硬件设计时一并考虑进去。

14、1413.2.2 典型的单片机应用系统典型的单片机应用系统 典型单片机应用系统框图如图图13-1所示。图图13-1 单片机典型应用系统框图15主要由单片机基本部分、输入部分单片机基本部分、输入部分和输出部分组成。(1)单片机基本部分)单片机基本部分由单片机及其扩展的外设及芯片,如键盘、显示器、打印机、数据存储器、程序存储器、数字I/O等组成。(2)输入部分)输入部分“测”的部分,被被“测测”的信号类型有的信号类型有:数字量、模拟量和开关量。模拟量输入检测的主要包括信号调理电路以及A/D转换器。A/D转换器中又包括多路切换、采样保持、A/D转换电路,目前都集成在A/D转换器芯片中,或直接集成在单

15、片机片内。16连接传感器传感器与A/D转换器转换器之间的桥梁是信号调理电路信号调理电路,传感器输出的模拟信号要经信号调理电路对信号进行放大、滤对信号进行放大、滤波、隔离、量程调整波、隔离、量程调整等,变换成适合A/D转换的电压信号。 信号放大通常由单片式仪表放大器承担。仪表放大器对信号进行放大比普通运算放大器具有更优异的性能。如何根据不同的传感器正确地选择仪表放大器来进行信号调理电路的设计,请参阅有关资料和文献。(3)输出部分)输出部分是应用系统“控控”的部分的部分,包括包括数字量、开关量控制信号的输出和模拟量控制信号(常用于伺服控制)的输出。1713.2.3 系统设计中的地址空间分配与总线驱

16、动系统设计中的地址空间分配与总线驱动 应用系统有时往往是多芯片系统,这时会遇到两个问题两个问题: 一是如何把如何把64KB程序存储器和程序存储器和64KB数据存储器的空间分数据存储器的空间分配给各个芯片配给各个芯片; 二是如何实现如何实现AT89S51单片机对多片芯片的驱动单片机对多片芯片的驱动。 本小节介绍单片机应用系统设计时经常遇到的地址空间分地址空间分配和总线驱动问题配和总线驱动问题,供设计参考。181地址空间分配地址空间分配 扩展多片芯片扩展多片芯片的应用系统,首先应考虑如何把首先应考虑如何把64KB程序程序存储器和存储器和64KB数据存储器的空间分配给各个芯片数据存储器的空间分配给各

17、个芯片。 第8章已介绍地址空间分配的两种方法两种方法:线选法线选法和译码法译码法。下面通过一个例子来说明如何解决这个问题。 图图13-2所示为一个全地址译码的系统实例。图中所示的AT89S51单片机扩展的各器件芯片所对应的地址如表表13-1。19 图图13-2 全地址译码的系统实例2021因6264、2764都是8KB,故需要13条条低位地址线(A12A0)进行片内寻址,低8位地址线A7A0经8D锁存器74LS373输出(图中没有画出),其他3条高位地址线条高位地址线A15A13经3-8译码器74LS138译码后作为外围芯片的片选线。图中尚剩余3条地址选择线Y7* Y5* ,还可扩展3片存储器

18、芯片或外围I/O接口芯片。2总线驱动总线驱动扩展多片芯片时,注意单片机4个并行双向口的个并行双向口的P0P3口口的驱动能力的驱动能力。下面讨论这个问题。22 AT89S51的P0、P2口口通常作为总线端口作为总线端口,当扩展芯片较多,可造成负载过重,致使驱动能力不够驱动能力不够,通常要附加总线驱动器或其他驱动电路。因此在多芯片应用系统设计中首先要估计总线负载情况,以确定是否需对总线驱动能力进行扩展。 图图13-3为AT89S51单片机总线驱动扩展原理图。P2口需单口需单向驱动向驱动,常见的单向总线驱动器为单向总线驱动器为74LS244。 图图13-4为74LS244引脚图引脚图和逻辑图逻辑图。

19、8个三态驱动器分成两组,分别由1G* 和2G*控制。2324图13-3 AT89S51单片机总线驱动扩展原理图P0口口作为数据总线,双向传输,其驱动器应为双向驱动、作为数据总线,双向传输,其驱动器应为双向驱动、三态输出三态输出,由两个控制端两个控制端来控制数传方向。如图图13-3所示,数据输出允许控制端DBEO有效时,数据总线输入为高阻状态,输出为开通状态;数据输入允许控制端DBEI有效时,则状态与上相反。常见双向驱动器为常见双向驱动器为74LS245,图图13-5为引脚图和逻辑图。驱动方向由 G*、DIR两个控制端控制, G*控制端控制驱动器有效或高阻态, G*在 控制端有效(G* =0)时

20、,DIR控制端控制驱动器的驱动方向,DIR=0时驱动方向为从B至A,DIR=1时则相反。25图图13-4 单向驱动器74LS244引脚图和逻辑图图图13-5 74LS245的引脚图和逻辑图图图13-6所示为AT89S51系统总线驱动扩展电路图总线驱动扩展电路图。P0口口的双向驱动采用的双向驱动采用74LS245,如图图13-6(a)所示;P2口的单口的单向驱动器采用向驱动器采用74LS244,如图图13-6(b)所示。 28图图13-6 AT89S51单片机应用系统中的总线驱动扩展电路图 P0口口双向驱动器74LS245的的G*接地接地,保证芯片一直处于工作状态,而输入输入/输出的方向控制输出

21、的方向控制由单片机的数据存储器的“读读”控制引脚(控制引脚(RD*)和程序存储器的取指控制引脚取指控制引脚(PSEN*)通过与门控制DIR引脚实现。无论是“读”数据存储器中数据( 有效)还是从程序存储器中取指令(PSEN*有效),都能保证对P0口的输入驱动; 除此以外的时间(RD*及PSEN*均无效),保证对P0口的输出驱动。对于P2口,因为只用作单向的地址输出,故74LS244的驱动门控制端1G* 、2G*接地。2913.2.4 应用设计例应用设计例1最小应用系统设计最小应用系统设计 AT89S51有4KB闪烁存储器闪烁存储器,本身就是一个数字量输入/输出的最小应用系统。 在构建AT89S5

22、1最小应用系统时,AT89S51需要外接需要外接时钟电时钟电路路和复位电路复位电路即可,如图图13-7。 注意,本最小应用系统只能作为小型的数字量的测控单元。30图图13-7 AT89S51单片机构成的最小应用系统13.2.5 应用设计例应用设计例2数字电压表的设计数字电压表的设计 设计一个数字电压表。测量设计一个数字电压表。测量05V的模拟电压,并把电压的的模拟电压,并把电压的测量值显示在测量值显示在LED数码显示器上。数码显示器上。1. 硬件接口电路设计硬件接口电路设计 数字电压表接口电路如数字电压表接口电路如图图13-8。A/D转换器采用转换器采用ADC0809,把加到把加到IN0脚的模

23、拟输入电压转换为数字量,送至单片机内进脚的模拟输入电压转换为数字量,送至单片机内进行处理,电压值显示在行处理,电压值显示在LED数码显示器上。时钟由定时器定时数码显示器上。时钟由定时器定时中断提供,在定时器中断服务程序中,对时钟输出引脚中断提供,在定时器中断服务程序中,对时钟输出引脚P1.3取取反。本数字电压表的分辨率为反。本数字电压表的分辨率为5V/256=1LSB=0.0196V,测量,测量误差为误差为1LSB。3233图13-8 数字电压表接口电路2. 2. 软件设计软件设计参考程序如下:参考程序如下:#include #include #define #define ucharucha

24、r unsigned char unsigned char #define #define uintuint unsigned unsigned intint ucharuchar code table16=0 x3f, 0 x06, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x07, code table16=0 x3f, 0 x06, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x07, 0 x7f, 0 x6f ; 0 x7f, 0 x6f ; / /* *共阴极数码管段码表共阴极数码管段码表* */ /sbitsbit OE=P10; OE=P10;

25、/ /* *ADCADC各引脚定义各引脚定义* */ /sbitsbit EOC=P11; EOC=P11;sbitsbit START=P12; START=P12;sbitsbit CLK=P13; CLK=P13;/ /* *延时子程序延时子程序* */ /void void DelayMS(uintDelayMS(uint ms) ms)34uchar i;while( ms-)for(i=0;i150;i+);/*显示转换结果*/void Dislay(uchar d)P2=0 xf7; /*右边数码管显示个位数*/P0=LEDdatad%10;DelayMS(uint ms);P2

26、=0 xfb;P0=LEDdatad%100/10; /*中间数码管显示十位数*/DelayMS(uint ms);P2=0 xfd;P0=LEDdatad%100; /*左边数码管显示十位数*/DelayMS(uint ms);unsigned char i35/*主程序主程序*/void main( );TMOD=0 x02;/*设置定时器设置定时器T0为定时器方式为定时器方式2*/TH0=0 x14;/*给给T0装入初值装入初值*/TL0=0 x00; IE=0 x82;/*总中断允许,定时器总中断允许,定时器T0中断允许中断允许*/TR0=1;/*接通接通T0 计数计数* /P1=0

27、x07;/*CLK、START、EOC、OE为低、高、高、高为低、高、高、高* /while(1)START=0; START=1; START=0; /* START脚加正脉冲,启动转换脚加正脉冲,启动转换* /while(EOC=0);/*是否转换结束是否转换结束* /OE=1;/*允许读转换结果允许读转换结果* /36Dislay(P3);/*显示转换结果显示转换结果* /OE=0;/*关闭转换结果输出关闭转换结果输出* /*定时器定时器T0中断服务程序中断服务程序*/void T0INT( ) interrupt 1 CLK=! CLK;/*转换器时钟转换器时钟CLK 取反取反* /3

28、713.2.6 应用设计例应用设计例3带有报警功能的温度测量仪的设计带有报警功能的温度测量仪的设计 设计一个带有报警功能的温度测量仪。被测温度经温度传设计一个带有报警功能的温度测量仪。被测温度经温度传感器及信号调理电路,变为感器及信号调理电路,变为05V的模拟电压信号,经的模拟电压信号,经A/D转换器转换器ADC0809转换为数字量,送至单片机内进行处理。转换为数字量,送至单片机内进行处理。测量的温度值显示在数码显示器上。测得温度值与设定值进测量的温度值显示在数码显示器上。测得温度值与设定值进行比较,当温度大于上限值和小于下限值时分别发出报警信行比较,当温度大于上限值和小于下限值时分别发出报警

29、信号。号。1. 硬件电路设计硬件电路设计 温度测量仪的硬件功能结构框图如温度测量仪的硬件功能结构框图如图图13-9所示。所示。3839图图13-9 硬件功能结构框图硬件功能结构框图 硬件电路从功能模块上来划分有两部分:数据采集电路和硬件电路从功能模块上来划分有两部分:数据采集电路和温度显示与超限报警电路。温度显示与超限报警电路。(1)数据采集电路的设计)数据采集电路的设计 数据采集电路电路如数据采集电路电路如图图13-10所示,主要由温度传感器、信所示,主要由温度传感器、信号调理、号调理、A/D转换器等组成。转换器等组成。 温度传感器采用常见的二端式电流型集成温度传感器温度传感器采用常见的二端

30、式电流型集成温度传感器AD590。温度变化。温度变化1,其输出电流变化,其输出电流变化1A,在,在25时,其时,其输出电流为输出电流为298.2A。AD590具有较高精度和重复性,测温范具有较高精度和重复性,测温范围为围为55+150,重复性优于,重复性优于0.1,通过激光平衡调整,通过激光平衡调整,校准精度可达校准精度可达 0.5。由于。由于AD590的上述特点,使其在温度的上述特点,使其在温度测量中得到了广泛应用。测量中得到了广泛应用。 图图13-1013-10 数据采集电路图数据采集电路图放大电路采用低温稳定、高精度的普通运算放大器放大电路采用低温稳定、高精度的普通运算放大器OP07,它

31、将温度传感器的电压信号放大它将温度传感器的电压信号放大05V,加到,加到A/D转换器转换器0809的模拟输入端,以便的模拟输入端,以便A/D转换器进行转换。转换器进行转换。A/D转换器采用转换器采用AD0809,假设被采集的温度信号为缓变,假设被采集的温度信号为缓变信号,足以满足转换速度的要求。信号,足以满足转换速度的要求。42(2)温度显示与超限报警电路的设计)温度显示与超限报警电路的设计 温度显示与超限报警电路如温度显示与超限报警电路如图图13-11所示。所示。 测得的温度值利用测得的温度值利用LED数码管进行显示。数码管的数码管进行显示。数码管的adp段的段码由单片机的段的段码由单片机的

32、P0口控制,口控制,a段对应段对应P0口的最低位。数口的最低位。数码管的显示位由码管的显示位由P2.0P2.3分别控制,本例中用到了分别控制,本例中用到了P2.0P2.2对应的数码管。对应的数码管。 超限报警电路部分,由超限报警电路部分,由P3.0和和P3.1分别控制两个发光二极分别控制两个发光二极管管LED1和和LED2的亮与灭。当温度低于下限值时黄色发光二的亮与灭。当温度低于下限值时黄色发光二极管亮,当温度高于上限值时,红色发光二极管亮。极管亮,当温度高于上限值时,红色发光二极管亮。图图13-11 温度显示与超限报警电路温度显示与超限报警电路 2软件设计软件设计参考程序如下:参考程序如下:

33、#include #include #define #define ucharuchar unsigned char unsigned char #define #define uintuint unsigned unsigned intint ucharuchar code code segcodesegcode =0 x3f, =0 x3f, 0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f ; /0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f ; /* *显示段码表显示段

34、码表* */ /ucharuchar Temperature =0,0,0; Temperature =0,0,0;/ /* *3 3个个显示位的温度值显示位的温度值* */ /sbitsbit OE=P27; OE=P27;/ /* *ADC0809ADC0809各引脚定义各引脚定义* */ /sbitsbit EOC=P26; EOC=P26;sbitsbit START=P25; START=P25;sbitsbit CLK=P24; CLK=P24;sbitsbit H_LED=P30; H_LED=P30;/ /* *报警指示灯报警指示灯/ /sbitsbit L_LED=P31;

35、L_LED=P31;sbitsbit BEEP=P37; BEEP=P37;/ /* *蜂鸣器蜂鸣器* */ /45uchar t=0;void Deley_ms(uint x) /*延时函数延时函数*/uchar i;while(x-) for(i=0;i120;i+);void Display( )/*温度温度显示函数显示函数*/uchar i, bitcode = 0 xf7, 0 xfb, 0 xfd /*显示位的位控值显示位的位控值*/for(i=0;i3;i+); /*循环循环显示显示3位的控制位的控制*/P0= segcodeTemperaturei ;P2&= bitcode

36、i ;Deley_ms(5);P2|=0 x0f;46void main( );uchar dIE=0 x8a;/*允许T1、T0中断*/TMOD=0 x18;/*设置T1、T0的工作模式与方式*/TH0=245;TL0=0;TH1=(65536-1000)/256;TL1=(65536-1000)%256;TR0=1;H_LED=L_LED=1;while(1) START=0; START=1; START=0; /*启动转换*/while(1) if(EOC=1)47OE=1;d=P1;/*读取读取A/D转换结果转换结果*/OE=0;Temperature2=d/100;Temperat

37、ure1=d%100/10;Temperature0=d%10;Display( )if(d130) /*判温度是否高于上限判温度是否高于上限*/TR1=1; H_LED =! L_LED;elseTR1=0; H_LED=L_LED=1;48break;void T0_INT( ) interupt 1/*定时器定时器T0中断函数中断函数, T0为为ADC0809提供时提供时钟钟*/clk=clkvoid T1_INT( ) interupt 3/*定时器定时器T1中断函数中断函数*/TH1=(65536-1000)/256;TL1=(65536-1000)%256;TL1=(65536-1

38、000)%256;BEEP=BEEP;if(L_LED=0)/*根据上限还是下限报警来设定不同的延时间隔根据上限还是下限报警来设定不同的延时间隔*/if(+t !=150)return;49elseif(+t !=60)return;t=0;Deley_ms(20)5013.3 单片机应用系统的仿真开发与调试单片机应用系统的仿真开发与调试 “仿真仿真”就是利用仿真开发工具提供的可控手段来模仿单就是利用仿真开发工具提供的可控手段来模仿单片机系统真实运行的情况。在单片机系统调试中,仿真应用的片机系统真实运行的情况。在单片机系统调试中,仿真应用的范围主要集中在对程序的仿真上。例如,在单片机的开发过程

39、范围主要集中在对程序的仿真上。例如,在单片机的开发过程中,程序的设计是最为重要的但也是难度最大的。一种最简单中,程序的设计是最为重要的但也是难度最大的。一种最简单和原始的开发流程是:编写程序和原始的开发流程是:编写程序烧写芯片烧写芯片验证功能,这种验证功能,这种方法对于简单的小系统是可行的,但在较大的程序中使用这种方法对于简单的小系统是可行的,但在较大的程序中使用这种方法则是行不通的。方法则是行不通的。 仿真的种类主要分为两大类:软件仿真和硬件仿真。仿真的种类主要分为两大类:软件仿真和硬件仿真。 51(1)软件仿真)软件仿真 主要是使用软件来模拟单片机运行,因此仿真与硬件无关主要是使用软件来模

40、拟单片机运行,因此仿真与硬件无关的系统具有优点。不需搭建硬件电路就可以对程序进行验证,的系统具有优点。不需搭建硬件电路就可以对程序进行验证,特别适合于偏重算法的程序。缺点是无法完全仿真与硬件相特别适合于偏重算法的程序。缺点是无法完全仿真与硬件相关的部分,最终还要通过硬件仿真来完成最终的设计。关的部分,最终还要通过硬件仿真来完成最终的设计。(2)硬件仿真)硬件仿真 使用附加的硬件来替代用户系统的单片机并完成单片机全使用附加的硬件来替代用户系统的单片机并完成单片机全部或大部分的功能,就可对程序的运行进行控制。例如单步,部或大部分的功能,就可对程序的运行进行控制。例如单步,全速,断点等。例如在程序的

41、运行中,在设置断点处查看某全速,断点等。例如在程序的运行中,在设置断点处查看某寄存器、存储器单元内容。硬件仿真是开发过程中所必寄存器、存储器单元内容。硬件仿真是开发过程中所必 52须的,人们把实现硬件仿真功能的开发工具称为仿真器。须的,人们把实现硬件仿真功能的开发工具称为仿真器。 仿真开发工具应具有如下最基本的功能。仿真开发工具应具有如下最基本的功能。(1 1)用户程序的输入与修改。)用户程序的输入与修改。(2 2)程序运行、调试(单步运行、设置断点运行)、排错、)程序运行、调试(单步运行、设置断点运行)、排错、状态查询等功能。状态查询等功能。(3 3)用户样机硬件电路的诊断与检查。)用户样机

42、硬件电路的诊断与检查。(4 4)有较全的开发软件。用户可用汇编语言或)有较全的开发软件。用户可用汇编语言或C C语言编制应语言编制应用程序;由开发系统编译连接生成目标文件、可执行文件。用程序;由开发系统编译连接生成目标文件、可执行文件。配有反汇编软件,能将目标程序转换成汇编语言程序;有丰配有反汇编软件,能将目标程序转换成汇编语言程序;有丰富的子程序或库函数可供用户选择调用。富的子程序或库函数可供用户选择调用。(5)将调试正确的程序写入到程序存储器中。)将调试正确的程序写入到程序存储器中。下面介绍常用的仿真开发工具。下面介绍常用的仿真开发工具。13.3.1 仿真开发系统简介仿真开发系统简介 目前

43、使用较多的仿真开发系统目前使用较多的仿真开发系统大致分为如下大致分为如下两类两类。1通用机仿真开发系统通用机仿真开发系统 目前目前使用最多的一类开发装置使用最多的一类开发装置。通过。通过PC机的并行口、串机的并行口、串行口或行口或USB口,外加在线仿真器,如口,外加在线仿真器,如图图13-12所示。所示。 图图13-13为在线仿真器与为在线仿真器与PC机以及用户样机的实际连接图。机以及用户样机的实际连接图。在线仿真器一侧与在线仿真器一侧与PC机的机的USB口(或并行口、串行口)相口(或并行口、串行口)相连。在调试程序时,在线仿真器另一侧的仿真插头插入到用连。在调试程序时,在线仿真器另一侧的仿真

44、插头插入到用5455图图13-12 通用机仿真开发系统图图13-13 在线仿真器与在线仿真器与P C机以及用户样机的连接机以及用户样机的连接户样机空出的的单片机插座上,来对样机上的单片机进行户样机空出的的单片机插座上,来对样机上的单片机进行“仿真仿真”。从仿真插头向在线仿真器看去,看到的就是一个。从仿真插头向在线仿真器看去,看到的就是一个“单片机单片机”。 这个这个“单片机单片机”是用来是用来“代替代替”用户样机上的用户样机上的单片机。但是这个单片机。但是这个“单片机单片机”片内程序的运行是由片内程序的运行是由PC机软机软件控制的。件控制的。 由于在线仿真器有由于在线仿真器有PC机及其仿真开发

45、软件的强大支持,机及其仿真开发软件的强大支持,可在可在PC机的屏幕上观察用户程序的运行情况,可采用单步、机的屏幕上观察用户程序的运行情况,可采用单步、设断点等手段逐条跟踪用户程序并进行修改和调试,查找软、设断点等手段逐条跟踪用户程序并进行修改和调试,查找软、硬件故障。硬件故障。 在线仿真器除了在线仿真器除了“出借出借” 单片机外,还单片机外,还“出借出借”存储器,存储器,即仿真即仿真RAM。也就是说,在用户样机调试期间,仿真器把开。也就是说,在用户样机调试期间,仿真器把开发系统的一部分存储器发系统的一部分存储器“变换变换”成为用户样机的存储器。成为用户样机的存储器。 57 这部分存储器与用户样

46、机的程序存储器具有相同的存储这部分存储器与用户样机的程序存储器具有相同的存储空间,用来存放待调试的用户程序。空间,用来存放待调试的用户程序。 当仿真器与当仿真器与PC机联机后,用户可利用机联机后,用户可利用PC机上的仿真开发机上的仿真开发软件,在软件,在PC机上编辑、修改源程序,然后通过交叉汇编软机上编辑、修改源程序,然后通过交叉汇编软件将其汇编成机器代码,传送到在线仿真器中的仿真件将其汇编成机器代码,传送到在线仿真器中的仿真RAM中。中。这时用户可用单步、断点、跟踪、全速等方式运行用户程序,这时用户可用单步、断点、跟踪、全速等方式运行用户程序,系统状态实时地显示在屏幕上。待程序调试通过后,再

47、使用系统状态实时地显示在屏幕上。待程序调试通过后,再使用仿真开发系统提供的编程器或专用编程器,把调试完毕的程仿真开发系统提供的编程器或专用编程器,把调试完毕的程序写入到单片机的序写入到单片机的Flash存储器中或外扩的存储器中或外扩的EPROM中。中。 目前国内生产的在线仿真器部分产品多采用目前国内生产的在线仿真器部分产品多采用Bondout和和58HOOKS 技术。技术。 随着集成电路芯片技术的发展,很多单片机生产厂商在芯随着集成电路芯片技术的发展,很多单片机生产厂商在芯片内部增加了仿真功能,即内嵌仿真功能的单片机芯片,仿片内部增加了仿真功能,即内嵌仿真功能的单片机芯片,仿真调试一般通过真调

48、试一般通过JTAG 接口进行控制。为了降低成本和增加接口进行控制。为了降低成本和增加可靠性,内嵌的仿真部分一般功能比较简单。可靠性,内嵌的仿真部分一般功能比较简单。 为满足工业现场调试的需要,还有一种独立型仿真器。该为满足工业现场调试的需要,还有一种独立型仿真器。该类仿真器采用模块化结构,配有不同外设,如外存板、打印类仿真器采用模块化结构,配有不同外设,如外存板、打印机、键盘机、键盘/显示器等,用户可根据需要选用。在工业现场,往显示器等,用户可根据需要选用。在工业现场,往往没有往没有PC机的支持,这时使用独立型仿真器也可进行仿真调机的支持,这时使用独立型仿真器也可进行仿真调试工作,只不过要输入

49、机器码,稍显麻烦一些。试工作,只不过要输入机器码,稍显麻烦一些。592. 单片机系统虚拟仿真开发工具单片机系统虚拟仿真开发工具Proteus 单片机虚拟仿真开发工具是一种完全用软件手段对单片机单片机虚拟仿真开发工具是一种完全用软件手段对单片机应用系统进行仿真开发,它与用户样机在硬件上无任何联系,应用系统进行仿真开发,它与用户样机在硬件上无任何联系,通常这种系统是由通常这种系统是由PC机上安装仿真开发工具软件构成,可机上安装仿真开发工具软件构成,可进行系统的虚拟设计与仿真调试。进行系统的虚拟设计与仿真调试。 Proteus软件是英国软件是英国Lab Center electronics 开发的虚

50、拟开发的虚拟仿真软件,为各种实际的单片机系统开发提供了功能强大的仿真软件,为各种实际的单片机系统开发提供了功能强大的EDA工具,已有近工具,已有近20年的历史。年的历史。 除了具有和其他除了具有和其他EDA工具一样的原理编辑、印刷电路板自工具一样的原理编辑、印刷电路板自动或人工布线及电路仿真功能外,最大特色是用户可对单片动或人工布线及电路仿真功能外,最大特色是用户可对单片机连同所有外围接口、电子器件以及外部的测试仪器一起机连同所有外围接口、电子器件以及外部的测试仪器一起60仿真。仿真。 可直接在基于单片机原理图的虚拟模型上进行编程,并实可直接在基于单片机原理图的虚拟模型上进行编程,并实现源代码

51、级的实时调试。现源代码级的实时调试。Proteus软件的特点。软件的特点。(1)能够对模拟电路、数字电路进行仿真。)能够对模拟电路、数字电路进行仿真。(2) 除了仿真除了仿真51系列单片机外,系列单片机外,Proteus软件还可仿真软件还可仿真68000系列、系列、AVR系列、系列、PIC12-18系列、系列、Z80系列、系列、HC11等其他各系列单片机。等其他各系列单片机。(3)具有硬件仿真开发系统中的全速、单步、设置断点等具有硬件仿真开发系统中的全速、单步、设置断点等调试功能调试功能,同时可观察各个变量、寄存器等的当前状态。61(4)该软件提供各种单片机与丰富的外围接口芯片提供各种单片机与

52、丰富的外围接口芯片、存储器芯片组成的系统仿真、RS-232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能。(5)提供丰富的虚拟仪器,如示波器、逻辑分析仪、信号丰富的虚拟仪器,如示波器、逻辑分析仪、信号发生器等。发生器等。利用虚拟仪器在仿真过程中可以测量系统外围电路的特性,设计者可充分利用Proteus软件提供的虚拟仪器,来进行系统的软件仿真测试与调试。 总之,是一款功能强大的单片机软件仿真开发工具。62 在使用Proteus进行仿真开发时,编译调试环境可选用编译调试环境可选用Keil C51 Vision 3软件软件。该软件支持众多不同公司的MCS-51架构的芯片,集编辑、编

53、译和程序仿真等于一体,同时还支持汇编和C语言的程序设计,界面友好易学,在调试程序、软件仿真方面有强大的功能。 用用Proteus调试不需任何硬件在线仿真器,也不需要用户不需任何硬件在线仿真器,也不需要用户硬件样机,直接就可以在硬件样机,直接就可以在PC机上开发和调试单片机软件。机上开发和调试单片机软件。调试完毕的软件可以将机器代码固化,一般能直接投入运行。63 尽管Proteus具有开发效率高,不需附加的硬件开发装置成本。但是软件模拟器是使用纯软件来仿真,对实时性还不对实时性还不能完全准确地模拟能完全准确地模拟,不能进行用户样机硬件部分的诊断与实不能进行用户样机硬件部分的诊断与实时在线仿真时在

54、线仿真。 因此在系统开发中,一般是先用Proteus设计出系统的硬件电路,编写程序,在Proteus环境下仿真调试通过。然后依照仿真的结果,完成实际硬件设计。再将仿真通过的程序用烧录到程序存储器中,然后安装到用户样机硬件板上去观察运行结果,如有问题,再连接硬件仿真器去分析、调试。6413.3.3 用户样机的仿真调试用户样机的仿真调试 介绍如何使用仿真开发工具进行汇编语言源程序编写、调试以及与用户样机硬件联调工作。1用户样机的程序调试用户样机的程序调试 用户源程序调试过程如图图13-14,分以下4个步骤。(1)输入用户源程序)输入用户源程序。用户使用编辑软件WS,按照汇编语言源程序要求的格式、语

55、法规定,把源程序输入到把源程序输入到PC机中,机中,并保存在磁盘上并保存在磁盘上。65图图13-14 用户样机软件设计、调试的过程 (2)在)在PC机上,利用汇编程序对用户源程序进行汇编,机上,利用汇编程序对用户源程序进行汇编,直至语法错误全部纠正为止。直至语法错误全部纠正为止。如无语法错误,则进入下一个步骤。 (3)动态在线调试。)动态在线调试。这一步对用户的源程序进行调试。上述的步骤(1)、步骤(2)是一个纯粹的软件运行过程,这一步,必须要有在线仿真器配合,这一步,必须要有在线仿真器配合,才能对用户源程序进行调试。用户程序中分为与用户样机硬件无关以及与用户样机紧密相关的程序。67 对于与用

56、户样机硬件无关的程序,对于与用户样机硬件无关的程序,如计算程序如计算程序,虽无语法错误,但可能存在逻辑错误,使计算结果不正确,此时必须借助于在线仿真器的动态在线调试手段,如单步运行、设置断点等,发现逻辑错误,然后返回到步骤(1)修改,直至逻辑错误纠正为止。 对于与样机硬件紧密相关的程序段与样机硬件紧密相关的程序段(如接口驱动程序),一定先把在线仿真器的仿真插头插入用户样机的单片机插座中(见图图13-13),进行在线仿真调试,利用仿真开发系统提供单步、设置断点等调试手段,来进行系统的调试。68 部分程序段运行有可能不正常,部分程序段运行有可能不正常,可能是可能是软件逻辑软件逻辑上有问题,上有问题

57、,也可能是也可能是硬件硬件有故障有故障,必须通过仿真工具提供的调试手段,把硬件故障排除后,再与硬件配合,把硬件故障排除后,再与硬件配合,对用户程序进行动态在线调试。对于软件的逻辑错误,则返回到第一步进行修改,直至逻辑错误消除为止。在调试这类程序时,硬件调试与软件调试是不能完全分开的。许多硬件错误是通过软件的调试而发现和纠正的。(4)将调试完毕的用户程序通过)将调试完毕的用户程序通过编程写入器编程写入器(也称烧写(也称烧写器),固化在程序存储器中。器),固化在程序存储器中。692用户样机的硬件调试用户样机的硬件调试 用户样机全部焊接完毕,就可对样机的硬件进行调试。首先进行静态调试静态调试,目的是

58、排除明显的硬件故障。(1)静态调试)静态调试 分两步: 第一步第一步在样机加电前,根据硬件设计图,用万用表等工具,仔细检查样机线路样机线路是否连接正确是否连接正确,并核对元器件型号、规格和安装是否符合要求,应特别注意应特别注意电源系统电源系统的检查的检查,防止电源的短路和极性错误,并重点检查系统总线(地址总线、数据总线、控制总线)是否存在相互之间短路或与其他信号线短路。70 第二步第二步加电后检查各芯片插座上有关引脚的电位有关引脚的电位,测量各各点电平是否正常点电平是否正常,尤其应注意AT89S51插座的各点电位,若若有高压,与在线仿真器联机调试时,将会损坏在线仿真器有高压,与在线仿真器联机调

59、试时,将会损坏在线仿真器。 具体步骤如下。具体步骤如下。 电源检查。电源检查。当用户样机板连接或焊接完成之后,先不插主先不插主要元器件,要元器件,通上电源。通常用+5V直流电源(这是TTL电源),用万用表电压档测试各元器件插座上相应电源引脚电各元器件插座上相应电源引脚电压数值是否正确,极性是否符合。压数值是否正确,极性是否符合。如有错误,要及时检查、排除,以使每个电源引脚的数值都符合要求。71各元器件电源检查。各元器件电源检查。断开电源,按正确的元器件方向插上元器件。最好是分别插入,分别通电,最好是分别插入,分别通电,逐一检查每个元器件逐一检查每个元器件上的电源是否正确上的电源是否正确,直到最

60、后全部插上元器件。通电后,每个元器件上电源值应正确无误。检查相应芯片的逻辑关系。检查相应芯片的逻辑关系。通常采用静态电平检查法,即静态电平检查法,即在一个芯片信号输入端加入一个相应电平,检查输出电平是在一个芯片信号输入端加入一个相应电平,检查输出电平是否正确。否正确。单片机系统大都是数字逻辑电路,使用电平检查法可首先检查出逻辑设计是否正确,选用的元器件是否符合要求,逻辑关系是否匹配,元器件连接关系是否符合要求等。72(2)在线仿真与动态调试)在线仿真与动态调试 用户样机中的硬件故障硬件故障(如各个部件内部存在的故障和部件之间连接的逻辑错误)主要靠联机在线仿真来排除联机在线仿真来排除 在断电情况

温馨提示

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

评论

0/150

提交评论