1、 北华航天工业学院电子工程系 毕业设计(论文)任务书 姓 名: X 专 业: x 班 级: x 学号: x 指导教师: x 职 称: x 完成时间: x 毕业设计(论文)题目: 基于单片机的音乐定时器 设计目标: 利用单片机编程制作一个音乐倒计时器,我们可以输入需要倒计时的时间,然后系统开始倒计时,倒计时完成后播放音乐提醒我们倒计时时间到。并且可以关联一个继电器设备用来实行电源管理。 技术要求: 1. 工作环境温度:检测器 -50°C-50°C; 2. 工作环境湿度:≤85%RH 3. 用数码管显示倒计时时间,蜂鸣器提示计时结束。
2、4. 定时器工作方式:应用于其他大型电子产品通电时间的控制。 所需仪器设备: 计算机一台、C51试验箱、伟福仿真软件等 成果验收形式: 原理图、仿真结果 参考文献: 《MCS-51单片机应用教程》、《单片机应用技术教程》、《51系列单片机原理与实验教程》 时间 安排 1 5周---6周 立题论证 3 9周---13周 仿真调试 2 7周---8周 方案设计 4 14周---16周 成果验收 指导教师: 教研室主任: 系主任: 摘 要 随着时代的进步,电子行业的发展,定时器的应用也越来越广
3、泛。本文介绍了一种电子定时器,用户可以自由输入需要定时的时间,定时器开始计时,计时结束后会播放音乐提醒用户,并可以做出相应的电源管理。使一些产品更接近电子智能化。 传统的定时器都是使用发条驱动式、电机传动式或电钟式等机械定时器。电子定时器相对机械定时器来说,体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使用。本篇论文讨论了简单的倒计时器的设计与制作 ,对于倒计时器中的四位LED数码显示器来说, 我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。该电子定时器方便用户操作,达到定时时间后会给出音乐提示,还可以对电器的电
4、源进行控制,更适合需要定时的电子产品使用。 关键词 定时器,单片机,AT89C2051,八段数码管,继电器 III 目 录 第1章 绪论 1 1.1电子定时器的应用 1 1.2电子定时器的发展前景 1 第2章 硬件的选型及计数原理 2 2.1硬件的选型 3 2.1.1 单片机的选择 3 2.1.2 LED显示器的选择 3 2.1.3 继电器的选择 4 2.2计数原理 4 2.3.1定时器/计数器的结构: 4 2.3.2定时计数器的原理: 4 第3章 硬件设计 9 3.1 单片机AT89C2051资料及各部分设计 9 3.1.1 A
5、T89C2051的结构 9 3.1.2 AT89C2051主要性能 10 3.1.3单片机的最小工作系统 12 3.1.4单片机的复位电路设计 13 3.2八段数码管显示设计 13 3.2.1、八段数码管的结构 13 3.2.2、八段数码管的驱动方式 14 3.2.3. 八段数码管的接口方法与电路 15 3.3电磁继电器的连接设计 16 3.3.1、电磁继电器的工作原理和特性 16 3.3.2、电磁继电器连接图 16 3.4 按键设计 17 第4章 软件设计 18 4.1 整体程序说明及流程图 18 4.2 单片机音乐程序设计 20 4.2.1 发声原理 20
6、 4.2.2 节拍 21 4.2.3 编码 22 4.3 系统调试工具keil c51 23 第5章 结 论 24 致 谢 25 参考文献 26 附 录 27 基于单片机的音乐定时器 第1章 绪论 我们在日常生活中,经常碰到一些需要定时的事情,例如:印相或放大照片,需要定在零点几秒的时间,洗衣机洗涤衣物需要定在几分钟到几十分钟的时间,电风扇需要定在数十分钟的时间。完成这种定时的定时器有多种多样,在家用电器中采用机械定时器就是根据一般上弦钟表原理设计的,这种定时器虽然结构简单,成本低,维修也比较方便,但是它的触头频繁接触和断开,大大的缩减了它的使用寿命,
7、也不利于进一步全自动化。在电子技术突飞猛进的今天,电子定时器一定会逐步取而代之,这是不言而喻的。 本文是基于单片机设计的一种用于控制家用电器的定时器设计方案。 1.1电子定时器的应用 电子定时器在家用电器中经常用于延时自动关机、定时。延时自动关机可用于:收音机、电视机、录音机、催眠器、门灯、路灯、汽车头灯、转弯灯以及其他电器的延时断电及延时自停电源等。定时可用于:照相定时曝光、定时闪光、定时放大、定时调速、定时烘箱、冰箱门开定时报警、水位定时报警、延时催眠器、延时电铃、延时电子锁、触摸定时开关等。例如:空调中的定时器,在工作一段时间之后便能自动切断电源停止工作。夏季夜间使用,入睡前先定好
8、时间,等睡熟后到了预定时间,空调自动关机。方便节能。定时器除了应用于家用电器外,还广泛地用于工业农业生产和服务设施,达到定时时间后会给出音乐提示,极大地方便了用户操作。 1.2电子定时器的发展前景 传统的定时器绝大多数都是发条驱动式、电机传动式或电钟式等机械定时器,部分电子器械钟也有试用时间继电器的。相对于传统的定时器,电子定时器的体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使用。所以电子定时器的发展必定大有前途。同时随着现代电子技术的发展,电子定时器也在不断的进步,朝向着更多用途、更高精度、更小体积发展着。
9、 1 第2章 硬件的选型及计数原理 实现本次设
10、计的方案有多种,下面比较说明一下最佳方案的选择。 方案一:利用可编程控制器编程定时。 可编程器,是一种用《数字简码》控制的产品,它的特点是:自带一套用于输入数码的按键和显示程序的数码管,只要我们输入一列2位数码,编制的程序即能完成,即编,即用。每一种《数字简码》控制器,它都自带一套系统软件,每一套系统软件都有一套相对应的指令表,配套的指令表表明,只要输入什么样的数,程序将去做什么事,输入一列数,它就会按次序去完成你要求它做的所有的事。 但这种方法首先花钱要多;其次是程序过长;第三是受硬件本身功能的限制,因此不适合本设计方案。 方案二:利用单片机、LED显示器和扬声器。 单片机具有性能
11、高、速度快、体积小、价格低、稳定可靠、应用广泛、通用性强等突出优点。它在硬件结构、指令系统、I/O端口、功率消耗及可靠性等方面均有其独特之处,其最显著的特点之一就是具有非常有效的控制功能。而LED显示器具有体积小、重量轻、工作电压低、功耗极低、稳定可靠、成本低、控制驱动方便、接口简单易用、模块化结构紧凑等特点,同时外接的继电器可以完成对大电流的控制,功能更全面。 这个方案价格便宜,编程简单,专用性强,功能可随着单片机的选择而调整,比较适合本设计。 方案三:555定时器完成定时。 555 定时器是一种模拟和数字功能相结合的中规模集成器件。555 定时器的功能主要由两个比较器决定。两个比较器
12、的输出电压控制 RS 触发器和放电管的状态。在电源与地之间加上电压,当 5 脚悬空时,则电压比较器 A1 的反相输入端的电压为 2VCC /3,A2 的同相输入端的电压为VCC /3。若触发输入端 TR 的电压小于VCC /3,则比较器 A2 的输出为 1,可使 RS 触发器置 1,使输出端 OUT=1。如果阈值输入端 TH 的电压大于 2VCC/3,同时 TR 端的电压大于VCC /3,则 A1 的输出为 1,A2 的输出为 0,可将 RS 触发器置 0,使输出为 0 电平。 本方案由于555定时器回差太小、且不能调整、功能上有所欠缺等缺点不宜选择。 综上所述,我们可以发现方案二的强大优
13、势,那就是利用单片机和LED显示器来实现定时倒数,通过扬声器来发出音乐,用继电器对其他交流大电流电源电路进行控制。 2.1硬件的选型 2.1.1 单片机的选择 硬件电路要实现对交流大电流电源的控制、定时时间的设定显示和到点提醒等功能。若采用40脚的8051单片机有利于设计,但会增大电路板的体积,设计成本。针对本设计的功能和用途,采用ATMEL公司的AT89C2051单片机更好。AT89C2051芯片位20脚,体积小,工作电压范围宽(2.7V~6V),实现功能完全,性价比较高,更适合本设计。 2.1.2 LED显示器的选择 目前市场上的LED显示产品多种多样,,本设计可以考虑的显示
14、部分有LED点阵和数码管两种,下面就对两种方法进行比较,从而选择出最佳方案。 LED电子显示屏是由许多半导体发光二极管像素点均匀排列组成。它通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。它的优点有亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。 数码管是一种有 LED 发光二极管组合显示字符的显示器件。它使用LED 发光二极管,显示字符和小数点。数码管通过对其不同的管脚输入相对的电流会使其发亮,从
15、而显示出数字或简单字符,用于显示时间、日期、温度等所有可用数字表示的参数,由于它价格便宜、使用简单,被广泛应用于小型家电。但是也有显示亮度不均匀等缺点。 鉴于本设计显示部分用来显示时间,因此数码管是最佳选择。另外数码管又按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。。共
16、阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。由于本次设计需要显示分和秒,结合单片机的控制结构所以选用四位八段共阳数码管更为适合设计需要。 2.1.3 继电器的选择 本设计的继电器需要对交流大电流电源进行控制,我们初步选择考虑了一下两种方案:电磁式继电器和固态继电器。
17、对于电磁式继电器是一种电子控制器件,在电路中起着自动调节、安全保护、转换电路等作用。一般是由铁芯、线圈、衔铁、触点簧片等组成的。 与电磁式继电器比拟,固态继电器(SSR)是一种没有机械运动,不含运动零件的继电器,但它具有与电磁继电器本质上相同的功能。SSR是一种全部由固态电子元件组成的无触点开关元件,它利用电子元器件的电、磁和光特性来完成输入与输出的隔离,利用大功率三极管,功率场效应管,单向可控硅或双向可控硅等器件的开关特性,来达到无触点,无火花地接通和断开被控电路。 固态继电器敏捷度高,控制功率小,寿命比较高,可靠性好,切换速度可达到几毫秒至几微妙。大多数交流输出固态继电器是一个
18、零电压开关,在零电压处导通,零电流处关断,减少了电流波形的溘然间断,从而减小了开关瞬态效应。因为管压降大,导通后的功耗和发烧量也大,大功率固态继电器的体积远弘远于同容量的电磁继电器,本钱也较高。 对于本钱非常敏感的产品来说,选用廉价的普通电磁继电器去控制交流大电流电源电路,从性能方面可以达到要求,从本钱方面也极大地节约,因此电磁继电器更加合理。 2.2计数原理 80C51单片机内部设有两个16位的可编程定时器/计数器。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。 2.3.1定时器/计数器的结构: 16位的定时/计数器分别由两个
19、8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。 2.3.2定时计数器的原理: 当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,显然,定时器的定时时间与系统的振荡频率有关。因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。如果晶振为12MHz,则计数周期为: T=1/(12×106)Hz×1/12=1μ
20、s 这是最短的定时周期。若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。 当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电平。若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。此后的机器周期S3P1期间,新的计数值装入计数器。所以检测一个由1至0的跳变需要两个机器周期,故外部事年的最高计数频率为振荡频率的1/24。 当CPU用软件给定时器设置了某种工作方式之后,定时器就会按设定的工作方式独立运行,不再占用CPU的操作时间,除非
21、定时器计满溢出,才可能中断CPU当前操作。CPU也可以重新设置定时器工作方式,以改变定时器的操作。由此可见,定时器是单片机中效率高而且工作灵活的部件。 下面我们简单介绍一下控制字的格式及各位的主要功能 工作方式控制寄存器(TMOD) TMOD寄存器是一个专用寄存器,用于设定两个定时器/计数器的工作方式。但TMOD寄存器不能位寻址,只能用字节传送指令设置其内容。 定时器/计数器控制寄存器TCON: TCON在特殊功能寄存器中,字节地址为88H,位地址(由低位到高位)为88H一8FH,由于有位地址,十分便于进行位操作。 TCON的作用是控制定时器的启、停,标志定时器溢出和中断情
22、况。 TCON的格式如下图所示。其中,TFl,TRl,TF0和TR0位用于定时器/计数器;IEl,ITl,IE0和IT0位用于中断系 位地址 8F 8E 8D 8C 8B 8A 89 88 位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 表1-1 TCON格式 各位定义如下: TF1:定时器1溢出标志位。 TR1:定时器1运行控制位。 TF0:定时器0溢出标志。 TR0:定时器0运行控制位。 IE1:外部中断1请求标志。 IT1:外部中断1触发方式选择位。 IE0:外部中断0请求标志。 IT0:外部中断0触发
23、方式选择位。 TCON中低4位与中断有关,我们将在下节课讲中断时再给予讲解。由于TCON是可以位寻址的,因而如果只清溢出或启动定时器工作,可以用位操作命令。例如:执行“CLR TF0”后则清定时器0的溢出;执行“SETB TR1”后可启动定时器1开始工作(当然前面还要设置方式定)。 定时器/计数器的初始化: 由于定时器/计数器的功能是由软件编程确定的,所以一般在使用定时/计数器前都要对其进行初始化,使其按设定的功能工作。初始货的步骤一般如下: 1、确定工作方式(即对TMOD赋值); 2、预置定时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1); 3、根据需要开放定时
24、器/计数器的中断(直接对IE位赋值); 4、启动定时器/计数器(若已规定用软件启动,则可把TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需给外引脚步加启动电平。当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时)。因为在不同工作方式下计数器位数不同,因而最大计数值也不同。 现假设最大计数值为M,那么各方式下的最大值M值如下: 方式0:M=213=8 192 方式1:M=216=65 536 方式2:M=28=256 方式3:定时器0分成两个8位计数器,所以两个M均为256。 因为定时器/计数器是作“加1”计数,并在计数满溢出时产生中断,因此初值X可以这样
25、计算: X=M-计数值 定时器/计数器的四种工作方式: 定时器T0或T1无论用作定时器或计数器都有4种工作方式:方式0、方式1、方式2和方式3。除方式3外,T0和T1有完全相同的工作状态。下面以T1为例,分述各种工作方式的特点和用法。 工作方式0:方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。当TL0的低5位计数溢出时,向TH0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位。 C/T为定时/计数选择:C/T=0,T1为定时器,定时信号为振荡周期12分频后的脉冲;C/T=l,T1为计数器,计数信号来自引脚T1的外部信号。 定时器启动后,
26、定时或计数脉冲加到TLl的低5位,从预先设置的初值(时间常数)开始不断增1。TL1计满后,向THl进位。当TL1和THl都计满之后,置位T1的定时器回零标志TFl,以此表明定时时间或计数次数已到,以供查询或在打开中断的条件下,可向CPU请求中断。如需进一步定时/计数,需用指令重置时间常数。 ⑵ TMOD寄存器初始化 为把定时器/计数器1设定为方式0,则M1M0=00;为实现定时功能,应使C/T=0;为实现定时 器/计数器1的运行控制,则GATE=0。定时器/计数器0不用,有关位设定为0。因此TMOD寄存器应初始化为00H。 ⑶ 由定时器控制寄存器TCON中的TR1位控制定时的启动和停
27、止 TR1=1启动,TR1=0停止。 工作方式1:1是16位计数结构的工作方式,计数器由TH0全部8位和TL0全部8位构成。与工作方式0基本相同,区别仅在于工作方式1的计数器TL1和TH1组成16位计数器,从而比工作方式0有更宽的定时/计数范围。 工作方式2: 8位自动装入时间常数方式。由TLl构成8位计数器,THl仅用来存放时间常数。启动T1前,TLl和THl装入相同的时间常数,当TL1计满后,除定时器回零标志TFl置位,具有向CPU请求中断的条件外,THl中的时间常数还会自动地装入TLl,并重新开始定时或计数。所以,工作方式2是一种自动装入时间常数的8位计数器方式。由于这种方式不
28、需要指令重装时间常数,因而操作方便,在允许的条件下,应尽量使用这种工作方式。当然,这种方式的定时/计数范围要小于方式0和方式1。 当计数溢出后,不是像前两种工作方式那样通过软件方法,而是由预置寄存器TH以硬件方法自动给计数器TL重新加载。变软件加载为硬件加载。 初始化时,8位计数初值同时装入TL0和TH0中。当TL0计数溢出时,置位TF0,同时把保存在预置寄存器TH0中的计数初值自动加载TL0,然后TL0重新计数。如此重复不止。这不但省去了用户程序中的 重装指令,而且也有利于提高定时精度。但这种工作方式下是8位计数结构,计数值有限,最大只能到255。 这种自动重新加载工作方式非常适用于
29、循环定时或循环计数应用,例如用于产生固定脉宽的脉冲,此外还可以作串行数据通信的波特率发送器使用。 工作方式3: 2个8位方式。工作方式3只适用于定时器0。如果使定时器1为工作方式3,则定时器1将处于关闭状态。 当T0为工作方式3时,TH0和TL0分成2个独立的8位计数器。其中,TL0既可用作定时器,又可用作计数器,并使用原T0的所有控制位及其定时器回零标志和中断源。TH0只能用作定时器,并使用T1的控制位TRl、回零标志TFl和中断源,通常情况下,T0不运行于工作方式3,只有在T1处于工作方式2,并不要求中断的条件下才可能使用。这时,T1往往用作串行口波特率发生器(见1.4),TH0用作定
30、时器,TL0作为定时器或计数器。所以,方式3是为了使单片机有1个独立的定时器/计数器、1个定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器l用于工作方式2,把定时器0用于工作方式3。下才可能使用。这时,T1往往用作串行口波特率发生器,TH0用作定时器,TL0作为定时器或计数器。所以,方式3是为了使单片机有1个独立的定时器/计数器、1个定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器l用于工作方式2,把定时器0用于工作方式3。
31、
32、
33、
34、
35、
36、
37、
38、 第3章 硬件设计 本文所涉及的电子定时器要求能定时给电器供电或断电,操作使用方便,采用AT89C2051单片机控制,4位共阳数码管显示时间,扬声器提示定时时间到,电磁继电器做电器电源输出控制。 本系统的硬件连接方式:单片机的P1口用来动态扫描
39、显示时间,P3口的用来确定数码管的位选,时间的调整计时,及继电器、扬声器的工作状态等。单片机的CPU 时序电路单片机的振荡器输入分别由引脚XTAL1和引脚XTAL2 来完成。只要将这两个引脚外接石英晶体和陶瓷电容,如下图所示, 就可与CPU 内部组成完整的振荡电路。单片机的一个机器周期含有6 个状态周期,而每个状态周期为2 个振荡器周期,因此一个机器周期共有12 个振荡周期,如振荡器的频率为12MHz,一个振荡器周期为1/12 微秒,而一个机器周期为1 微秒。下面对各部分电路进行详细介绍。 图3-1 整体硬件连接图 3.1 单片机AT89C2051资料及各部分设计 3.1.1 A
40、T89C2051的结构 AT89C2051是一带有2K字节闪速可编程可擦除只读存储体(EEPROM)的低电压,高性能8位CMOS微型计算机。如图所示。它采用ATMEL的高密非易失存储技术制造并和工业标准MCS—51指令集和引脚结构兼容。通过在单块芯片上组合通用的CPL1和闪速存储器, AT89C205是一强劲的微型计算机,它对许多嵌入式控制应用提供一高度灵活和成本低的解决办法。 图3-2 AT89C2051的结构图 此外,从AT89C2051内部结构图也可看出,其内部结构与8051内部结构基本一致(除模拟比较器外),引脚RST、XTAL1、XTAL2的特性和外部连接电路也完
41、全与51系列单片机相应引脚一致,但P1口、P3口有其独特之处 程序保密 89C2051设计有2个程序保密位,保密位1被编程之后,程序存储器不能再被编程除非做一次擦除,保密位2被编程之后,程序不能被读出。 软硬件的开发 89C2051可以采用下面2种方法开发应用系统。 (1) 由于89C2051内部程序存贮器为Flash,所以修改它内部的程序十分方便快捷,只要配备一个可以编程89C2051的编程器即可。调试人员可以采用程序编辑-编译-固化-插到电路板中试验这样反复循环的方法,对于熟练的MCS-51程序员来说,这种调试方法并不十分困难。当做这种调试不能够了解片内RAM的内容和程序的走向等
42、有关信息。 (2) 将普通8031/80C31仿真器的仿真插头中P1.0~P1.7和P3.0~P3.6引出来仿真205T,这种方法可以运用单步、断点的调试方法,但是仿真不够真实,比如,2051的内部模拟比较器功能,P1口、P3口的增强下拉能力等等。 3.1.2 AT89C2051主要性能 AT89C2051是ATMEL公司生产的带2K字节闪速可编程可擦除只读存储器(EEPROM)的8位单片机,它具有如下主要特性: ·和MCS-51产品的兼容 ·2K字节可重编程闪速存储器 ·耐久性:1,000写/擦除周期 ·2.7V~6V的操作范围 ·全静态操作:0Hz~24MHz
43、 ·两级加密程序存储器 ·128×8位内部RAM ·15根可编程I/O引线 ·两个16位定时器/计数器 ·六个中断源 ·可编程串行UART通道 ·直接LED驱动输出 ·片内模拟比较器 ·低功耗空载和掉电方式 3.1.3 AT89C2051的引脚说明 AT89C2051是一个有20个引脚的芯片,引脚如图1所示,与8051内部结构进行对比可发现,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚,因而芯片尺寸有所减少。 图3-3 AT89C
44、2051的引脚图 AT89C2051芯片的20个引脚功能为: 1. P1口:P1口是一8位双向I/O口。口引脚P1.2~P1.7提供内部上拉电阻。 P1.0和P1.1要求外部上拉电阻。P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(AIN0)和反相输入(AIN1)。P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。当P1口引脚写入“1”时,其可用作输入端。当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流(IIL)。 P1口还在闪速编程和程序校验期间接收代码数据。 2. P3口:P3口的P3.0~P3.5、P3.7是带有内部上拉电阻的
45、七个双向I/0引脚。P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。P3口缓冲器可吸收20mA电流。当P3口引脚写入“1”时,它们被内部上拉电阻拉高并可用作输入端。用作输入时,被外部拉低的P3口引脚将用上拉电阻而流出电流(IIL)。 P3口还用于实现AT89C2051的各种功能,如下表1所示。 P3口还接收一些用于闪速存储器编程和程序校验的控制信号。 P3口引脚 功能 P3.0 RXD(串行输入端口) P3.1 TXD(串行输出端口) P3.2 INT0(外中断0) P3.3 INT1(外中断1) P3.4
46、 TO(定时器0外部输入) P3.5 T1(定时器1外部输入) 表3-1 P3口的功能 从上述引脚说明可看出,AT89C2051没有提供外部扩展存储器与I/O设备所需的地址、数据、控制信号,因此利用AT89C2051构成的单片机应用系统不能在AT89C2051之外扩展存储器或I/O设备,也即AT89C2051本身即构成了最小单片机系统。 3. RST:复位输入。RST一旦变成高电平,所有的I/O引脚就复位到“1”。当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。 4. XTA
47、L1:作为振荡器反相放大器的输入和内部时钟发生器的输入。 5. XTAL2:作为振荡器反相放大器的输出。 6.Vcc:电源电压; 7.GND:地。 3.1.3单片机的最小工作系统 最小系统就是单片机在发挥具体测控功能时所必须的组成部分。如下图所示为最小系统方框图: 图3-4 单片机的最小系统 3.1.4单片机的复位电路设计 复位电路产生复位信号,复位信号送入RST 后还要送至片内的施密特触发器,由片内复位电路在每个机器周器的 S5P2 时刻对触发器输出采样信号,然后由内部复位电路产生复位操作所要的信号。一般的复位电路可分为上电自动复位和按键复位,我们在此选用的是
48、上电复位。: 上电自动复位原理:RST 引脚是复位信号的输入端,只要高电平的复位信号持续两个机器周期以上的有效时间,就可以使单片机 上电复位。上电自动复位是通过电容充电实现的,上电瞬间,RST端电位与 Vcc 相同,随充电电流的减少,RST 的电位逐渐下降,直到复位信号无效。按键复位在此不在作过多的介绍,其原理和上电复位是相同的。但其采用的是脉冲复位电路和电平复位电路两种。 3.2 八段数码管显示设计 通过讨论,我们选择了八段数码管来完成显示部分,下面详细介绍显示部分的设计. 3.2.1、八段数码管的结构 为了显示字符,要为 LED 显示器段码(或称字形代码),组成一 个 8 字形
49、字符的 7段,再加上 1 个小数点位,共计 8 段, 因此提供给 LED 显示器的显示段码为 1 个字节。各段码位的对应关系如下表所示. 十六进制数及空白字符与 P 的显示段码,下图分别为八段数码管的显示段的段码对照表(表3-2)和八段数码管的字形阴阳极段码对照表(表3-3) 段码位 D7 D6 D5 D4 D6 D2 D1 D0 显示段 pd g f e d e b a 表3-2 八段数码管段码 字型 共阳极段码 共阴极段码 字型 共阳极段码 0 C0H 3FH 9 90H 1 F9H 06H A 88H 2
50、A4H 5BM B 83H 3 B0H 4FH C C6H 4 99H 66H D A1H 5 92H 6DH E 86H 6 82H 7DH F 84H 7 F8H 07H 空白 FFH 8 80H 7FH P 8CH 表3-3 共阴共阳段码对照表 3.2.2、八段数码管的驱动方式 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 ① 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O






