计数定时器论文35_第1页
计数定时器论文35_第2页
计数定时器论文35_第3页
计数定时器论文35_第4页
计数定时器论文35_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、伊犁师范学院电信学院单片机原理及应用 课程设计报告书 指导教师: 霍加老师 专业班级: 电信12-2班 课题名称: 51单片机设计计数计数定时器 姓 名: 迪力穆拉提.麦麦提克日木学 号: 11071201135 日 期: 2014年12月20 日 AT89C51单片机设计智能计数定时器伊犁师范学院 电信12-2班 伊宁市 835000 迪力穆拉提 摘要: 随着时代的进步,行业的发展,计数定时器的应用也越来越广泛。但传统的计数定时器都是使用发条驱动式、电机传动式或电钟式等机械计数定时器。计数定时器相对产痛计数定时器来说,体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使

2、用。本设计采用AT89C52单片机为核心,阐述了系统工作原理,给出了软件流程。该计数定时器满足对电器的电源进行控制,同时要方便用户对计数定时器的操作。关键词:计数定时器;单片机;AT89C52;1 引言我们在日常生活中,经常碰到一些需要定时的事情,例如:印相或放大照片,需要定在零点几秒的时间,洗衣机洗涤衣物需要定在几分钟到几十分钟的时间,电风扇需要定在数十分钟的时间。完成这种定时的计数定时器有多种多样,在家用电器中采用机械计数定时器就是根据一般上弦钟表原理设计的,这种计数定时器虽然结构简单,成本低,维修也比较方便,但是它的触头频繁接触和断开,大大的缩减了它的使用寿命,也不利于进一步全自动化。在

3、技术突飞猛进的今天,计数定时器一定会逐步取而代之,这是不言而喻的。本文是基于52系列单片机设计的一种用于控制家用电器的设计方案。1.1课题的来源和意义本课题是通过导师筛选提出的,设计课题不一定很大,只要通过亲手做一遍全过程,完成一个产品制作,收获是很大的。本课题的意义在于通过设计和制作本课题把在学校学习到的知识融会贯通并应用到实际当中。做到学有所成,学有所用。并且希望通过本设计为节能减排做出贡献。1.2计数定时器的应用计数定时器在家用电器中经常用于延时自动关机、定时。延时自动关机可用于:收音机、电视机、录音机、催眠器、门灯、路灯、汽车头灯、转弯灯以及其他电器的延时断电及延时自停电源等。定时可用

4、于:照相定时曝光、定时闪光、定时放大、定时调速、定时烘箱、冰箱门开定时报警、水位定时报警、延时催眠器、延时电铃、延时锁、触摸定时开关等。例如:空调中的计数定时器,在工作一段时间之后便能自动切断电源停止工作。夏季夜间使用,入睡前先顶好时间,等睡熟后到了预定时间,空调自动关机。方便节能。计数定时器除了应用于家用电器外,还广泛地用于工业农业生产和服务设施,甚至军事等。1.3计数定时器的发展前景传统的计数定时器绝大多数都是发条驱动式、电机传动式或电钟式等机械计数定时器,部分器械中也有试用时间继电器的。相对于传统的计数定时器,计数定时器的体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适

5、于频繁使用。所以计数定时器的发展必定大有前途。同时随着现代技术的发展,计数定时器也在不断的进步,朝向着更多用途、更高精度、更小体积发展着。例如:一个可编程计数定时器,它可以设置20组开、关电源设置,可以当时钟使用,还也可以按星期组合让它在一周内的任意一天或几天按设置程序工作。而且它只有长12.5cm×宽5.5cm×厚5cm大小。且它的功耗特别小只有3W。可以说是小巧玲珑,节能省电。2 52单片机内部结构及计数原理2.1 52单片机内部机构52单片机内部有一个8位的CPU,同时CPU内部包含了运算器,控制器及若干寄存器。从上图中我们可以看到,在虚线框内的就是CPU的内部结构了

6、,8位的MCS-52单片机的CPU内部有数术逻辑单元ALU(Arithmetic Logic Unit)、累加器A(8位)、寄存器B(8位)、程序状态字PSW(8位)、程序计数器PC(有时也称为指令指针,即IP,16位)、地址寄存器AR(16位)、数据寄存器DR(8位)、指令寄存器IR(8位)、指令译码器ID、控制器等部件组成。1、运算器(ALU)的主要功能A)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。B)加、减、乘、除、加1、减1、比较等算术运算。C)与、或、异或、求补、循环等逻辑运算。D)位处理功能(即布尔处理器)。由于ALU内部没有寄存器,参加运

