毕业设计基于AT89C2051单片机的电子定时器设计_第1页
毕业设计基于AT89C2051单片机的电子定时器设计_第2页
毕业设计基于AT89C2051单片机的电子定时器设计_第3页
毕业设计基于AT89C2051单片机的电子定时器设计_第4页
毕业设计基于AT89C2051单片机的电子定时器设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、 电子定时器的设计 electron timer design学生: xxxx 班级: xxxxx3 学号: 0xxx学部: xxx 专业: xx 指导老师: xxx 指导老师职称: xxxx 工作单位: xxxx 毕业设计(论文)完成时间自 2011 年 2 月 至 2011 年2 月摘 要 随着时代的进步,电子行业的发展,定时器的应用也越来越广泛。但传统的定时器都是使用发条驱动式、电机传动式或电钟式等机械定时器。电子定时器相对产痛定时器来说,体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使用。本设计采用at89c2051单片机为核心,阐述了系统工作原理,给出了软件

2、流程。该电子定时器满足对电器的电源进行控制,同时要方便用户对电子定时器的操作。最大时间能达到30h,切最大精度可以到分钟关键词:定时器;单片机;at89c2051;动态扫描;继电器【abstract】 progress , development of electron industry , the timer application are also more and more broad with the times. but, the tradition timer all is to use spring to drive machinery timers such as style

3、, electric motor drive style or electric clock style. come the electron timer to say volume is small , weight is light , cost of construction is low , accuracy is high , life-span is long, and safety is reliable , adjust to be suitable for being frequently put into use conveniently relatively painfu

4、l timer of product. have designed that the monolithic machine is core originally adopt at89c2051 , have set forth system operating principle , have given a software out technological process. the power source go along being the electron timers turn to be satisfied with electrical equipment is contro

5、lled , is wants the convenience of customers operation to electron timer at the same time. maximal time can reach 30 hs , by all means maximal accuracy can arrive at a minutekeywords: timer; monolithic machine; at89c2051; development is scanned; relay目 录1 引言71.1课题的来源和意义71.2电子定时器的应用81.3电子定时器的发展前景82 5

6、1单片机内部结构及计数原理82.1 51单片机内部机构82.2计数原理113 电子定时器的设计193.1总体的设计要求193.2 系统硬件电路设计193.2.1 芯片的选择193.2.2 交流控制接口电路193.2.3显示电路193.2.4 报警电路193.3 系统程序的设计203.3.1 主程序流程图204 重要元件及重要电路214.1 at89c2051的内部结构及功能和引脚说明214.1.1 at89c2051主要性能224.1.2 at89c2051的内部结构224.1.3 at89c2051的引脚说明244.2 继电器264.2.1、电磁继电器的工作原理和特性264.2.2、继电器主

7、要产品技术参数264.2.3、继电器的电符号和触点形式274.3数码管284.3.1、数码管的分类284.3.2、数码管的驱动方式285 软件设计295.1 伪定义295.2 中断入口305.3 主程序315.4倒计时程序345.5 bcd子程序(加1或减1)355.6加1程序365.7调时快进程序375.8功能菜单程序375.9到点工作程序405.10响铃程序425.11显示程序435.12无显示(灭灯)程序455.13延时程序455.14 err(出错处理)程序47结论48参考文献49致谢50附录511 引言我们在日常生活中,经常碰到一些需要定时的事情,例如:印相或放大照片,需要定在零点几

8、秒的时间,洗衣机洗涤衣物需要定在几分钟到几十分钟的时间,电风扇需要定在数十分钟的时间。完成这种定时的定时器有多种多样,在家用电器中采用机械定时器就是根据一般上弦钟表原理设计的,这种定时器虽然结构简单,成本低,维修也比较方便,但是它的触头频繁接触和断开,大大的缩减了它的使用寿命,也不利于进一步全自动化。在电子技术突飞猛进的今天,电子定时器一定会逐步取而代之,这是不言而喻的。本文是基于51系列单片机设计的一种用于控制家用电器的设计方案。1.1课题的来源和意义本课题是通过导师筛选提出的,电子设计课题不一定很大,只要通过亲手做一遍全过程,完成一个产品制作,收获是很大的。本课题的意义在于通过设计和制作本

