2022年单片机开发过程

更新时间:2023-04-13 21:52:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

*欧阳光明*创编 2021.03.07

第11章 MCS-51单片机的开发过程

欧阳光明(2021.03.07)

单片机本身只是一个微控制器,内部无任何程序,只有当它和其它器件、设备有机地组合在一起,并配置适当的工作程序后,才能构成一个单片机应用系统,完成规定的操作,具有特定的功能。单片机本身不具备自主开发能力。必须借助开发工具编制、调试、下载程序或对器件编程。开发工具的优劣,直接影响开发工作效率。本章介绍MCS-51单片机的常用开发工具和开发过程。

11.1 开发工具

一个单片机应用系统从提出任务到正式投入运行的过程称为单片机的开发过程,开发所用的设备就称为开发工具。

单片机的开发工具分软件工具和硬件工具。

软件工具包括编译程序,软件仿真器等。编译程序将用户编写的汇编语言、PL/M语言、C语言或其他语言源程序翻译成单片机可执行的机器码。软件仿真器提供虚拟的单片机运行环境,在通用计算机上模拟单片机的程序运行过程;软件仿真器具有单步、连续、断点运行等功能,在单片机程序的运行过程中随时观测单片机的运行状态,如内部RAM某单元的值,特殊功能寄存器的值等。但软件仿真只能验证程序的执行过程。

硬件工具主要有在线仿真器,编程器等。

在线仿真器是单片机开发系统中的一个主要部分。单片机在线仿真器本身就是一个单片机系统,它具有与所要开发的单片机应用*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07

系统相同的单片机型号。所谓仿真,就是用在线仿真器中的具有“透明性”和“可控性”的单片机来代替应用系统中的单片机工作,通过开发系统控制这个“透明的”,“可控性”的单片机的运行,即用开发系统的资源来仿真应用系统。这是软件和硬件一起综合排除故障的一种先进开发手段。所谓在线,就是仿真器中单片机运行和控制的硬件环境与应用系统单片机实际环境完全一致。在线仿真的方法,就是使单片机应用系统在实际运行环境中,实际外围设备情况下。用开发系统仿真,调试。

在线仿真器除了“出借”自己的单片机资源外,还可以“出借”存储器。在应用系统调试期间,其程序存储器芯片也可以拔掉,在线仿真器把自己的一部分存储器替换成应用系统的存储器,用于存故待调试的应用程序。用在线仿真器中的这部分存储器仿佛在使用自己设计的应用系统中的程序存储器一样。

在选择仿真器时要重点考虑以下几点:

1.系统是否具支持高级语言(PL/M,C)等。

2.是否过多地占用单片机的硬件资源。

3.实时性好坏。如仿真调试速度、最高工作频率等。

4.是否具有其他先进功能。如硬件测试、逻辑仪。

5.通用性好坏。

6.是否能对器件编程。

编程器的作用是将程序代码写入芯片。在使用仿真器将用户程序调试完毕后,需要使用编程器将调试好的程序写入单片机芯片中,撤掉仿真系统将写好程序的CPU插入系统独立运行。

*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07 11.2 单片机应用系统的一般形式

单片机主要用于实时控制,因此具有一般计算机控制系统的普遍特征。其典型应用系统应包括单片机系统、用于测控目的前向传感器输入通道,后向伺服控制输出通道以及基本的人机对话通道。大型复杂的测控系统是一个多机系统,还包括机与机之间进行通信的互相通道。

图11.1是一个典型单片机应用系统的结构框图。

1.前向通道的组成及其特点

前向通道是单片机与测控对象相连的部分,是应用系统的数据采集的输入通道。

来自被控对象的现场信息有多种多样。按物理量的特征可分为模拟量和数字、开关量两种。

对于数字量(频率、周期、相位、计数)的采集,输入比较简单。它们可直接作为计数输入、测试输入、I/O 口输入或中断源输入进行事件计数、定时计数,实现脉冲的频率、周期、相位及记数图