7、算的操作数,必须放在累加器A中。累加器A也用于存放运算结果。例如:执行指令 ADD A,B  执行这条指令时,累加器A中的内容通过输入口In_1输入ALU,寄存器B通过内部数据总线经输入口In_2输入ALU,A+B的结果通过ALU的输出口Out、内部数据总线,送回到累加器A。2、程序计数器PCPC的作用是用来存放将要执行的指令地址,共16位,可对64K ROM直接寻址,PC低8位经P0口输出,高8位经P2口输出。也就是说,程序执行到什么地方,程序计数器PC就指到哪里,它始终是跟蹿着程序的执行。我们知道,用户程序是存放在内部的ROM中的,我们要执行程序就要从ROM中一个个字节

8、的读出来,然后到CPU中去执行,那么ROM具体执行到哪一条呢?这就需要我们的程序计数器PC来指示。程序计数器PC具有自动加1的功能,即从存储器中读出一个字节的指令码后,PC自动加1(指向下一个存储单元)。3、指令寄存器IR指令寄存器的作用就是用来存放即将执行的指令代码。在这里我们先简单的了解下CPU执行指令的过程,首先由程序存储器(ROM)中读取指令代码送入到指令寄存器,经译码器译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。关于指令在单片机内部的执行过程,我们在后面将会以另一节课来进行详细的讲解。4、指令译码器ID用于对送入指令寄存器中的指令进行译码,所谓译码就是把指令转变成

9、执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信号,CPU控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。5、地址寄存器AR(16位)AR的作用是用来存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器PC产生,而指令中操作数所在的存储单元地址码,由指令的操作数给定。从上图中我们可以看到,地址寄存器AR通过地址总线AB与外部存储器相连。6、数据寄存器DR用于存放写入外部存储器或I/O端口的数据信息。可见,数据寄存器对输出数据具有锁存功能。数据寄存器与外部数据总线DB直接相连。7、时序

10、部件由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号2.2计数原理80C52单片机内部设有两个16位的可编程计数定时器/计数器。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在计数定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。 计数定时器/计数器的结构: 从上面计数定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。这些寄存器是用于存放定

11、时或计数初值的。此外,其内部还有一个8位的计数定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要是用于选定计数定时器的工作方式;TCON主要是用于控制计数定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当计数定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。 定时计数器的原理: 16位的计数定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。 当计数定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1

12、,直至计满溢出为止。显然,计数定时器的定时时间与系统的振荡频率有关。因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。如果晶振为12MHz,则计数周期为:T=1/(12×106)Hz×1/12=1s 这是最短的定时周期。若要延长定时时间,则需要改变计数定时器的初值,并要适当选择计数定时器的长度(如8位、13位、16位等)。     当计数定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电平。若一个机器周期采样值为1,下一个机器周

13、期采样值为0,则计数器加1。此后的机器周期S3P1期间,新的计数值装入计数器。所以检测一个由1至0的跳变需要两个机器周期,故外部事年的最高计数频率为振荡频率的1/24。例如,如果选用12MHz晶振,则最高计数频率为0.5MHz。虽然对外部输入信号的占空比无特殊要求,但为了确保某给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上。     当CPU用软件给计数定时器设置了某种工作方式之后,计数定时器就会按设定的工作方式独立运行,不再占用CPU的操作时间,除非计数定时器计满溢出,才可能中断CPU当前操作。CPU也可以重新设置计数

14、定时器工作方式,以改变计数定时器的操作。由此可见,计数定时器是单片机中效率高而且工作灵活的部件。     综上所述,我们已知计数定时器/计数器是一种可编程部件,所以在计数定时器/计数器开始工作之前,CPU必须将一些命令(称为控制字)写入定时/计数器。将控制字写入定时/计数器的过程叫计数定时器/计数器初始化。在初始化过程中,要将工作方式控制字写入方式寄存器,工作状态字(或相关位)写入控制寄存器,赋定时/计数初值。下面我们就提出的控制字的格式及各位的主要功能与大家详细的讲解。 控制寄存器 计数定时器计数器T0和T1有2个控制寄存器-TMOD和TCON,它们分别用来设置