9、课题把在学校学习到的知识融会贯通并应用到实际当中。做到学有所成,学有所用。并且希望通过本设计为节能减排做出贡献。1.2电子定时器的应用电子定时器在家用电器中经常用于延时自动关机、定时。延时自动关机可用于:收音机、电视机、录音机、催眠器、门灯、路灯、汽车头灯、转弯灯以及其他电器的延时断电及延时自停电源等。定时可用于:照相定时曝光、定时闪光、定时放大、定时调速、定时烘箱、冰箱门开定时报警、水位定时报警、延时催眠器、延时电铃、延时电子锁、触摸定时开关等。例如:空调中的定时器,在工作一段时间之后便能自动切断电源停止工作。夏季夜间使用,入睡前先顶好时间,等睡熟后到了预定时间,空调自动关机。方便节能。定时

10、器除了应用于家用电器外,还广泛地用于工业农业生产和服务设施,甚至军事等。1.3电子定时器的发展前景传统的定时器绝大多数都是发条驱动式、电机传动式或电钟式等机械定时器,部分电子器械中也有试用时间继电器的。相对于传统的定时器,电子定时器的体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使用。所以电子定时器的发展必定大有前途。同时随着现代电子技术的发展,电子定时器也在不断的进步,朝向着更多用途、更高精度、更小体积发展着。例如:一个可编程电子定时器,它可以设置20组开、关电源设置,可以当时钟使用,还也可以按星期组合让它在一周内的任意一天或几天按设置程序工作。而且它只有长12.5

11、cm宽5.5cm厚5cm大小。且它的功耗特别小只有3w。可以说是小巧玲珑,节能省电。2 51单片机内部结构及计数原理2.1 51单片机内部机构51单片机内部有一个8位的cpu,同时cpu内部包含了运算器,控制器及若干寄存器。从上图中我们可以看到,在虚线框内的就是cpu的内部结构了,8位的mcs-51单片机的cpu内部有数术逻辑单元alu(arithmetic logic unit)、累加器a(8位)、寄存器b(8位)、程序状态字psw(8位)、程序计数器pc(有时也称为指令指针,即ip,16位)、地址寄存器ar(16位)、数据寄存器dr(8位)、指令寄存器ir(8位)、指令译码器id、控制器等

12、部件组成。1、运算器(alu)的主要功能a)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。b)加、减、乘、除、加1、减1、比较等算术运算。c)与、或、异或、求补、循环等逻辑运算。d)位处理功能(即布尔处理器)。由于alu内部没有寄存器,参加运算的操作数,必须放在累加器a中。累加器a也用于存放运算结果。例如:执行指令 add a,b执行这条指令时,累加器a中的内容通过输入口in_1输入alu,寄存器b通过内部数据总线经输入口in_2输入alu,a+b的结果通过alu的输出口out、内部数据总线,送回到累加器a。2、程序计数器pcpc的作用是用来存放将要执行的

13、指令地址,共16位,可对64k rom直接寻址,pc低8位经p0口输出,高8位经p2口输出。也就是说,程序执行到什么地方,程序计数器pc就指到哪里,它始终是跟蹿着程序的执行。我们知道,用户程序是存放在内部的rom中的,我们要执行程序就要从rom中一个个字节的读出来,然后到cpu中去执行,那么rom具体执行到哪一条呢?这就需要我们的程序计数器pc来指示。程序计数器pc具有自动加1的功能,即从存储器中读出一个字节的指令码后,pc自动加1(指向下一个存储单元)。 3、指令寄存器ir指令寄存器的作用就是用来存放即将执行的指令代码。在这里我们先简单的了解下cpu执行指令的过程,首先由程序存储器(rom)

14、中读取指令代码送入到指令寄存器,经译码器译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。关于指令在单片机内部的执行过程,我们在后面将会以另一节课来进行详细的讲解。 4、指令译码器id用于对送入指令寄存器中的指令进行译码,所谓译码就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信号,cpu控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。5、地址寄存器ar(16位)ar的作用是用来存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器pc产生,而指令中操作数所