11.1典型单片机应用系统结构

*欧阳光明*创编 2021.03.07

测量。对于开关量采集,一般通过I/O口线或扩展I/O口线直接输入。一般被控对象都是交变电流、交变电压、大电流系统。而单片机属于数字弱电系统,因此在数字量和开关量采集通道中,要用隔离器件进行隔离(如光电耦合器件)。

模拟量输入通道结构比较复杂,一般包括变换器、隔离放大器、滤波、采样保持器、多路开关、A/D转换器及其接口电路,如图11.2所示。

变换器:变换器是各种传感器的总称,它采集现场的各种信号,并变换成电信号(电压信号或电流信号),以满足单片机的输入要求。现场信号各种各样,有电信号,如电压、电流、电磁量等;也有非电信号,如温度、湿度、压力、流量、位移量等,对于不同物理量应选择相应的传感器。

隔离放大与滤波:传感器的输出信号一般是比较微弱的,不能

图11.2 模拟信号的采集通道结构

满足单片机系统的输入要求。要经过放大处理后才能作为单片机系统的采集输入信号。还有,现场信息来自各种工业现场,夹带大量的噪音干扰信号。为提高单片机应用系统的可靠性,必须隔离或削减干扰信号,这是整个系统抗干扰设计的重点部位。

采样保持器:前向通道中的采样保持器有两个作用。一是实现*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07

多路模拟信号的同时采集;二是消除A/D转换器的“孔径误差”。

一般的单片机应用系统都是用一个A/D转换器分时对多路模拟信号进行转换并输入给单片机,而控制系统又要求单片机对同一时刻的现场采样值进行处理,否则将产生很大误差。用一个A/D转换器同时对多路模拟信号进行采样是由采样保持器来实现的。采样保持器在单片机的控制下,在某一个时刻可同时采样它所接电路的模拟信号的值,并能保持该瞬时值,直到下一次重新采样。

A/D转换器把一个模拟量转换成数字量总要经历一个时间过程。A/D转换器从接通模拟信号开始转换,到转换结束输出稳定的数字量,这一段时间称为孔径时间。对于一个动态模拟信号,在A/D转换器接通的孔径时间里,输入模拟信号值是不确定的,从而会引起输出的不确定性误差。在A/D转换器前加设采集保持器;在孔径时间里,使模拟信号保持某一个瞬时值不变,从而可消除孔径误差。

多路开关:用多路开关实现一个A/D转换器分时对多路模拟信号进行转换。多路开关

是受单片机控制的多路模拟电子开关,某一时刻需要对某路模拟信号进行转换,由单片机向多路开关发出路地址信息,使多路开关把该路模拟信号与A/D转换器接通,其它路模拟信号与A/D转换器不接通,实现有选择的转换。

A/D转换器:是前向通道中模拟系统与数字系统连接的核心部件。

综上所述,前向通道具有以下特点:

*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07

(1)与现场采集对象相连,是现场干扰进入的主要通道,是整个系统抗干扰设计的重点

部位。

(2)由于所采集的对象不同,有开关量、模拟量、数字量,:而这些都是由安放在测量现场的传感、变换装置产生的,许多参量信号不能满足单片机输入的要求,故有大量的、形式多样的信号变换调节电路,如测量放大器、F/V变换、A/D转换,放大、整形电路等。

(3)前向通道是一个模拟、数字混合电路系统,其电路功耗小,一般没有功率驱动要求。

2.后向通道的组成与特点

后向通道是应用系统的伺服驱动通道。作用于控制对象的控制信号通常有两种:一种是开关量控制信号,另一种是模拟控制信号。开关量控制信号的后向通道比较简单,只需采用隔离器件进行隔离及电平转换。模拟控制信号的后向通道,需要进行D/A转换、隔离放大、功率驱动等。

