单片机开发过程

上传人:痛*** 文档编号:102205048 上传时间:2022-06-06 格式:DOC 页数:13 大小:1.35MB
返回 下载 相关 举报
单片机开发过程_第1页
第1页 / 共13页
单片机开发过程_第2页
第2页 / 共13页
单片机开发过程_第3页
第3页 / 共13页
点击查看更多>>
资源描述
word第11章 MCS-51单片机的开发过程单片机本身只是一个微控制器,部无任何程序,只有当它和其它器件、设备有机地组合在一起,并配置适当的工作程序后,才能构成一个单片机应用系统,完成规定的操作,具有特定的功能。单片机本身不具备自主开发能力。必须借助开发工具编制、调试、下载程序或对器件编程。开发工具的优劣,直接影响开发工作效率。本章介绍MCS-51单片机的常用开发工具和开发过程。111 开发工具 一个单片机应用系统从提出任务到正式投入运行的过程称为单片机的开发过程,开发所用的设备就称为开发工具。单片机的开发工具分软件工具和硬件工具。软件工具包括编译程序,软件仿真器等。编译程序将用户编写的汇编语言、PL/M语言、C语言或其他语言源程序翻译成单片机可执行的机器码。软件仿真器提供虚拟的单片机运行环境,在通用计算机上模拟单片机的程序运行过程;软件仿真器具有单步、连续、断点运行等功能,在单片机程序的运行过程中随时观测单片机的运行状态,如部RAM某单元的值,特殊功能寄存器的值等。但软件仿真只能验证程序的执行过程。硬件工具主要有在线仿真器,编程器等。在线仿真器是单片机开发系统中的一个主要部分。单片机在线仿真器本身就是一个单片机系统,它具有与所要开发的单片机应用系统相同的单片机型号。所谓仿真,就是用在线仿真器中的具有“透明性”和“可控性”的单片机来代替应用系统中的单片机工作,通过开发系统控制这个“透明的”,“可控性”的单片机的运行,即用开发系统的资源来仿真应用系统。这是软件和硬件一起综合排除故障的一种先进开发手段。所谓在线,就是仿真器中单片机运行和控制的硬件环境与应用系统单片机实际环境完全一致。在线仿真的方法,就是使单片机应用系统在实际运行环境中,实际外围设备情况下。用开发系统仿真,调试。 在线仿真器除了“出借”自己的单片机资源外,还可以“出借”存储器。在应用系统调试期间,其程序存储器芯片也可以拔掉,在线仿真器把自己的一部分存储器替换成应用系统的存储器,用于存故待调试的应用程序。用在线仿真器中的这部分存储器仿佛在使用自己设计的应用系统中的程序存储器一样。在选择仿真器时要重点考虑以下几点:1 系统是否具支持高级语言(PL/M,C)等。2 是否过多地占用单片机的硬件资源。3 实时性好坏。如仿真调试速度、最高工作频率等。4 是否具有其他先进功能。如硬件测试、逻辑仪。5 通用性好坏。6 是否能对器件编程。编程器的作用是将程序代码写入芯片。在使用仿真器将用户程序调试完毕后,需要使用编程器将调试好的程序写入单片机芯片中,撤掉仿真系统将写好程序的CPU插入系统独立运行。112 单片机应用系统的一般形式 单片机主要用于实时控制,因此具有一般计算机控制系统的普遍特征。其典型应用系统应包括单片机系统、用于测控目的前向传感器输入通道,后向伺服控制输出通道以及基本的人机对话通道。大型复杂的测控系统是一个多机系统,还包括机与机之间进行通信的互相通道。图111是一个典型单片机应用系统的结构框图。1前向通道的组成及其特点 前向通道是单片机与测控对象相连的部分,是应用系统的数据采集的输入通道。 来自被控对象的现场信息有多种多样。按物理量的特征可分为模拟量和数字、开关量两种。 对于数字量(频率、周期、相位、计数)的采集,输入比较简单。它们可直接作为计数输入、测试输入、I/O口输入或中断源输入进行事件计数、定时计数,实现脉冲的频率、周期、相位及记数测量。对于开关量采集,一般通过I/O口线或扩展IO口线直接输入。一般被控对象都是交变电流、交变电压、大电流系统。而单片机属于数字弱电系统,因此在数字量和开关量采集通道中,要用隔离器件进行隔离(如光电耦合器件)。 模拟量输入通道结构比较复杂,一般包括变换器、隔离放大器、滤波、采样保持器、 多路开关、A/D转换器及其接口电路,如图11.2所示。 变换器:变换器是各种传感器的总称,它采集现场的各种信号,并变换成电信号(电压信号或电流信号),以满足单片机的输入要求。现场信号各种各样,有电信号,如电压、电流、电磁量等;也有非电信号,如温度、湿度、压力、流量、位移量等,对于不同物理量应选择相应的传感器。 图11.2 模拟信号的采集通道结构 隔离放大与滤波:传感器的输出信号一般是比较微弱的,不能满足单片机系统的输入要求。要经过放大处理后才能作为单片机系统的采集输入信号。还有,现场信息来自各种工业现场,夹带大量的噪音干扰信号。为提高单片机应用系统的可靠性,必须隔离或削减干扰信号,这是整个系统抗干扰设计的重点部位。 采样保持器:前向通道中的采样保持器有两个作用。一是实现多路模拟信号的同时采集;二是消除A/D转换器的“孔径误差”。 一般的单片机应用系统都是用一个A/D转换器分时对多路模拟信号进行转换并输入给单片机,而控制系统又要求单片机对同一时刻的现场采样值进行处理,否则将产生很大误差。用一个A/D转换器同时对多路模拟信号进行采样是由采样保持器来实现的。采样保持器在单片机的控制下,在某一个时刻可同时采样它所接电路的模拟信号的值,并能保持该瞬时值,直到下一次重新采样。A/D转换器把一个模拟量转换成数字量总要经历一个时间过程。AD转换器从接通模拟信号开始转换,到转换结束输出稳定的数字量,这一段时间称为孔径时间。对于一个动态模拟信号,在A/D转换器接通的孔径时间里,输入模拟信号值是不确定的,从而会引起输出的不确定性误差。在A/D转换器前加设采集保持器;在孔径时间里,使模拟信号保持某一个瞬时值不变,从而可消除孔径误差。多路开关:用多路开关实现一个A/D转换器分时对多路模拟信号进行转换。多路开关是受单片机控制的多路模拟电子开关,某一时刻需要对某路模拟信号进行转换,由单片机向多路开关发出路地址信息,使多路开关把该路模拟信号与AD转换器接通,其它路模拟信号与A/D转换器不接通,实现有选择的转换。A/D转换器:是前向通道中模拟系统与数字系统连接的核心部件。综上所述,前向通道具有以下特点: (1)与现场采集对象相连,是现场干扰进入的主要通道,是整个系统抗干扰设计的重点部位。 (2)由于所采集的对象不同,有开关量、模拟量、数字量,:而这些都是由安放在测量现场的传感、变换装置产生的,许多参量信号不能满足单片机输入的要求,故有大量的、形式多样的信号变换调节电路,如测量放大器、F/V变换、A/D转换,放大、整形电路等。 (3)前向通道是一个模拟、数字混合电路系统,其电路功耗小,一般没有功率驱动要求。 2后向通道的组成与特点 后向通道是应用系统的伺服驱动通道。作用于控制对象的控制信号通常有两种:一种是开关量控制信号,另一种是模拟控制信号。开关量控制信号的后向通道比较简单,只需采用隔离器件进行隔离及电平转换。模拟控制信号的后向通道,需要进行DA转换、隔离放大、功率驱动等。 后向通道具有以下特点: (1)后向通道是应用系统的输出通道,大多数需要功率驱动。 (2)靠近伺服驱动现场,伺服控制系统的大功率负荷易从后向通道进入单片机系统,故后向通道的隔离对系统的可靠性影响很大。 (3)根据输出控制的不同要求,后向通道电路有多种多样,如模拟电路、数字电路、开关电路等,输出信号形式有电流输出、电压输出、开关量输出设数字量输出等。 3人机通道的结构及其特点 单片机应用系统中的人机通道是用户为了对应用系统进行干预(如启动、参数设置等),以及了解应用系统运行状态所设置的对话通道。主要有键盘、显示器、打印机等通道接口。 4相互通道及其特点 单片机应用系统中的相互通道是解决计算机系统间相互通信的接口。在较大规模的多机测控系统中,就需要设计相互通道接口。 113 单片机应用系统开发过程单片机的应用系统和一般的计算机应用系统一样,也是由硬件和软件所组成。硬件指单片机、扩展的存储器、输入输出设备、控制设备、执行部件等组成的系统,软件是各种控制程序的总称。硬件和软件只有紧密相结合,协调一致,才能组成高性能的单片机应用系统。在系统的研制过程中,软硬件的功能总是在不断地调整,以便相互适应,相互配合,以达到最佳性能价格比。 单片机应用系统的研制过程包括总体设计、硬件设计、软件设件、在线仿真调试、程序固化等几个阶段,这几个阶段所完成的工作分叙如下。一、总体设计1确定技术指标在开始设计前,必须明确应用系统的功能和技术要求,综合考虑系统的先进性、可靠性、可维护性、成本及经济效益等。再参考国外同类产品的资料,提出合理可行的技术指标,以达到最高的性能/价格比。2机型选择机型选择的出发点及依据,可根据市场情况,挑选成熟、稳定、货源充足的机型产品。同时还应根据应用系统的要求考虑所选的单片机应具有较高的性能/价格之比。另一方面为提高经济效率,缩短研制周期,最好选用最熟悉的机种和器件。采用性能优良的单片机开发工具也能加快系统的研制过程。3器件选择应用系统除单片机以外,系统通常还有传感器、模拟电路、输入输出电路等器件和设备。这些部件的选择应符合系统的精度、速度和可靠性等方面的要求。 4软、硬件功能划分系统硬件和软件的设计是紧密联系在一起的,在某些场合硬件和软件具有一定的互换性。为了降低成本、简化硬件结构,某些可由软件来完成的工作尽量采用软件:若为了提高工作速度、精度、减少软件研制的工作量、提高可靠性也可采用硬件来完成。总之硬、软件两者是相辅相成的,可根据实际应用情况来合理选择。总体设计完成后,软硬件所承担的任务确定后,可分别进行软硬件的设计。二、硬件设计硬件设计的主要任务是根据总体设计要求,以及在所选机型的基础上,确定系统扩展所要用的存储器、IO电路、AD及有关外围电路等,然后设计出系统的电路原理图。在硬件设计的各个环节所进行的工作介绍如下。1程序存储器的设计:可作为程序存储器的芯片有EPROM和EEPROM两种,从它们的价格和性能特点上考虑,对于大批量生产的已成熟的应用系统宜选用EPROM。而EPROM芯片的容量不同其价格相差并不大一般宜选用速度高、容量较大的芯片,这样可使译码电路简单,且为软件扩展留有一定的余地。2数据存储器和输入输出接口的设计:对于数据存储器的容量要求各个系统之问差别比较大。若要求的容量不大可以选用多功能的RAM、IO扩展芯片如8155等,若要求较大容量的RAM,原则上应选用芯片容量较大的片子以减少RAM芯片数量而简化硬件线路。在选择IO接口电路时应从体积、价格、功能、负载等几个方面来考虑。标准的可编程接口电路8255、8155接口简单、使用方便、功能强、对总线负载小、因而应用很广泛。但对于有些要求口线很少的应用系统,则可采用TTL电路,这样可提高口线的利用率,且驱动能力较大。总之应根据应用系统总的输入输出要求来合理选择接口电路。对于AD、DA电路芯片的选择原则应根据系统对它的速度、精度和价格的要求而确定。除此之外还应考虑和系统中的传感器、放大器相匹配问题。3地址译码电路的设计:MCS5l系统有充足的存储器空间,包括64KB程序存储器和64KB数据存储器,在应用系统中一般不需要这么大的容量。为了简化硬件线路,同时还要使所用到的存储器空间地址的连续性,通常采用译码器和线选法相结合的办法。4总线驱动器的设计:MCS5l系列单片机扩展功能比较强,但扩展总线负载能力有限。若所扩展的电路负载超过总线负载能力时,系统便不能可靠地工作。此情况下必须在总线上加驱动器。总线驱动器不仅能提高端口总线的驱动能力,而且可提高系统抗干扰性。常用的总线驱动器为双向8路三态缓冲器74LS245、单向8路三态缓冲器74LS244等。5其它外围电路的设计:单片机主要用于实时控制,应用系统具有一般计算机控制系统的典型特征,系统硬件设计包括与测量、控制有关的外围电路。例如键盘、显示器、打印机、开关量输入输出设备、模拟量数字量的转换设备、采样、放大等外围电路6可靠性设计:单片机应用系统的可靠性是一项最重要最基本的技术指标这是硬件设计时必须考虑的个指标。可靠性是指在规定的条件下,规定的时间完规定功能的能力。规定的条件包括环境条件(如温度、湿度、振动等)、供电条件等;规定的时间一般指平均故障时间、平均无故障时间、连续正常运转时间等;规定的功能随单片机的应用系统不同而不同。单片机应用系统在实际工作中,可能会受到各种外部和部的干扰,使系统工作产生错误或故障,为了减少这种错误和故障,就要采取各种提高可靠性的措施。常用的措施有;(1)提高元器件的可靠性:在系统硬件设计和加工时应注意选用质量好的电子元器件、接插件、要进行严格的测试、筛选和老化,同时设计的技术参数应留有余量。(2)提高印刷电路板和组装的质量,设计电路板时布线及接地方法要符合要求。(3)对供电电源采取抗干扰措施。例如用带屏蔽层的电源变压器、加电源低通滤波器、电源变压器的容量应留有余地等措施。(4)输入输出通道抗干扰措施:可采用光电隔离电路、双绞线等提高抗干扰能力。 三、软件设计在应用系统研制中,软件设计是工作量最大而也是最重要的一环,其设计的一般方法和步骤如下。1系统定义系统定义是指在软件设计前,首先要进一步明确软件所要完成的任务,然后结合硬件结构,而确定软件承担的任务细节。其软件定义容有;(1)定义各输入输出的功能,信号的类别、电平围、与系统接口方式、占用口地址、读取的输入方式等。(2)定义分配存储器空间,包括系统主程序、常数表格、功能子程序块的划分、人口地址表等。(3)若有断电保护措施,应定义数据暂存区标志单元等。(4)面板开关,按键等控制输入量的定义与软件编制密切有关,系统运行过程的显示、运算结果的显示、正常运行和出错显示等也是由软件完成的。所以事先要给予以定义。2软件结构设计合理的软件结构是设计出一个性能优良的单片机应用系统软件的基础,必须充分重视。依据系统的定义,可把整个工作分解为若干相对独立的操作,再考虑各操作之间的相互联系及时间关系而设计出一个合理的软件结构。对于简单的单片机应用系统,可采用顺序结构设计方法,其系统软件由主程序和若干个中断服务程序构成。明确主程序和中断服务程序完成的操作及指定各中断的优先级。对于复杂的实时控制系统,可采用实时多任务操作系统,此操作系统应具备任务调度、实时控制、实时时钟、输入输出和中断控制、系统调用、多个任务并行运行等功能。以提高系统的实时性和并行性。在程序设计方法上,模块程序设计是单片机应用中最常用的程序设计方法。这种模块化程序便于设汁和调试、容易完成并可供多个程序共享等优点,但各模块之间的连接有一定的难度。根据需要也可采用自上而下的程序设计方法,此方法是先从主程序开始设计,然后再编制各从属的程序和子程序。这种方法比较符合人们的日常思维。缺点是上一级的程序错误会对整个程序产生影响。软件结构设计和程序设计方法确定后,根据系统功能定义,可先画出程序粗框图,再对粗框图进行扩充和具体化,即对存储器、寄存器、标志位等工作单元作具体的分配和说明,再绘制出详细的程序流程图(细框图)。程序流程图设计出以后,便可着手编写程序,再经编译、调试,正常运行后,固化到EPROM中去,完成了整个应用系统的设计。四、应用系统的安装调试单片机应用系统设计完成后,依据硬件的设计试制和组装样机及软件设计完成后,便进入系统的调试阶段。调试单片机应用系统的一般方法如下。(一)硬件调试方法单片机应用系统的硬件和软件调试是分不开的,许多硬件故障是在软件调试时才发现的。但通常是应先排除系统中明显的硬件故障后才和软件结合起来调试。1常见的硬件故障 (1)逻辑错误:样机硬件的逻辑错误是由于设计错误或加工过程中的工艺性错误所造成的。这类错误包括错线、开路、短路、相位错等。 (2)元器件失效:有两方面原因,一是器件本身已损坏或性能不符合要求;二是由于组装错误造成元器件失效,如电解电容、二极管的极性以及集成电路安装方向错误等。 (3)可靠性差:引起可靠性差的原因很多,如金属过孔、接插件接触不良会造成系统时好时坏,经不起振动;部和外部的干扰、电源纹波系数大、器件负载过大等造成逻辑电平不稳,走线和布局不合理等也会引起系统可靠性差。 (4)电源故障:若样机存在电源故障、则加电后将造成器件损坏。符合设计要求,电源引线和插座不对、功率不足、负载能力差等。 2调试方法 (1)脱机调试:在样机加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号、规格和安装是否符合要求。应特别注意电源的走线,防止电源线之间的短路和极性错误,并重点检查扩展系统总线是否存在相互间的短路或与其它信号线的短路。 对于样机所用电源事先必须单独调试,调试好后检查其电压值、负载能力、极性等均符合要求,才能加到系统的各个部件上。在不插片子的情况下,加电检查各插件上引脚的电位,仔细测量各点电位是否正常,尤其应注意单片机插座上各点电位是否正常,若有高压,联机时将会损坏开发装置。 (2)联机调试:通过脱机调试可排除一些明显的硬件故障。有些故障还是要通过联机调试才扰发现和排除。联机前先断电,将单片机开发系统的仿真头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地是否良好。 通电后执行开发机的读写指令,对用户样机的存储器、IO端口进行读写操作、逻辑检查,若有故障,可用示波器观察有关波形(如选中的译码器输出波形、读写控制信号、地址数据波形以及有关控制电平)。通过对波形的观察分析,寻找故障原因,并进一步排除故障。可能的故障有:线路连接上有逻辑错误、有开路或短路现象、集成电路失效等。在用户系统的样机(主机部分)调试好后。可以插上用户系统的其他外围部件如键盘、显示器、输出驱动板、AD、DA板等再将这些电路进行初步调试。在调试过程中若发现用户系统工作不稳定,可能有下列情况:电源系统供电电流不足,联机时公共地线接触不良;用户系统主板负载过大;用户的各级电源滤波不完善等。对这些问题一定要认真查出原因,加以排除。软件调试与所选用的软件结构和程序设计技术有关。如果采用模块程序设计技术,则逐个模块分别调试。调试各子程序时一定要符合现场环境,即入口条件和出口条件。调试的手段可采用单步或设断点运行方式,通过检查用户系统CPU的现场、RAM的容和IO口的状态,检查程序执行结果是否符合设计要求。通过检测可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中不断调整用户系统的软件和硬件,逐步通过一个一个程序模块。各模块通过以后,可以把有关的功能块联合起来一起进行综合调试。在这个阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,标志位的建立和清除在设计上有没有失误,堆栈区域有无溢出,输入设备的状态是否正常等等。若用户系统是在开发机的监控程序下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。 单步和断点调试后,还应进行连续调试,这是因为单步运行只能验证程序的正确与否,而不能确定定时精度、CPU的实时响应等问题。待全部调试完成后应反复运行多次,除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求、安排的用户操作是否合理等,必要时再作适当的修正。 如果采用实时多任务操作系统,一般是逐个任务进行调试调试方法与上基本相似,只是实时多任务操作系统的应用程序是由若干个任务程序组成,般是逐个任务进行调试,在调试某一个任务时,同时也调试相关的子程序、中断服务程序和一些操作系统的程序。调试好以后,再使各个任务程序同时运行,如果操作系统无错误,一般情况下系统就能正常运转。 软件和硬件联调完成以后,反复运行正常则可将用户系统程序固化到EPROM中,插入用户样机后,用户系统即能脱离开发系统独立工作,至此系统研制完成。114 开发实例 交通规则规定车辆转弯时必须开转向灯,转向灯的闪烁由闪光继电器控制。在闪光继电器的制造过程中需对继电器的参数进行测试。本节以闪光继电器的参数测试装置为例介绍单片机应用系统的开发过程。一、 系统要求 测试闪光继电器的闪光频率、占空比。闪光频率的测试围位0999Hz/Min,占空比位。099%。二、 硬件设计信号处理电路单片机LED显示电路 根据系统要求,考虑到系统小型化、低功耗。采用89C51单片机做控制器。5位LED数码管显示闪光频率及占空比。 89C51单片机是ATMEL公司出品的具有MCS-51核的FLASH单片机,含4KB FLASH ROM。部结构与指令系统与MCS-51单片机兼容。 系统硬件框图由图11。3所示。系统由信号处理电路、单片机、LED显示电路组成。信号处理电路将闪光继电器的输出信号转换成TTL电平。单片机测量输入信号的频率及占空比,LED显示电路显示测量结果。 1 信号处理电路信号处理电路如图11.4所示。比较器LM393将闪光继电器的输出信号转换成TTL电平后,送AT89C51单片机的P1.4。2 单片机电路图11.5 单片机电路由AT89C51及时钟、复位电路组成。见图11.5 3 LED数码管显示电路 图11.6 显示接口电路图中SA、SB、SC、SD、SE、SF、SG为数码管的段选信号,DP为小数点信号。DIG3DIG7为数码管的位选信号,只有位选信号有效的数码管被点亮。写入控制命令后ZLG7289A扫描方式自动轮流点亮8个数码管。KEY为按键有效输出线,DIO为SPI接口数据线,CLK为SPI接口时钟线,为片选线。分别接AT89C51的P1.0、P1.1、P1.2、P1.3。为ZLG7289A的复位线。三、 软件设计(一)程序流程1 主程序流程主程序先初始化定时器及中断,然后进入测量及显示循环。2 测量程序流程频率及占空比测量程序如图所示,用定时/计数器0测量输入为高的时间。用定时/计数器1测量输入信号周期 。定时/计数器的控制采用查询方式。开始测量后先等待输入变低,在输入变高后同时启动T1,T0计数。然后等待输入变低,当输入变低后停止T0计数,这时T0所计时间为输入为高的时间。当输入再次变高后停止T2计数,这时T2所计时间为输入信号周期。初始化开始测量显示图11.7 主程序流程AT89C51采用6MHZ时钟,定时/计数器从0开始计数,每2uS计数值加一,到定时器/计数器溢出时最大计时时间为131ms,程序使用软件计数器记录定时/计数器的溢出次数,扩大定时/计数器的计数围。 (二)ZLG7289编程简介等待输入变低等待输入变高T1,T2开始计数T1停止计数等待输入变高T2停止计数等待输入变低图11.8 测量程序流程显示程序将测量频率转换成以次/每分种为单位显示,将占空比转换成小数显示。ZLG7289A的显示控制命令分2个字节。如图11.9所示。命令由二个字节组成前半部分为指令其中a2 a1 a0 为位地址,具体分配如下(显示位编号请参阅典型应用电路图)d0d3 为数据收到此指令时zlg7289A 按以下规则译码方式0 进行译码如下表,小数点的显示由DP 位控制DP=1 时小数点显示DP=0 时小数点不显示zlg7289A 采用串行方式与微处理器通讯串行数据从DATA 引脚送入芯片并由CLK 端同步,当片选信号变为低电平后DATA 引脚上的数据在CLK 引脚的上升沿被写入zlg7289A 的缓冲寄存器,zlg7289A 的指令结构有三种类型1. 不带数据的纯指令 指令的宽度为8 个BIT 即微处理器需发送8 个CLK 脉冲2带有数据的指令指令宽度为16 个BIT 即微处理器需发送16 个CLK 脉冲3读取键盘数据指令图11.10 位地址编码图11.9 ZLG7289显示控制命令格式指令宽度为16 个BIT ,前8 个为微处理器发送到zlg7289A 的指令,后8 个BIT 为zlg7289A 返回的键盘代码。执行此指令时,zlg7289A 的DATA 端在第9 个CLK 脉冲的上升沿变为输出状态,并与第16 个脉冲的下降沿恢复为输入状态,等待接收下一个指令。键盘部分说明此处略,详细请访问.zlgmcu.获得详细资料。串行接口时序如图所示:三、程序及注释#include#includesbit CS=P13;/*ZLG7289片选线*/sbit CLK=P12;/*时钟线*/sbit DIO=P11;/*数据线*/图11.11 指令格式sbit pulse_in=P14;unsigned int t1=0;/*软计数器,记录定时器0的溢出次数*/图11.12 显示译码表unsigned int t2=0;/*软计数器,记录定时器2的溢出次数*/unsigned int freq;/*频率*/unsigned int zkb;/*占空比*/void delay50()/*延时50us*/char i;for(i=1;i28;i+);void delay10()/*延时10us*/char i;for(i=0;i12;freq=(int)14648/i;j=TH0*256+TL0+t1*65536;if(i-j)!=0)zkb=j*100/k;elsezkb=0;void sent(unsigned char sent_buf)char i;CLK=0;/*置SPI时钟线为低*/CS=0;/*置SPI片选线为低*/delay50();/*延时50us*/for(i=0;i8;i+)/*发送8位数据*/sent_buf=sent_buf1;/*从数据最高位开始,将要发发送的数据位移入进位位CY*/DIO=CY;/*数据位送数据线*/CLK=1;/* 置SPI时钟线为高*/delay10();/*延时10us*/CLK=0;/* 置SPI时钟线为低,发送完1位数据*/delay10();/*延时10us*/DIO=0;void hextobcd(int value) char number3,number2,number1; if(value=999) number3=value/100; number2=(value-=number3*100)/10; number1=(value-=number2*10); else number3=0x0a; number2=0x0a; number1=0x0a; /*以上程序将每分钟闪烁次数转换成BCD码*/ sent(0x82); sent(number1); CS=1;/*发送百位数到ZLG7289显示*/ sent(0x83); sent(number2); CS=1;/*发送十位数*/ sent(0x84); sent(number3); CS=1;/*发送个位数*/ void hextobcd1(char value) char number2,number1; number2=value/10; number1=(value-=number2*10);/*将占空换成BCD码*/ sent(0x81);/*发占空比十位到ZLG7289显示*/ sent(number2); CS=1; sent(0x80);/*发送占空比个位*/ sent(number1); CS=1; void test()/*测试程序*/t1=0;t2=0;TH0=0;TL0=0;TH1=0;TL1=0; /*初始化定时器初值*/while(pulse_in=1); /*等待输入变低*/while(pulse_in=0); /*等待输入变高*/TR0=1;TR1=1; /*定时器0,1开始计数*/while(pulse_in=1); /*等待输入变低*/TR0=0; /*停止定时器0计数*/while(pulse_in=0); /*等待输入变高*/TR1=0; /*停止定时器1计数*/void timer0() interrupt 1 using 2/定时器0中断服务程序*/t1+;/*定时器0溢出次数加1*/void timer1() interrupt 3 using 2/*定时器1中断服务程序*/t2+;/*定时器1溢出次数加1*/main()TMOD=0x11; /*初始化定时器0,1方式1,定时方式*/TH0=0;TL0=0;TH1=0;TL1=0; /*初始化定时器初值*/IE=0x8a; /*允许定时器0,1中断,开放中断*/sent(0xa4); CS=1; /*初始化显示*/ delay50();/*延时*/while(1) int i; test();/*测试*/calc();/*计算频率及占空比*/ hextobcd(freq); /*显示频率*/ hextobcd1(zkb); /*显示占空比*/ for(i=0;i5000;i+);/*延时*/参考文献:1 胡汉才编著,单片机原理及其接口技术,:清华大学,1996年2 丁凤刚编著,单片机技术,:科学技术,1997年3 蔡美琴、为民、新群、荣娟编著,MCS-51系列单片机系统极其应用,高等教育,1988年4 振荣、晋明武、王毅平编著,MCS-51单片机原理及实用技术,:人民邮电,2000年5 薛钧义、彦斌编著,MCS-51/96系列单片微型计算机及其应用,:交通大学,1989年6毅刚、喜源、谭晓均编著,MCS-51单片机应用设计,:工业大学,19977 何立民编著,单片机应用系统设计,:航空航天大学8 王福瑞编著,单片微机测控系统设计大全,:航空航天大学,19989纪宗南编著,单片机外围器件实用手册(输入通道器件分册),:航空航天大学10邬宽明编著,单片机外围器件实用手册(数据传输接口器件分册),:航空航天大学11华主编,MCS-51系列单片机实用接口技术,:航空航天大学12 大友主编,微型计算机接口技术,:清华大学13 巧媛编著,单片机原理及应用,:电子工业,199714 余永权编著,FLASH单片机原理及应用,:电子工业,1997234 / 13
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!