15、各个计数定时器计数器的工作方式,选择定时或计数功能,控制启动运行,以及作为运行状态的标志等。其中,TCON寄存器中另有4位用于中断系统。 计数定时器/计数器的初始化: 由于计数定时器/计数器的功能是由软件编程确定的,所以一般在使用定时/计数器前都要对其进行初始化,使其按设定的功能工作。初始货的步骤一般如下:1、确定工作方式(即对TMOD赋值);2、预置定时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1);3、根据需要开放计数定时器/计数器的中断(直接对IE位赋值);4、启动计数定时器/计数器(若已规定用软件启动,则可把TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需给外

16、引脚步加启动电平。当实现了启动要求后,计数定时器即按规定的工作方式和初值开始计数或定时)。因为在不同工作方式下计数器位数不同,因而最大计数值也不同。现假设最大计数值为M,那么各方式下的最大值M值如下:方式0:M=213=8 192方式1:M=216=65 536方式2:M=28=256方式3:计数定时器0分成两个8位计数器,所以两个M均为256。 因为计数定时器/计数器是作“加1”计数,并在计数满溢出时产生中断,因此初值X可以这样计算:X=M-计数值计数定时器/计数器的四种工作方式:    定T0或T1无论用作计数定时器或计数器都有4种工作方式:方式0、方式1、方

17、式2和方式3。除方式3外,T0和T1有完全相同的工作状态。下面以T1为例,分述各种工作方式的特点和用法。 工作方式0: 13位方式由TL1的低5位和TH1的8位构成13位计数器(TL1的高3位无效)。为定时计数选择:CT0,T1为计数定时器,定时信号为振荡周期12分频后的脉冲;CTl,T1为计数器,计数信号来自引脚T1的外部信号。计数定时器T1能否启动工作,还受到了R1、GATE和引脚信号INT1的控制。由图中的逻辑电路可知,当GATE0时,只要TR11就可打开控制门,使计数定时器工作;当GATE1时,只有TR11且INT11,才可打开控制门。GATE,TR1,CT的状态选择由计数定时器的控制

18、寄存器TMOD,TCON中相应位状态确定,INT1则是外部引脚上的信号。在一般的应用中,通常使GATE0,从而由TRl的状态控制Tl的开闭:TRl1,打开T1;TRl0,关闭T1。在特殊的应用场合,例如利用计数定时器测量接于INT1引脚上的外部脉冲高电平的宽度时,可使GATE1,TRl1。当外部脉冲出现上升沿,亦即INT1由0变1电平时,启动T1定时,测量开始;一旦外部脉冲出现下降沿,亦即INT1由l变O时就关闭了T1。计数定时器启动后,定时或计数脉冲加到TLl的低5位,从预先设置的初值(时间常数)开始不断增1。TL1计满后,向THl进位。当TL1和THl都计满之后,置位T1的计数定时器回零标

19、志TFl,以此表明定时时间或计数次数已到,以供查询或在打开中断的条件下,可向CPU请求中断。如需进一步定时/计数,需用指令重置时间常数。 方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。当TL0的低5位计数溢出时,向TH0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位。 TMOD寄存器初始化为把计数定时器/计数器1设定为方式0,则M1M000;为实现定时功能,应使C/T0;为实现定时器/计数器1的运行控制,则GATE0。计数定时器/计数器0不用,有关位设定为0。因此TMOD寄存器应初始化为00H。 由计数定时器控制寄存器TCON中的TR1位控制定时的

20、启动和停止 TR11启动,TR10停止。工作方式1:1是16位计数结构的工作方式,计数器由TH0全部8位和TL0全部8位构成。与工作方式0基本相同,区别仅在于工作方式1的计数器TL1和TH1组成16位计数器,从而比工作方式0有更宽的定时/计数范围。工作方式28位自动装入时间常数方式。由TLl构成8位计数器,THl仅用来存放时间常数。启动T1前,TLl和THl装入相同的时间常数,当TL1计满后,除计数定时器回零标志TFl置位,具有向CPU请求中断的条件外,THl中的时间常数还会自动地装入TLl,并重新开始定时或计数。所以,工作方式2是一种自动装入时间常数的8位计数器方式。由于这种方式不需要指令重