后向通道具有以下特点:

(1)后向通道是应用系统的输出通道,大多数需要功率驱动。

(2)靠近伺服驱动现场,伺服控制系统的大功率负荷易从后向通道进入单片机系统,故后向通道的隔离对系统的可靠性影响很大。

(3)根据输出控制的不同要求,后向通道电路有多种多样,如模拟电路、数字电路、开关电路等,输出信号形式有电流输出、电压输出、开关量输出设数字量输出等。

*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07 3.人机通道的结构及其特点

单片机应用系统中的人机通道是用户为了对应用系统进行干预(如启动、参数设置等),以及了解应用系统运行状态所设置的对话通道。主要有键盘、显示器、打印机等通道接口。

4.相互通道及其特点

单片机应用系统中的相互通道是解决计算机系统间相互通信的接口。在较大规模的多机测控系统中,就需要设计相互通道接口。11.3 单片机应用系统开发过程

单片机的应用系统和一般的计算机应用系统一样,也是由硬件和软件所组成。硬件指单片机、扩展的存储器、输入输出设备、控制设备、执行部件等组成的系统,软件是各种控制程序的总称。硬件和软件只有紧密相结合,协调一致,才能组成高性能的单片机应用系统。在系统的研制过程中,软硬件的功能总是在不断地调整,以便相互适应,相互配合,以达到最佳性能价格比。

单片机应用系统的研制过程包括总体设计、硬件设计、软件设件、在线仿真调试、程序固化等几个阶段,这几个阶段所完成的工作分叙如下。

一、总体设计

1.确定技术指标

在开始设计前,必须明确应用系统的功能和技术要求,综合考虑系统的先进性、可靠性、可维护性、成本及经济效益等。再参考国内外同类产品的资料,提出合理可行的技术指标,以达到最高的性能/价格比。

*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07 2.机型选择

机型选择的出发点及依据,可根据市场情况,挑选成熟、稳定、货源充足的机型产品。同时还应根据应用系统的要求考虑所选的单片机应具有较高的性能/价格之比。另一方面为提高经济效率,缩短研制周期,最好选用最熟悉的机种和器件。采用性能优良的单片机开发工具也能加快系统的研制过程。

3.器件选择

应用系统除单片机以外,系统通常还有传感器、模拟电路、输入输出电路等器件和设备。这些部件的选择应符合系统的精度、速度和可靠性等方面的要求。

4.软、硬件功能划分

系统硬件和软件的设计是紧密联系在一起的,在某些场合硬件和软件具有一定的互换性。为了降低成本、简化硬件结构,某些可由软件来完成的工作尽量采用软件:若为了提高工作速度、精度、减少软件研制的工作量、提高可靠性也可采用硬件来完成。总之硬、软件两者是相辅相成的,可根据实际应用情况来合理选择。总体设计完成后,软硬件所承担的任务确定后,可分别进行软硬件的设计。

二、硬件设计

硬件设计的主要任务是根据总体设计要求,以及在所选机型的基础上,确定系统扩展所要用的存储器、I/O电路、A/D及有关外围电路等,然后设计出系统的电路原理图。在硬件设计的各个环节所进行的工作介绍如下。

*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07 1.程序存储器的设计:可作为程序存储器的芯片有EPROM和EEPROM两种,从它们的价格和性能特点上考虑,对于大批量生产的已成熟的应用系统宜选用EPROM。而EPROM芯片的容量不同其价格相差并不大一般宜选用速度高、容量较大的芯片,这样可使译码电路简单,且为软件扩展留有一定的余地。