15、在的存储单元地址码,由指令的操作数给定。从上图中我们可以看到,地址寄存器ar通过地址总线ab与外部存储器相连。6、数据寄存器dr用于存放写入外部存储器或i/o端口的数据信息。可见,数据寄存器对输出数据具有锁存功能。数据寄存器与外部数据总线db直接相连。7、程序状态字psw用于记录运算过程中的状态,如是否溢出、进位等。例如,累加器a的内容83h,执行:add a,#8ah ;累加器a与立即数8ah相加,并把结果存放在a中。指令后,将产生和的结果为10dh,而累加器a只有8位,只能存放低8位,即0dh,元法存放结果中的最高位b8。为些,在cpu内设置一个进位标志位c,当执行加法运算出现进位时,进位

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

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

18、。显然,定时器的定时时间与系统的振荡频率有关。因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。如果晶振为12mhz,则计数周期为:t=1/(12106)hz1/12=1s 这是最短的定时周期。若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。 当定时器/计数器为计数工作方式时,通过引脚t0和t1对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的s5p2期间采样引脚输入电平。若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。此后的机器周期s3p1期间,新的计数值装入计数器。所以检测一个由1至

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

20、器/计数器开始工作之前,cpu必须将一些命令(称为控制字)写入定时/计数器。将控制字写入定时/计数器的过程叫定时器/计数器初始化。在初始化过程中,要将工作方式控制字写入方式寄存器,工作状态字(或相关位)写入控制寄存器,赋定时/计数初值。下面我们就提出的控制字的格式及各位的主要功能与大家详细的讲解。 控制寄存器 定时器计数器t0和t1有2个控制寄存器-tmod和tcon,它们分别用来设置各个定时器计数器的工作方式,选择定时或计数功能,控制启动运行,以及作为运行状态的标志等。其中,tcon寄存器中另有4位用于中断系统。 定时器/计数器方式寄存器tmod: 定时器方式控制寄存器tmod在特殊功能寄存

21、器中,字节地址为89h,无位地址。tmod的格式如下图所示。 由图可见,tmod的高4位用于t1,低4使用于t0,4种符号的含义如下:gate:门控制位。gate和软件控制位tr、外部引脚信号int的状态,共同控制定时器计数器的打开或关闭。ct:定时器计数器选择位。c/t1,为计数器方式;ct0,为定时器方式。m1m0:工作方式选择位,定时器计数器的4种工作方式由m1m0设定。定时器/计数器方式控制寄存器tmod不能进行位寻址,只能用字节传送指令设置定时器工作方式,低半字节定义为定时器0,高半字节定义为定时器1。复位时,tmod所有位均为0。定时器/计数器控制寄存器tcon:tcon在特殊功能

22、寄存器中,字节地址为88h,位地址(由低位到高位)为88h一8fh,由于有位地址,十分便于进行位操作。tcon的作用是控制定时器的启、停,标志定时器溢出和中断情况。tcon的格式如下图所示。其中,tfl,trl,tf0和tr0位用于定时器计数器;iel,itl,ie0和it0位用于中断系统。各位定义如下:tf1:定时器1溢出标志位。当字时器1计满溢出时,由硬件使tf1置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。tr1:定时器1运行控制位。由软件清“0”关闭定时器1。当gate=1,且int1为高电平时,tr1置“1”启动定时器1;当gate=0,

23、tr1置“1”启动定时器1。tf0:定时器0溢出标志。其功能及操作情况同tf1。tr0:定时器0运行控制位。其功能及操作情况同tr1。ie1:外部中断1请求标志。it1:外部中断1触发方式选择位。ie0:外部中断0请求标志。it0:外部中断0触发方式选择位。tcon中低4位与中断有关,我们将在下节课讲中断时再给予讲解。由于tcon是可以位寻址的,因而如果只清溢出或启动定时器工作,可以用位操作命令。例如:执行“clr tf0”后则清定时器0的溢出;执行“setb tr1”后可启动定时器1开始工作(当然前面还要设置方式定)。定时器/计数器的初始化: 由于定时器/计数器的功能是由软件编程确定的,所以