21、装时间常数,因而操作方便,在允许的条件下,应尽量使用这种工作方式。当然,这种方式的定时计数范围要小于方式0和方式1。当计数溢出后,不是像前两种工作方式那样通过软件方法,而是由预置寄存器TH以硬件方法自动给计数器TL重新加载。变软件加载为硬件加载。    初始化时,8位计数初值同时装入TL0和TH0中。当TL0计数溢出时,置位TF0,同时把保存在预置寄存器TH0中的计数初值自动加载TL0,然后TL0重新计数。如此重复不止。这不但省去了用户程序中的重装指令,而且也有利于提高定时精度。但这种工作方式下是8位计数结构,计数值有限,最大只能到255。这种自动重新加载工作方式

22、非常适用于循环定时或循环计数应用,例如用于产生固定脉宽的脉冲,此外还可以作串行数据通信的波特率发送器使用。工作方式32个8位方式。工作方式3只适用于计数定时器0。如果使计数定时器1为工作方式3,则计数定时器1将处于关闭状态。当T0为工作方式3时,THo和TL0分成2个独立的8位计数器。其中,TL0既可用作计数定时器,又可用作计数器,并使用原T0的所有控制位及其计数定时器回零标志和中断源。TH0只能用作计数定时器,并使用T1的控制位TRl、回零标志TFl和中断源。 通常情况下,T0不运行于工作方式3,只有在T1处于工作方式2,并不要求中断的条件下才可能使用。这时,T1往往用作串行口波特率发生器(

23、见14),TH0用作计数定时器,TL0作为计数定时器或计数器。所以,方式3是为了使单片机有1个独立的计数定时器计数器、1个计数定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把计数定时器l用于工作方式2,把计数定时器0用于工作方式3。下才可能使用。这时,T1往往用作串行口波特率发生器,TH0用作计数定时器,TL0作为计数定时器或计数器。所以,方式3是为了使单片机有1个独立的计数定时器计数器、1个计数定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把计数定时器l用于工作方式2,把计数定时器0用于工作方式3。3 计数定时器的设计3.1总体的设计要求本文所涉及的计数定

24、时器要求能定时给电器供电或断电,操作使用方便,采用AT89C52单片机控制,2位共阳数码管显示时间,继电器做电器电源输出控制。3.2 系统硬件电路设计3.2.1 芯片的选择硬件电路要实现对交流大电流电源的控制、定时时间的设定显示和到点提醒等功能。若采用40脚的单片机有利于设计,但会增大电路板的体积。本设计采用ATMEL公司的AT89C52单片机,芯片位20脚,体积小,工作电压范围宽(2.7V6V)。性价比比较高。3.2.2 交流控制接口电路交流接口电路可以选择继电器控制,也可采用可控硅控制等。本设计采用的是前一种继电器控制。3.2.3显示电路显示电路采用2个共阳极LED数码管。为了在定时达到分

25、(钟)的时候能显示出时钟在计时,两个数码管之间增加一个发光二极管,以其闪烁来代表秒走动;为了使硬件电路简单,采用单片机直接驱动LED数码管(AT89C52输出口能吸收20mA电流),用动态扫描法实现LED显示。3.3 系统程序的设计程序采用模块化、结构化设计,并采用软件抗干扰,使软件的可靠性比较高,可维护性较强。主要模块有:主程序菜单程序到点工作程序抗干扰程序3.3.1 主程序流程图开始关中断,设置堆栈有上电复位标志? N Y热启动恢复正常冷启动全面初始化调用显示程序F键被按下? N Y调用显示程序,设定时间开始计时、工作到点了吗? N停止计时,调用到点工作程序结束4.1 AT89C52的内部

26、结构及功能和引脚说明AT89C52是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含2k bytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-52指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大AT89C52单片机可为您提供许多高性价比的应用场合。程序保密89C52设计有2个程序保密位,保密位1被编程之后,程序存储器不能再被编程除非做一次擦除,保密位2被编程之后,程序不能被读出。软硬件的开发89C52可以采用下面2种方法开发应用系统。(1) 由于