2.数据存储器和输入/输出接口的设计:对于数据存储器的容量要求.各个系统之问差别比较大。若要求的容量不大可以选用多功能的RAM、I/O扩展芯片如8155等,若要求较大容量的RAM,原则上应选用芯片容量较大的片子以减少RAM芯片数量而简化硬件线路。在选择I/O接口电路时应从体积、价格、功能、负载等几个方面来考虑。标准的可编程接口电路8255、8155接口简单、使用方便、功能强、对总线负载小、因而应用很广泛。但对于有些要求口线很少的应用系统,则可采用TTL电路,这样可提高口线的利用率,且驱动能力较大。总之应根据应用系统总的输入输出要求来合理选择接口电路。对于A/D、D/A电路芯片的选择原则应根据系统对它的速度、精度和价格的要求而确定。除此之外还应考虑和系统中的传感器、放大器相匹配问题。

3.地址译码电路的设计:MCS—5l系统有充足的存储器空间,包括64KB程序存储器和64KB数据存储器,在应用系统中一般不需要这么大的容量。为了简化硬件线路,同时还要使所用到的存储器空间地址的连续性,通常采用译码器和线选法相结合的办法。

4.总线驱动器的设计:MCS—5l系列单片机扩展功能比较强,但扩展总线负载能力有限。若所扩展的电路负载超过总线负载能力*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07

时,系统便不能可靠地工作。此情况下必须在总线上加驱动器。总线驱动器不仅能提高端口总线的驱动能力,而且可提高系统抗干扰性。常用的总线驱动器为双向8路三态缓冲器74LS245、单向8路三态缓冲器74LS244等。

5.其它外围电路的设计:单片机主要用于实时控制,应用系统具有一般计算机控制系统的典型特征,系统硬件设计包括与测量、控制有关的外围电路。例如键盘、显示器、打印机、开关量输入/输出设备、模拟量/数字量的转换设备、采样、放大等外围电路.6.可靠性设计:单片机应用系统的可靠性是一项最重要最基本的技术指标.这是硬件设计时必须考虑的—个指标。

可靠性是指在规定的条件下,规定的时间内完规定功能的能力。规定的条件包括环境条件(如温度、湿度、振动等)、供电条件等;规定的时间一般指平均故障时间、平均无故障时间、连续正常运转时间等;规定的功能随单片机的应用系统不同而不同。

单片机应用系统在实际工作中,可能会受到各种外部和内部的干扰,使系统工作产生错误或故障,为了减少这种错误和故障,就要采取各种提高可靠性的措施。常用的措施有;

(1)提高元器件的可靠性:在系统硬件设计和加工时应注意选用质量好的电子元器件、接插件、要进行严格的测试、筛选和老化,同时设计的技术参数应留有余量。

(2)提高印刷电路板和组装的质量,设计电路板时布线及接地方法要符合要求。

(3)对供电电源采取抗干扰措施。例如用带屏蔽层的电源变压

*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07

器、加电源低通滤波器、电源变压器的容量应留有余地等措施。

(4)输入输出通道抗干扰措施:可采用光电隔离电路、双绞线等提高抗干扰能力。

三、软件设计

在应用系统研制中,软件设计是工作量最大而也是最重要的一环,其设计的一般方法和步骤如下。

1.系统定义

系统定义是指在软件设计前,首先要进一步明确软件所要完成的任务,然后结合硬件结构,而确定软件承担的任务细节。其软件定义内容有;

(1)定义各输入/输出的功能,信号的类别、电平范围、与系统接口方式、占用口地址、读取的输入方式等。

(2)定义分配存储器空间,包括系统主程序、常数表格、功能子程序块的划分、人口地址表等。

(3)若有断电保护措施,应定义数据暂存区标志单元等。

(4)面板开关,按键等控制输入量的定义与软件编制密切有关,系统运行过程的显示、运算结果的显示、正常运行和出错显示等也是由软件完成的。所以事先要给予以定义。

2.软件结构设计

合理的软件结构是设计出一个性能优良的单片机应用系统软件的基础,必须充分重视。依据系统的定义,可把整个工作分解为若干相对独立的操作,再考虑各操作之间的相互联系及时间关系而设计出一个合理的软件结构。