24、一般在使用定时/计数器前都要对其进行初始化,使其按设定的功能工作。初始货的步骤一般如下:1、确定工作方式(即对tmod赋值);2、预置定时或计数的初值(可直接将初值写入th0、tl0或th1、tl1);3、根据需要开放定时器/计数器的中断(直接对ie位赋值);4、启动定时器/计数器(若已规定用软件启动,则可把tr0或tr1置“1”;若已规定由外中断引脚电平启动,则需给外引脚步加启动电平。当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时)。因为在不同工作方式下计数器位数不同,因而最大计数值也不同。现假设最大计数值为m,那么各方式下的最大值m值如下:方式0:m=213=8 192方

25、式1:m=216=65 536方式2:m=28=256方式3:定时器0分成两个8位计数器,所以两个m均为256。 因为定时器/计数器是作“加1”计数,并在计数满溢出时产生中断,因此初值x可以这样计算:x=m-计数值定时器/计数器的四种工作方式: 定t0或t1无论用作定时器或计数器都有4种工作方式:方式0、方式1、方式2和方式3。除方式3外,t0和t1有完全相同的工作状态。下面以t1为例,分述各种工作方式的特点和用法。 工作方式0: 13位方式由tl1的低5位和th1的8位构成13位计数器(tl1的高3位无效)。工作方式0的结构见下图: 为定时计数选择:ct0,t1为定时器,定时信号为振荡周期1

26、2分频后的脉冲;ctl,t1为计数器,计数信号来自引脚t1的外部信号。定时器t1能否启动工作,还受到了r1、gate和引脚信号int1的控制。由图中的逻辑电路可知,当gate0时,只要tr11就可打开控制门,使定时器工作;当gate1时,只有tr11且int11,才可打开控制门。gate,tr1,ct的状态选择由定时器的控制寄存器tmod,tcon中相应位状态确定,int1则是外部引脚上的信号。在一般的应用中,通常使gate0,从而由trl的状态控制tl的开闭:trl1,打开t1;trl0,关闭t1。在特殊的应用场合,例如利用定时器测量接于int1引脚上的外部脉冲高电平的宽度时,可使gate1

27、,trl1。当外部脉冲出现上升沿,亦即int1由0变1电平时,启动t1定时,测量开始;一旦外部脉冲出现下降沿,亦即int1由l变o时就关闭了t1。定时器启动后,定时或计数脉冲加到tll的低5位,从预先设置的初值(时间常数)开始不断增1。tl1计满后,向thl进位。当tl1和thl都计满之后,置位t1的定时器回零标志tfl,以此表明定时时间或计数次数已到,以供查询或在打开中断的条件下,可向cpu请求中断。如需进一步定时/计数,需用指令重置时间常数。 方式0是13位计数结构的工作方式,其计数器由th0全部8位和tl0的低5位构成。当tl0的低5位计数溢出时,向th0进位,而全部13位计数溢出时,则

28、向计数溢出标志位tf0进位。 tmod寄存器初始化为把定时器/计数器1设定为方式0,则m1m000;为实现定时功能,应使c/t0;为实现定时器/计数器1的运行控制,则gate0。定时器/计数器0不用,有关位设定为0。因此tmod寄存器应初始化为00h。 由定时器控制寄存器tcon中的tr1位控制定时的启动和停止 tr11启动,tr10停止。工作方式1:1是16位计数结构的工作方式,计数器由th0全部8位和tl0全部8位构成。与工作方式0基本相同,区别仅在于工作方式1的计数器tl1和th1组成16位计数器,从而比工作方式0有更宽的定时/计数范围。工作方式28位自动装入时间常数方式。由tll构成8

29、位计数器,thl仅用来存放时间常数。启动t1前,tll和thl装入相同的时间常数,当tl1计满后,除定时器回零标志tfl置位,具有向cpu请求中断的条件外,thl中的时间常数还会自动地装入tll,并重新开始定时或计数。所以,工作方式2是一种自动装入时间常数的8位计数器方式。由于这种方式不需要指令重装时间常数,因而操作方便,在允许的条件下,应尽量使用这种工作方式。当然,这种方式的定时计数范围要小于方式0和方式1。工作方式2的结构见下图当计数溢出后,不是像前两种工作方式那样通过软件方法,而是由预置寄存器th以硬件方法自动给计数器tl重新加载。变软件加载为硬件加载。 初始化时,8位计数初值同时装入t