27、89C52内部程序存贮器为Flash,所以修改它内部的程序十分方便快捷,只要配备一个可以编程89C52的编程器即可。调试人员可以采用程序编辑-编译-固化-插到电路板中试验这样反复循环的方法,对于熟练的MCS-52程序员来说,这种调试方法并不十分困难。当做这种调试不能够了解片内RAM的内容和程序的走向等有关信息。(2) 将普通8031/80C31仿真器的仿真插头中P1.0P1.7和P3.0P3.6引出来仿真205T,这种方法可以运用单步、断点的调试方法,但是仿真不够真实,比如,52的内部模拟比较器功能,P1口、P3口的增强下拉能力等等。4.1.1 AT89C52主要性能AT89C52是ATMEL

28、公司生产的带2K字节闪速可编程可擦除只读存储器(EEPROM)的8位单片机,它具有如下主要特性: ·和MCS-52产品的兼容 ·2K字节可重编程闪速存储器 ·耐久性:1,000写擦除周期 ·2.7V6V的操作范围 ·全静态操作:0Hz24MHz ·两级加密程序存储器  ·128×8位内部RAM   ·15根可编程I/O引线     ·两个16位计数定时器/计数器 ·六个中断源

29、        ·可编程串行UART通道      ·直接LED驱动输出         ·片内模拟比较器          ·低功耗空载和掉电方式 4.1.2 AT89C52的内部结构AT89C52是一带有2K字节闪速可编程可擦除只读存储

30、体(EEPROM)的低电压,高性能8位CMOS微型计算机。如图2所示。它采用ATMEL的高密非易失存储技术制造并和工业标准MCS52指令集和引脚结构兼容。通过在单块芯片上组合通用的CPL1和闪速存储器,ATMEL AT89C52是一强劲的微型计算机,它对许多嵌入式控制应用提供一高度灵活和成本低的解决办法。  图1 AT89C52的内部结构图 图2 AT89C52内部示意图此外,从AT89C52内部结构图也可看出,其内部结构与8052内部结构基本一致(除模拟比较器外),引脚RST、XTAL1、XTAL2的特性和外部连接电路也完全与52系列单片机相应引脚一致,但P1口、P3口有其独特之处

31、4.1.3 AT89C52的引脚说明AT89C52是一个有20个引脚的芯片,引脚如图1所示,与8052内部结构进行对比可发现,AT89C52减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚,因而芯片尺寸有所减少。     AT89C52芯片的20个引脚功能为: 1.Vcc:电源电压。2. GND:地。 3. P1口:P1口是一8位双向I/O口。口引脚P1.2P1.7提供内部上拉电阻。P1.0和P1.1要求外部上拉电阻。P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(AIN0)和反相输入(AIN1)。P1口输出缓冲器可吸收20m

32、A电流并能直接驱动LED显示。当P1口引脚写入“1”时,其可用作输入端。当引脚P1.2P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流(IIL)。P1口还在闪速编程和程序校验期间接收代码数据。4. P3口:P3口的P3.0P3.5、P3.7是带有内部上拉电阻的七个双向I/0引脚。P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。P3口缓冲器可吸收20mA电流。当P3口引脚写入“1”时,它们被内部上拉电阻拉高并可用作输入端。用作输入时,被外部拉低的P3口引脚将用上拉电阻而流出电流(IIL)。 5. RST:复位输入。RST一旦变成高电平,所有

33、的I/O引脚就复位到“1”。当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。       6. XTAL1:作为振荡器反相放大器的输入和内部时钟发生器的输入。   7. XTAL2:作为振荡器反相放大器的输出。 P3口引脚 功能 P3.0 RXD(串行输入端口)  P3.1 TXD(串行输出端口)  P3.2 INT0(外中断0)  P3.3 INT1(

34、外中断1)  P3.4 TO(计数定时器0外部输入)  P3.5        T1(计数定时器1外部输入) 表1  P3口的功能 从上述引脚说明可看出,AT89C52没有提供外部扩展存储器与I/O设备所需的地址、数据、控制信号,因此利用AT89C52构成的单片机应用系统不能在AT89C52之外扩展存储器或I/O设备,也即AT89C52本身即构成了最小单片机系统。4.3数码管数码管是一种半导体发光器件,其基本单元是发光二极管。4.3.1、数码管的分类数码管按段数分为七段数码管

35、和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。5.3 主程序#include<reg51.h>#define uchar unsigned charsbit key=P30;sbit ge=P27;sbit

温馨提示

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

评论

0/150

提交评论