*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07 对于简单的单片机应用系统,可采用顺序结构设计方法,其系统软件由主程序和若干个中断服务程序构成。明确主程序和中断服务程序完成的操作及指定各中断的优先级。

对于复杂的实时控制系统,可采用实时多任务操作系统,此操作系统应具备任务调度、实时控制、实时时钟、输入输出和中断控制、系统调用、多个任务并行运行等功能。以提高系统的实时性和并行性。

在程序设计方法上,模块程序设计是单片机应用中最常用的程序设计方法。这种模块化程序便于设汁和调试、容易完成并可供多个程序共享等优点,但各模块之间的连接有一定的难度。根据需要也可采用自上而下的程序设计方法,此方法是先从主程序开始设计,然后再编制各从属的程序和子程序。这种方法比较符合人们的日常思维。缺点是上一级的程序错误会对整个程序产生影响。软件结构设计和程序设计方法确定后,根据系统功能定义,可先画出程序粗框图,再对粗框图进行扩充和具体化,即对存储器、寄存器、标志位等工作单元作具体的分配和说明,再绘制出详细的程序流程图(细框图)。

程序流程图设计出以后,便可着手编写程序,再经编译、调试,正常运行后,固化到EPROM中去,完成了整个应用系统的设计。

四、应用系统的安装调试

单片机应用系统设计完成后,依据硬件的设计试制和组装样机及软件设计完成后,便进入系统的调试阶段。调试单片机应用系统*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07

的一般方法如下。

(一)硬件调试方法

单片机应用系统的硬件和软件调试是分不开的,许多硬件故障是在软件调试时才发现的。但通常是应先排除系统中明显的硬件故障后才和软件结合起来调试。

1.常见的硬件故障

(1)逻辑错误:样机硬件的逻辑错误是由于设计错误或加工过程中的工艺性错误所造成的。这类错误包括错线、开路、短路、相位错等。

(2)元器件失效:有两方面原因,一是器件本身已损坏或性能不符合要求;二是由于组装错误造成元器件失效,如电解电容、二极管的极性以及集成电路安装方向错误等。

(3)可靠性差:引起可靠性差的原因很多,如金属过孔、接插件接触不良会造成系统时好时坏,经不起振动;内部和外部的干扰、电源纹波系数大、器件负载过大等造成逻辑电平不稳,走线和布局不合理等也会引起系统可靠性差。

(4)电源故障:若样机存在电源故障、则加电后将造成器件损坏。符合设计要求,电源引线和插座不对、功率不足、负载能力差等。

2.调试方法

(1)脱机调试:在样机加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号、规格和安装是否符合要求。应特别注意电源的走线,防止电*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07

源线之间的短路和极性错误,并重点检查扩展系统总线是否存在相互间的短路或与其它信号线的短路。

对于样机所用电源事先必须单独调试,调试好后.检查其电压值、负载能力、极性等均符合要求,才能加到系统的各个部件上。在不插片子的情况下,加电检查各插件上引脚的电位,仔细测量各点电位是否正常,尤其应注意单片机插座上各点电位是否正常,若有高压,联机时将会损坏开发装置。

(2)联机调试:通过脱机调试可排除一些明显的硬件故障。有些故障还是要通过联机调试才扰发现和排除。联机前先断电,将单片机开发系统的仿真头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地是否良好。

通电后执行开发机的读写指令,对用户样机的存储器、I/O端口进行读写操作、逻辑检查,若有故障,可用示波器观察有关波形(如选中的译码器输出波形、读写控制信号、地址数据波形以及有关控制电平)。通过对波形的观察分析,寻找故障原因,并进一步排除故障。可能的故障有:线路连接上有逻辑错误、有开路或短路现象、集成电路失效等。

在用户系统的样机(主机部分)调试好后。可以插上用户系统的其他外围部件如键盘、显示器、输出驱动板、A/D、D/A板等.再将这些电路进行初步调试。