30、l0和th0中。当tl0计数溢出时,置位tf0,同时把保存在预置寄存器th0中的计数初值自动加载tl0,然后tl0重新计数。如此重复不止。这不但省去了用户程序中的重装指令,而且也有利于提高定时精度。但这种工作方式下是8位计数结构,计数值有限,最大只能到255。这种自动重新加载工作方式非常适用于循环定时或循环计数应用,例如用于产生固定脉宽的脉冲,此外还可以作串行数据通信的波特率发送器使用。工作方式32个8位方式。工作方式3只适用于定时器0。如果使定时器1为工作方式3,则定时器1将处于关闭状态。当t0为工作方式3时,tho和tl0分成2个独立的8位计数器。其中,tl0既可用作定时器,又可用作计数器

31、,并使用原t0的所有控制位及其定时器回零标志和中断源。th0只能用作定时器,并使用t1的控制位trl、回零标志tfl和中断源,见下图。 通常情况下,t0不运行于工作方式3,只有在t1处于工作方式2,并不要求中断的条件下才可能使用。这时,t1往往用作串行口波特率发生器(见14),th0用作定时器,tl0作为定时器或计数器。所以,方式3是为了使单片机有1个独立的定时器计数器、1个定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器l用于工作方式2,把定时器0用于工作方式3。下才可能使用。这时,t1往往用作串行口波特率发生器,th0用作定时器,tl0作为定时器或计数器。所以,方式

32、3是为了使单片机有1个独立的定时器计数器、1个定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器l用于工作方式2,把定时器0用于工作方式3。3 电子定时器的设计3.1总体的设计要求本文所涉及的电子定时器要求能定时给电器供电或断电,最大时间可以长达30h,操作使用方便,采用at89c2051单片机控制,4位共阳数码管显示时间,继电器做电器电源输出控制。3.2 系统硬件电路设计3.2.1 芯片的选择硬件电路要实现对交流大电流电源的控制、定时时间的设定显示和到点提醒等功能。若采用40脚的单片机有利于设计,但会增大电路板的体积。本设计采用atmel公司的at89c2051单片机,

33、芯片位20脚,体积小,工作电压范围宽(2.7v6v)。性价比比较高。3.2.2 交流控制接口电路交流接口电路可以选择继电器控制,也可采用可控硅控制等。本设计采用的是前一种继电器控制。3.2.3显示电路显示电路采用4个共阳极led数码管。为了在定时达到分(钟)的时候能显示出时钟在计时,两个数码管之间增加一个发光二极管,以其闪烁来代表秒走动;为了使硬件电路简单,采用单片机直接驱动led数码管(at89c2051输出口能吸收20ma电流),用动态扫描法实现led显示。3.2.4 报警电路报警电路采用普通的5v成品蜂鸣器。3.3 系统程序的设计程序采用模块化、结构化设计,并采用软件抗干扰,使软件的可靠

34、性比较高,可维护性较强。主要模块有:1) 主程序2) 菜单程序3) 到点工作程序4) 抗干扰程序3.3.1 主程序流程图开始关中断,设置堆栈有上电复位标志? n y热启动恢复正常冷启动全面初始化调用显示程序f键被按下? n y调用显示程序,设定时间开始计时、工作到点了吗? n停止计时,调用到点工作程序结束4 重要元件及重要电路4.1 at89c2051的内部结构及功能和引脚说明at89c2051是美国atmel公司生产的低电压、高性能cmos 8位单片机,片内含2k bytes的可反复擦写的只读程序存储器(perom)和128bytes的随机数据存储器(ram),器件采用atmel公司的高密度

35、、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器和flash存储单元,功能强大at89c2051单片机可为您提供许多高性价比的应用场合。程序保密89c2051设计有2个程序保密位,保密位1被编程之后,程序存储器不能再被编程除非做一次擦除,保密位2被编程之后,程序不能被读出。软硬件的开发89c2051可以采用下面2种方法开发应用系统。(1) 由于89c2051内部程序存贮器为flash,所以修改它内部的程序十分方便快捷,只要配备一个可以编程89c2051的编程器即可。调试人员可以采用程序编辑-编译-固化-插到电路板中试验这样反复循环的方法,对于熟练的mcs-51程序