在调试过程中若发现用户系统工作不稳定,可能有下列情况:电源系统供电电流不足,联机时公共地线接触不良;用户系统主板负载过大;用户的各级电源滤波不完善等。对这些问题一定要*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07

认真查出原因,加以排除。

软件调试与所选用的软件结构和程序设计技术有关。如果采用模块程序设计技术,则逐个模块分别调试。调试各子程序时一定要符合现场环境,即入口条件和出口条件。调试的手段可采用单步或设断点运行方式,通过检查用户系统CPU的现场、RAM的内容和I/O口的状态,检查程序执行结果是否符合设计要求。通过检测可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中不断调整用户系统的软件和硬件,逐步通过一个一个程序模块。

各模块通过以后,可以把有关的功能块联合起来一起进行综合调试。在这个阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,标志位的建立和清除在设计上有没有失误,堆栈区域有无溢出,输入设备的状态是否正常等等。若用户系统是在开发机的监控程序下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。

单步和断点调试后,还应进行连续调试,这是因为单步运行只能验证程序的正确与否,而不能确定定时精度、CPU的实时响应等问题。待全部调试完成后.应反复运行多次,除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求、安排的用户操作是否合理等,必要时再作适当的修正。

如果采用实时多任务操作系统,一般是逐个任务进行调试.调试方法与上基本相似,只是实时多任务操作系统的应用程序是由若*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07

干个任务程序组成,—般是逐个任务进行调试,在调试某一个任务时,同时也调试相关的子程序、中断服务程序和一些操作系统的程序。调试好以后,再使各个任务程序同时运行,如果操作系统无错误,一般情况下系统就能正常运转。

软件和硬件联调完成以后,反复运行正常则可将用户系统程序固化到EPROM 中,插入用户样机后,用户系统即能脱离开发系统独立工作,至此系统研制完成。

11.4 开发实例

交通规则规定车辆转弯时必须开转向灯,转向灯的闪烁由闪光继电器控制。在闪光继电器的制造过程中需对继电器的参数进行测试。本节以闪光继电器的参数测试装置为例介绍单片机应用系统的开发过程。

一、 系统要求

测试闪光继电器的闪光频率、占空比。闪光频率的测试范围位0~999Hz/Min ,占空比位。0~99%。

二、 硬件设计

根据系统要求,考虑到

系统小型化、低功耗。采

用89C51单片机做控制

器。5位LED 数码管显示

闪光频率及占空比。

89C51单片机是ATMEL 公司信号 处理 电路 单片机 LED 显示 电路 图11.3系统框图

图11.4信号处理电路

*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07 出品的具有MCS-51内核的FLASH 单片机,内含4KB FLASH ROM 。内部结构与指令系统与MCS-51单片机兼容。

系统硬件框图由图11。3所示。系统由信号处理电路、单片机、LED 显示电路组成。信号处理电路将闪光继电器的输出信号转换成TTL 电平。单片机测量输入信号的频率及占空比,LED 显示电路显示测量结果。

1. 信号处理电路

信号处理电路如图11.4所示。比较器LM393将闪光继电器的输出信号转换成TTL 电平后,送AT89C51单片机的P1.4。 2. 单片机电路

由AT89C51及时钟、复位电路组

成。见图11.5

3. LED 数码管显示电路

数码管显示电路的设计方法有很

多,本例采用ZLG7289A 串行接口

LED 数码管显示及键盘管理芯片做

显示电路。优点是串行接口占用较少

的I/O 线,线路设计简单,由于

ZLG7289A 采用动态显示控制,所以大大降低了显示电路功耗。显示程序设计也相对简单。单片ZLG7289A 可以控制8个LED 数码管及64键。ZLG7289A 在系统中的应用见图11.6 图11.5 单片机电路