36、员来说,这种调试方法并不十分困难。当做这种调试不能够了解片内ram的内容和程序的走向等有关信息。(2) 将普通8031/80c31仿真器的仿真插头中p1.0p1.7和p3.0p3.6引出来仿真205t,这种方法可以运用单步、断点的调试方法,但是仿真不够真实,比如,2051的内部模拟比较器功能,p1口、p3口的增强下拉能力等等。4.1.1 at89c2051主要性能at89c2051是atmel公司生产的带2k字节闪速可编程可擦除只读存储器(eeprom)的8位单片机,它具有如下主要特性: 和mcs-51产品的兼容 2k字节可重编程闪速存储器耐久性:1,000写擦除周期2.7v6v的操作范围 全

37、静态操作:0hz24mhz两级加密程序存储器 1288位内部ram15根可编程i/o引线 两个16位定时器/计数器六个中断源 可编程串行uart通道直接led驱动输出 片内模拟比较器低功耗空载和掉电方式 4.1.2 at89c2051的内部结构at89c2051是一带有2k字节闪速可编程可擦除只读存储体(eeprom)的低电压,高性能8位cmos微型计算机。如图2所示。它采用atmel的高密非易失存储技术制造并和工业标准mcs51指令集和引脚结构兼容。通过在单块芯片上组合通用的cpl1和闪速存储器,atmel at89c2051是一强劲的微型计算机,它对许多嵌入式控制应用提供一高度灵活和成本低

38、的解决办法。 图1 at89c2051的内部结构图 图2 at89c2051内部示意图此外,从at89c2051内部结构图也可看出,其内部结构与8051内部结构基本一致(除模拟比较器外),引脚rst、xtal1、xtal2的特性和外部连接电路也完全与51系列单片机相应引脚一致,但p1口、p3口有其独特之处4.1.3 at89c2051的引脚说明at89c2051是一个有20个引脚的芯片,引脚如图1所示,与8051内部结构进行对比可发现,at89c2051减少了两个对外端口(即p0、p2口),使它最大可能地减少了对外引脚,因而芯片尺寸有所减少。 at89c2051芯片的20个引脚功能为: 1.v

39、cc:电源电压。2. gnd:地。 3. p1口:p1口是一8位双向i/o口。口引脚p1.2p1.7提供内部上拉电阻。p1.0和p1.1要求外部上拉电阻。p1.0和p1.1还分别作为片内精密模拟比较器的同相输入(ain0)和反相输入(ain1)。p1口输出缓冲器可吸收20ma电流并能直接驱动led显示。当p1口引脚写入“1”时,其可用作输入端。当引脚p1.2p1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流(iil)。p1口还在闪速编程和程序校验期间接收代码数据。4. p3口:p3口的p3.0p3.5、p3.7是带有内部上拉电阻的七个双向i/0引脚。p3.6用于固定输入片内比较器

40、的输出信号并且它作为一通用i/o引脚而不可访问。p3口缓冲器可吸收20ma电流。当p3口引脚写入“1”时,它们被内部上拉电阻拉高并可用作输入端。用作输入时,被外部拉低的p3口引脚将用上拉电阻而流出电流(iil)。p3口还用于实现at89c2051的各种功能,如下表1所示。p3口还接收一些用于闪速存储器编程和程序校验的控制信号。5. rst:复位输入。rst一旦变成高电平,所有的i/o引脚就复位到“1”。当振荡器正在运行时,持续给出rst引脚两个机器周期的高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。6. xtal1:作为振荡器反相放大器的输入和内部时钟发生器的输入。 7. xta

41、l2:作为振荡器反相放大器的输出。p3口引脚 功能p3.0rxd(串行输入端口) p3.1txd(串行输出端口) p3.2int0(外中断0) p3.3int1(外中断1) p3.4 to(定时器0外部输入) p3.5t1(定时器1外部输入) 表1 p3口的功能从上述引脚说明可看出,at89c2051没有提供外部扩展存储器与i/o设备所需的地址、数据、控制信号,因此利用at89c2051构成的单片机应用系统不能在at89c2051之外扩展存储器或i/o设备,也即at89c2051本身即构成了最小单片机系统。4.2 继电器 继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又

42、称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。4.2.1、电磁继电器的工作原理和特性电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常

43、开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”4.2.2、继电器主要产品技术参数 1、额定工作电压额定工作电压是指继电器正常工作时线圈所需要的电压。根据继电器的型号不同,可以是交流电压,也可以是直流电压。2、直流电阻直流电阻是指继电器中线圈的直流电阻,可以通过万能表测量。3、吸合电流吸合电流是指继电器能够产生吸合动作的最小电流。在正常使用时,给定的电流必须略大于吸合电流,这样继电器才能稳定地工作。而对于线圈所加的工作电压,一般不要超过额定工作电压的1.5倍,否则会产生较大的电流而把线圈烧毁。4、释放电流释放电流是指

44、继电器产生释放动作的最大电流。当继电器吸合状态的电流减小到一定程度时,继电器就会恢复到未通电的释放状态。这时的电流远远小于吸合电流。 5、触点切换电压和电流触点切换电压和电流是指继电器允许加载的电压和电流。它决定了继电器能控制电压和电流的大小,使用时不能超过此值,否则很容易损坏继电器的触点。4.2.3、继电器的电符号和触点形式 继电器线圈在电路中用一个长方框符号表示,如果继电器有两个线圈,就画两个并列的长方框。同时在长方框内或长方框旁标上继电器的文字符号“j”。继电器的触点有两种表示方法:一种是把它们直接画在长方框一侧,这种表示法较为直观。另一种是按照电路连接的需要,把各个触点分别画到各自的控

45、制电路中,通常在同一继电器的触点与线圈旁分别标注上相同的文字符号,并将触点组编上号码,以示区别。继电器的触点有三种基本形式:1.动合型(h型)线圈不通电时两触点是断开的,通电后,两个触点就闭合。以合字的拼音字头“h”表示。2.动断型(d型)线圈不通电时两触点是闭合的,通电后两个触点就断开。用断字的拼音字头“d”表示。3.转换型(z型)这是触点组型。这种触点组共有三个触点,即中间是动触点,上下各一个静触点。线圈不通电时,动触点和其中一个静触点断开和另一个闭合,线圈通电后,动触点就移动,使原来断开的成闭合,原来闭合的成断开状态,达到转换的目的。这样的触点组称为转换触点。用“转”字的拼音字头“z”表

46、示。4.3数码管数码管是一种半导体发光器件,其基本单元是发光二极管。4.3.1、数码管的分类数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(com)的数码管。共阳数码管在应用时应将公共极com接到+5v,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(com)的数码管

47、。共阴数码管在应用时应将公共极com接到地线gnd上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。4.3.2、数码管的驱动方式 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的i/o端口进行驱动,或者使用如bcd码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用i/o端口多,如驱动5个数码管静态显示则需要5840根i/o端口来驱动,要

48、知道一个89s51单片机可用的i/o端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极com增加位选通控制电路,位选通由各自独立的i/o线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通com端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数

49、码管的的com端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的i/o端口,而且功耗更低。5 软件设计5.1 伪定义 sl equ 30h ;sl存放秒的个位数 sh equ 3lh ;sh存放秒的十位数 ml equ 32h ;ml存放分的个位数 mh equ 33h ;mh存放分的十位数 hl equ 34h ;hl存放小时的个位数 hh equ

50、35h ;hh存放小时的十位数 ; l0 equ 36h ;l0l3:显示数据存储器 l1 equ 37h l2 equ 38h l3 equ 39h dsplyp equ 3ah ;显示数据指针(displaypoint) plyts equ 3bh ;显示次数计数器(displaytimes) ; lplmod bit 39h ;低两位显示方式(lowplaymod) hplmod bit 3ah ;高两位显示方式(highplaymod) bright bit 3bh :display子程序参数:亮灭指示位 ; tcount equ 3ch ;时间计数器(timecount);addres equ 3dh ,加l子程序参数 max equ 3eh ;加l子程序参数 ifdec bi

温馨提示

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

评论

0/150

提交评论