*欧阳光明*创编 2021.03.07 图中SA、SB、SC、SD、SE、SF、SG为数码管的段选信号,DP为小数点信号。DIG3~DIG7为数码管的位选信号,只有位选信

图11.6 显示接口电路

号有效的数码管被点亮。写入控制命令后ZLG7289A扫描方式自动轮流点亮8个数码管。KEY为按键有效输出线,DIO为SPI接口数据线,CLK为SPI接口时钟线,CS为片选线。分别接AT89C51的P1.0、P1.1、P1.2、P1.3。RST为ZLG7289A的复位线。

三、软件设计

(一)程序流程

1.主程序流程

主程序先初始化定时器及中断,然后进入测量及显示循环。

2.测量程序流程

频率及占空比测量程序如图所示,用定时/计数器0测量输入为高的时间。用定时/计数器1测量输入信号周期。定时/计数器的控制采用查询方式。开始测量后先等待输入变低,在输入变高后同时*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07 启动T1,T0计数。然后等待输入变低,当输入变低后停止T0计数,这时T0所计时间为输入为高的时间。当输入再次变高后停止T2计数,这时T2所计时间为输入信号周期。

AT89C51采用6MHZ 时钟,定时/计数

器从0开始计数,每2uS 计数值加一,到

定时器/计数器溢出时最大计时时间为

131ms ,程序使用软件计数器记录定时/计

数器的溢出次数,扩大定时/计数器的计数

范围。

(二)ZLG7289编程简介 显示程序将测量频率转换成以次/每分种为单

位显示,将占空比转换成小数显示。ZLG7289A

的显示控制命令分2个字节。如图11.9所示。

命令由二个字节组成前半部分为指令其中a2 a1

a0 为位地址,具体分配如下(显示位编号请参阅

典型应用电路图) d0~ d3 为数据收到此指令时zlg7289A 按以下规则

译码方式0 进行译码如下表,小数点的显示由DP

位控制DP=1 时小数点显示DP=0 时小数点不显示

zlg7289A 采用串行方式与微处理器通讯串行

数据从DATA 引脚送入芯片并由CLK 端同步,当片选信号变为低电平后DATA 引脚上的数据在CLK 引脚的上升沿被写入zlg7289A 的缓冲寄存器,zlg7289A 的指令结构有三种类型

图11.7 主程序流程

图11.8 测量程序流程

*欧阳光明*创编 2021.03.07

1.不带数据的纯指令

指令的宽度为8 个BIT 即微处理器需发送8 个CLK 脉冲

2.带有数据的指令

指令宽度为16 个BIT 即微处理器需发送16 个CLK 脉冲

3.读取键盘数据指令

指令宽度为16 个BIT ,前8 个为微处理器发送到zlg7289A 的指

图11.9 ZLG7289显示控制命令格式

令,后8 个BIT 为zlg7289A 返回的键盘代码。执行此指令时,zlg7289A 的DATA 端在第9 个CLK 脉冲的上升沿变为输出状态,并与第16 个脉冲的下降沿恢复为输入状态,等待接收下一个指令。

图11.10 位地址编码

键盘部分说明此处略,详细请访问47ba88d5944bcf84b9d528ea81c758f5f71f2995 获得详细资料。

串行接口时序如图所示:

三、程序及注释

#include

#include

sbit CS=P1^3;/*ZLG7289片选线*/

sbit CLK=P1^2;/*时钟线*/

*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07

*欧阳光明*创编 2021.03.07 sbit DIO=P1^1;/*数据线*/

sbit pulse_in=P1^4;

unsigned int t1=0;/*软计数器,记录定时器0的溢出次数*/ unsigned int t2=0;/*

软计数器,记录定

时器2的溢出次数

*/

unsigned int freq;/*

频率*/

unsigned int zkb;/*占

空比*/

void delay50()/*延时

50us*/

{

图11.11 指令格式

图11.12 显示译码表

本文来源:https://www.bwwdw.com/article/a7ul.html

Top