资源描述
聊城职业技术学院毕业设计任务书系 别 计算机系 班 级 06电子信息 姓 名 刘丽娜 学 号 20061206017 毕业设计写作指导须知一、 毕业设计选题要符合专业培养目标的要求。论文(任务书)写作要做到论点明确、论据充分,说明透彻,语言准确恰当,书面整洁、字迹工整,图纸应清晰、工整,符合设计要求,符合国家有关标准和部分标准。字数、图纸数量符合学院的有关要求。并在规定的时间内完成。二、 答辩过程中学生要严肃认真,文明礼貌,谦虚谨慎,认真回答答辩主持人、委员等提出的问题。三、 填报有关表格时,应按项目要求逐项填实、填全、填清。学号20061206017姓名刘丽娜学 制三年专业电子信息工程技术年级06电子信息教学班负责人杨清虎地市山东省聊城市聊城职业技术学院教学班06电子信息设计题目单片机多功能电子时钟指导教师姓名杨清虎职务或职称助教一、 毕业设计的任务和具体要求:在智能化仪器仪表中,控制核心均为微处理器,而单片机以其高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表的首选微控制器,单片机结合简单的接口电路即可构成电子钟,它可广泛应用于工业、农业、日常生活等领域,与传统钟表相比较,它具有高精度、高可靠性、操作方便、价格便宜、智能化等特点,是钟表的一个发展方向,具有一定的实用价值。1.本课题任务如下:设计一个具有特定功能的电子钟,系统以AT89S5单片机为控制核心,结合外部电路完成电子钟的功能。该电子钟上电或按键复位后能自动显示系统提示符“00:00:00”, 进入时钟准备状态;按下电子钟启动键,电子钟从0时0分0秒开始运行,进入时钟运行状态;按下电子钟调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动键再次进入时钟运行状态2、本课题要求如下:(1)在AT89S5的P1口和P2口外接由六个LED数码管(LED5LED0)构成的显示器,用P1口作LED的段码输出口(P1.0P1.6对应于LED的ag),P2.5P2.0作LED的位控输出线(P2.5P2.0对应于LED5LED0),P3口外接四个按键A、B、C、D(对应于P3.2P3.5)。(2)、利用六个LED显示当前时间。(3)、四个按键的功能:D键用于电子钟启动;A键用于调时,范围0-23,0为24点,每按一次时加1;B键用于调分,范围0-59,0 为60分,每按一次分加1;C键用于调秒, 范围0-59,0为60秒,每按一次秒加1。(4)、单片机采用AT89S52,fosc=12MHZ。(5)、电子钟供电电源电路的设计。(6)、电子钟时钟电路,复位电路的设计。(7)、编写系统监控程序、键扫子程序、显示子程序及其它所需子程序、功能程序和中断服务程序。(8)、计算机输出课程设计说明书一份。 (9)、设计时间:二周(10)、制作电子钟实物。二、 毕业设计说明书应包含的内容:1、课程设计说明书封面;2、课程设计任务书封面及课程设计任务书;3、前言;4、课程设计说明书目录;5、电子钟功能说明及总体方案介绍;6、详细介绍电子钟的工作原理;7、绘制电子钟整机电路框图、整机电路原理图、电源电路原理图及PCB图各1份;8、列出电子钟元器件清单;9、详细介绍电子钟单元电路工作原理(包括电源电路、时钟电路、复位电路、键盘/显示接口电路及所用主要芯片);10、单片机硬件资源的使用分配情况;11、画出电子钟软件系统监控程序、各子程序、中断服务程序及各功能程序的流程框图;12、列出电子钟软件系统程序清单;13、写出电子钟的使用说明;14、设计体会,谈谈本设计的重点、难点及精妙之处,是否存在不足之点及改进意见;15、提出单片机技术课程教学建议;16、参考资料。三、 毕业设计应完成的图纸:四、其他要求:无五、毕业设计的期限: 自 1 月 1 日至 2009 年 2 月 1 日六、毕业设计(论文)进度计划:起 至 日 期工 作 内 容备 注2009.01.012009.01.07 2009.01.082009.01.142009.01.152009.01.22 2009.01.232009.02.01电子时钟电源电路设计单片机最小系统 电子时钟显示电路电子时钟按键电路原理图原理图,实物制作原理图,实物制作原理图,实物制作原理图,实物制作 参考文献、资料表文献、资料名称编 著 者出 版 单 位电子CAD-Protel电路设计Protel 99SE高级应用单片机实用技术单片机原理与应用技术单片机应用系统设计与实践MCS-51单片机原理与接口技术单片机应用技术M刘华东张伟 孙颖 赵晶刘高江力陈景初马家辰刘守义清华大学出版社人民邮电出版社清华大学出版社清华大学出版社北京航空航天大学出版社。哈尔滨工业大学出版社。西安电子科技大学出版社此表由学生填写所参考的文献、资料前言 电子科技日新月异,人们对现代电子设备的智能化和微型化及其精度提出了更高的要求,而单片机因其具有稳定可靠、 体积小、 价格低廉等特点,成为设计智能化仪器仪表的首选微控制器,因此本次我们没有选用传统的专用的时钟芯片,而是采用了AT89S5芯片,此款单片机可以使用软件对其进行在线编程,其灵活性和可靠性都相对提高。通过此次实物制作,增强了我们的动手能力,把理论与实践融合在一起。同时,也进一步加深了对单片机的硬件结构的理解和巩固,编程能力也得到了提高。在此将电子钟制作过程中用到的知识进行了一些总结,并记录了遇到的问题,希望自己今后能注意,并且能够全方位的提高自己。同时也希望能成为读者的参考资料,能帮助读者避免出现相同的问题,并能从中得到一些启发。在此要感谢杨老师对我的指导和我同学对我的帮助,感谢同组人的合作及互相鼓励。由于本人水平有限,书中的错漏在所难免,恳请读者批评指正。目 录1 多功能电子表说明及总体方案介绍1.1 多功能电子表计时方案1.2 多功能电子表键盘/显示方案2 电子钟的工作原理3 多功能电子表原理框图、原理图及PCB图3.1 多功能电子表原理框图3.2 多功能电子表整机原理图3.3 多功能电子表电路PCB图4 多功能电子表元器件清单5 多功能电子表单元电路工作原理及芯片5.1 电源电路工作原理5.2 时钟电路工作原理5.3 复位电路工作原理5.4 键盘电路工作原理5.5 显示器工作原理5.6 AT89S51芯片5.7 74LS244芯片5.8 S8550PNP三极管5.9 四位一体数码管6 单片机硬件资源分配7 程序流程图8 电子钟程序清单9 误差分析10 电子钟使用说明11 设计体会12 教学意见13 参考资料1 多功能电子表说明及总体方案介绍本次设计电子钟系统功能简单,用单片机的最小系统就能得以实现。而单片机的最小系统设计中实际上最重要的就是对键盘/显示器接口电路的设计,由于系统功能不同所以要求就不同,接口设计也就不同。对一个键盘/显示器接口设计应从整个系统出发,综合考虑软、硬件特点。下面是本人在设计前对各种设计方案的考虑:1.1 多功能电子表计时方案方案一:采用实时时钟芯片实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需程序干预。计算机可通过中断或查询方式读取计时数据进行显示,因此计时功能的实现无需占用CPU的时间,程序简单。此外,实时时钟芯片多数带有锂电池做后备电源,具备永不停止的计时功能;具有可编程方波输出功能,可用做实时测控系统的采样信号等;有的实时时钟芯片内部还带有非易失性RAM,可用来存放需长期保存但有时也需变更的数据。由于功能完善,精度高,软件程序设计相对简单,且计时不占用CPU时间,因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。方案二: 软件控制。利用单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时及秒表计时。该方案节省硬件成本,且能使设计者对单片机的指令系统能有更深入的了解,从而掌握单片机应用技术MCS-51汇编语言程序设计方法,因此,本系统设计采用此种软件控制方法来实现计时。而由于ATMEL公司的AT89S51单片机是低功耗的具有4KB在线可编程Flash存储器的单片机。它与通用80C51系列单片机的指令系和引脚兼容。片内的Flash可允许在线重新编程,也可使用通用非易失性存储器编程。它将通用CPU和在线可编程Flash集成在一个芯片上,形成了功能强大、使用灵活和具有较高性能价格比的微控制器。它的功能强大,而且也较容易购买,故本设计中所选的单片机为AT89S51单片机。1.2 多功能电子表键盘/显示方案方案一: 8279扩展。该方案方框图如图1.2.1所示,8279是一种可编程的键盘/显示接口专用芯片,它含有键盘输入和显示输出两种功能,键扫描程序和动态显示程序全由8279硬件自动完成,此种方案能以比较简单的硬件 电路和较少的软件开销实现单片机与键盘、LED显示器的接口。方案二: 8155扩展,LED动态显示。 该方案方框图如图1.2.2所示,8155是一块可编程的接口芯片,与单片机的接口非常简单,它的键盘、显示共用一个接口电路,可节省I/O口。但动态扫描方式需占用CPU较多的时间,在单片机没有太多实时测控任务的情况下可以采用。方案三: 串口扩展,LED静态显示。该方案方框图如图1.2.3所示,独立式键盘配置灵活,软件结构简单,按键较多时不宜采用。静态显示占用口资源少,采用串口传输实现静态显示, LED数码管与单片机之间通过6个移位寄存器相连,显示亮度有保证,但此方案的硬件开销大,电路复杂,信息刷新速度慢,比较适用于并行口资源较少的场合。方案四: 独立式按键,LED动态显示。 该方案方框图如图1.2.4所示,独立式按键直接与单片机I/O口相连构成键盘,每个按键不会相互影响,因本系统用到的按键比较少,采用独立式键盘不会浪费I/O口线,所以本系统采用独立式键盘。动态显示的亮度虽然不如静态显示,但其硬件电路较简单,可节省硬件成本,虽然动态扫描需占用CPU较多的时间,但本系统中的单片机没有很多实时测控任务,因此,本系统采用此种方案。 2 多功能电子表的工作原理本设计中的电子钟的核心是AT89S5单片机,其内部带有4KB在线可编程Flash存储器的单片机,无须外扩程序存储器,硬件电路主要由四部分构成:时钟电路,复位电路,键盘以及显示电路。时钟电路是电子表硬件电路的核心,没有时钟电路,电子表将无法正常工作计时。本系统时钟电路采用的晶振的频率为12MHz,定时器采用的是定时器0工作在方式1定时,用于实现时、分、秒的计时,定时时间为62.5ms。复位电路可使电子表恢复到初始状态。键盘可对电子表进行开启、停止,还能实现时、分、秒的显示及设定等操作。显示电路由两个共阳级4位一体LED数码管构成,它的段控端和位控端通过74LS244及其S8550PNP型号三极管与AT89S51单片机的I/O口相连,显示器可使电子表显示出时、分、秒。 多功能电子表的计时原理为:上电后,电子表显示P.提示符,按下A键后,电子表从00:00:00开始计时。当定时器0的定时时间满62.5ms后,定时器0溢出一次,溢出满16次后,电子表的秒加1,满60秒后,分加1,满60分后,时加1,满24时后,电子表重新从00:00:00开始计时。3 多功能电子表原理方框图、原理图及PCB图3.1 多功能电子表原理方框图多功能电子表整机电路方框图如图3.1 3.2 多功能电子表电路原理图3.2.1多功能电子表电源电路原理图直流稳压电源电路原理图如图3.2所示3.2.2 多功能电子表整机电路原理3.3 多功能电子表电路PCB图3.3.1 多功能电子表电源电路PCB图电源电路PCB图如图3.4所示 3.3.2 多功能电子表整机电路PCB图多功能电子表整机电路PCB图如图3.5所示3.5整机PCB图4 多功能电子表元器件清单多功能电子表电路所有元器件清单如表4.1所示表4.1 多功能电子表元器件清单1元件名称封装形式元件号LED数码管(共阳极)DIP-12D1LED数码管(共阳极)DIP-12D2510电阻AXIAL0.4R1510电阻AXIAL0.4R2510电阻AXIAL0.4R3510电阻AXIAL0.4R4510电阻AXIAL0.4R5510电阻AXIAL0.4R6510电阻AXIAL0.4R7510电阻AXIAL0.4R81K电阻AXIAL0.4R9200电阻AXIAL0.4R104.7K电阻AXIAL0.4R114.7K电阻AXIAL0.4R124.7K电阻AXIAL0.4R134.7K电阻AXIAL0.4R144.7K电阻AXIAL0.4R154.7K电阻AXIAL0.4R164.7K电阻AXIAL0.4R174.7K电阻AXIAL0.4R18电源插座UINDIANYUAN74LS244芯片DIP-20A1S8550PNP三极管TO-585501S8550PNP三极管TO-585502S8550PNP三极管TO-585503S8550PNP三极管TO-585504S8550PNP三极管TO-585505S8550PNP三极管TO-585506轻触开关ADIP04A轻触开关BDIP04B轻触开关CDIP04C轻触开关DDIP04D轻触开关DIP04S512M晶振XTAL1Y133pF电容RAD0.2C133pF电容RAD0.2C222F电容RB.2/.4C37805芯片TO-220U10.33F电容RAD0.2C10.1F电容RAD0.2C2220F电容RB.2/.4C3220F电容RB.2/.4C4桥式整流DIP-04D2二极管DIODE0.4D111V变压器DIP-5TR扩展插针SIP08J0扩展插针SIP08J15 多功能电子表单元电路工作原理介绍5.1 电源电路工作原理 图5.1所示为集成直流稳压电源电路的原理图,本电源电路是由集成稳压器构成的。电路可分成三部分:电源变压器部分、整流滤波部分和稳压部分。变压器原边为工频交流220V电压,经过变压后,变压器副边的电压变为交流11V,11V交流电压经过桥式整流电路整流后变为直流10V电压,直流10V电压作为CW7805的输入电压,CW7805输出+5V电压。图中D2为整流桥,它由四个整流二极管接成电桥形式。C3为滤波电容,C1用于抵消输入端较长接线的电感效应,以防止自激振荡,还可抑制电源的高频脉冲干扰。一般取0.11F。CW7805为三端固定输出集成稳压器,其输入和输出电压都为固定值,它的输入电压为+10V,输出电压为+5V。C2和C4用以改善负载的瞬态响应,消除电路的高频噪声,同时也具有消振作用。5.2 时钟电路工作原理 图5.2所示为时钟电路原理图,在AT89S51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。 5.3 复位电路工作原理 图5.3所示为复位电路原理图,复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序,并使其它功能单元处于一个确定的初始状态。本复位电路采用的是按键复位,它是通过复位端经电阻与VCC电源接通而实现的,它兼具上电复位功能。因本系统的晶振的频率为12MHz,所以,复位信号持续时间应当超过2S才能完成复位操作。5.4 键盘工作原理 图5.4所示为键盘原理图,本系统采用的是独立式键盘结构,每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。它软件是采用查询式结构,首先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,然后,再转向该键的功能处理程序。 5.5 显示器工作原理 系统采用动态显示方式,用P0口来控制LED数码管的段控线,而用P2口来控制其位控线。动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。图中的S8550作为驱动器,而8个510欧姆电阻则起限流作用。 由图5.5可知,要想让数码管那一段亮,在该数码管位控段为高电平的情况下给这段送低电平就可以了。显示电路结构采用动态扫描的方式,所有数码管的段控端公用单片机P0口的8根输出口线,数码管的段控端a、b、c、d、e、f、g、dp分别接到P0口的P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7口线上,每个数码管的位控线单独占用单片机P2口一根输出口线,8位数码管从高位到低位分别接P2.0P2.7引脚。段控码(低电平有效)由P0口输出经上拉电阻上拉电压后通过锁存器74LS244送到数码管的段控端,位控码由P2口输出经三极管S8550驱动后送到数码管的位控端。在单片机内部显示缓冲区79H、7AH、7BH、7CH、7DH、7EH内的值分别是秒的个位、秒的十位、分的个位、分的十位、时的个位、时的十位,显示器LED0、LED1、LED2、LED3、LED4、LED5分别显示秒的个位十位、分的个位十位、时的个位十位,由图5.5所示。数码管动态显示:由于显示的数据和LED数码管的段控码并不是一一对应的关系,即显示的数据与数码管的字型代码不相符。显示数据与字型代码之间存在着转换关系,数码管段控数据和数码管各段的对应关系如表5.1、表5.2所示。表5.1 数码管数据和数码管每段的对应关系D7D6D5D4D3D2D1D0LED显示码a111111100FEHb111111010FDHc111110110FBHd111101110F7He111011110EFHf110111110DFHg101111110BFHdp011111117FH表5.2 数码管断码和字型的对应关系(共阳极)字型D7D6D5D4D3D2D1D0段码dpgfedcba0110000000CO1111110010F92101001000A43101100000B04100110019951001001092610000010827111110000F88100000008091001000090A1000100088B1000001183C110001100C6D101000000A0E1000011086F100011108EP.0000011006全亮0000000000全灭111111110FF从电子钟程序清单中的显示程序可以知道:数据表格存储单元从首地址到最高位分别存放的是共阳极数码管0、1、2、3、4、5、6、7、8、9、P.、灭的十六进制字型代码,所以只要把显示缓冲区内的数值加上偏移地址rel(偏移量计算方法如式3.1所示),把和送到累加器A中,使用MOVC A, A+PC就可以取出缓冲区内要显示数据的字型代码,当然要取P.和灭的字型代码就要分别给缓冲区送0AH、0BH。 偏移地址rel=数据表格首地址-MOVC A A+PC指令单元首地址-1 式3.1在动态扫描时,显示缓冲区79H内部存放的是要显示的秒的个位的数值,使用MOVC A, A+PC指令取出段控码,由P0口输出通过锁存器74LS244后送到数码管的段控端,给P2口送01H通过锁存器74LS244驱动以后,只有LED0位的位控端有效,此时只有LED0被点亮来显示秒的个位,延时持续点亮一段时间,然后把显示缓冲单元地址加1,位控值左移一位,取出段控码,再把段控码和位控码送到数码管显示器,此时只有LED1被点亮显示秒的十位,延时持续点亮一段时间,就这样通过逐个地从低位到高位点亮各个显示器,扫描到最高位时的十位被点亮就返回。这样虽然在任一时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。5.6 AT89S51芯片介绍如图5.7所示为AT89S51芯片的引脚图兼容标准MCS-51指令系统的AT89S51单片机是一个低功耗、高性能CHMOS的单片机,片内含4KB在线可编程Flash存储器的单片机。它与通用80C51系列单片机的指令系统和引脚兼容。AT89S51单片机片内的Flash可允许在线重新编程,也可用通用非易失性存储编程器编程;片内数据存储器内含128字节的RAM;有40个引脚,32个外部双向输入/输出(I/O)端口;具有两个16位可编程定时器;中断系统是具有6个中断源、5个中断矢量、2级中断优先级的中断结构;震荡器频率0到33MHZ,因此我们在此选用12MHZ的晶振是比较合理的;具有片内看门狗定时器;具有断电标志POF等等。AT89S51具有PDIP,TQFP和PLCC三种封装形式。上图就是PDIP封装的引脚排列,下面介绍各引脚的功能。P0口:8位、开漏级、双向I/O口 。P0口可作为通用I/O口,但须外接上拉电阻;作为输出口,每各引脚可吸收8各TTL的灌电流。作为输入时,首先应将引脚置1。P0也可用做访问外部程序存储器和数据存储器时的低8位地址/数据总线的复用线。在该模式下,P0口含有内部上拉电阻。在FLASH编程时,P0口接收代码字节数据;在编程效验时,P0口输出代码字节数据(需要外接上拉电阻)。P1口:8位、双向I/0口,内部含有上拉电阻。P1口可作普通I/O口。输出缓冲器可驱动四个TTL负载;用作输入时,先将引脚置1,由片内上拉电阻将其抬到高电平。P1口的引脚可由外部负载拉到低电平,通过上拉电阻提供电流。 在FLASH并行编程和校验时,P1口可输入低字节地址。在串行编程和效验时,P1.5/MO-SI,P1.6/MISO和P1.7/SCK分别是串行数据输入、输出和移位脉冲引脚。 P2口:具有内部上拉电阻的8位双向I/O口。P2口用做输出口时,可驱动4各TTL负载;用做输入口时,先将引脚置1,由内部上拉电阻将其提高到高电平。若负载为低电平,则通过内部上拉电阻向外部输出电流。CPU访问外部16位地址的存储器时,P2口提供高8位地址。当CPU用8位地址寻址外部存储时,P2口为P2特殊功能寄存器的内容。在FLASH并行编程和校验时,P2口可输入高字节地址和某些控制信号。P3口:具有内部上拉电阻的8位双向口。P3口用做输出口时,输出缓冲器可吸收4各TTL的灌电流;用做输入口时,首先将引脚置1,由内部上拉电阻抬位高电平。若外部的负载是低电平,则通过内部上拉电阻向输出电流。在与FLASH并行编程和校验时,P3口可输入某些控制信号。P3口除了通用I/O口功能外,还有替代功能,如表5.3所示表5.3 P3口的替代功能引脚符号说明P3.0RXD串行口输入P3.1TXD串行口输出P3.2/INT0外部中断0P3.3/INT1外部中断1P3.4T0T0定时器的外部的计数输入P3.5T1T1定时器的外部的计数输入P3.6/WR外部数据存储器的写选通P3.7/RD外部数据存储器的读选通RST:复位端。当振荡器工作时,此引脚上出现两个机器周期的高电平将系统复位。ALE/ :当访问外部存储器时,ALE(允许地址锁存)是一个用于锁存地址的低8位字节的书粗脉冲。在Flash 编程期间,此引脚也可用于输入编程脉冲()。在正常操作情况下,ALE以振荡器频率的1/6的固定速率发出脉冲,它是用作对外输出的时钟,需要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。如果希望禁止ALE操作,可通过将特殊功能寄存器中位地址为8EH那位置的“0”来实现。该位置的“1”后。ALE仅在MOVE或MOVC指令期间激活,否则ALE引脚将被略微拉高。若微控制器在外部执行方式,ALE禁止位无效。:外部程序存储器读选取通信号。当AT89S51在读取外部程序时, 每个机器周期 将PSEN激活两次。在此期间内,每当访问外部数据存储器时,将跳过两个信号。/Vpp:访问外部程序存储器允许端。为了能够从外部程序存储器的0000H至FFFFH单元中取指令,必须接地,然而要注意的是,若对加密位1进行编程,则在复位时,的状态在内部被锁存。执行内部程序应接VCC。不当选择12V编程电源时,在Flash编程期间,这个引脚可接12V编程电压。XTAL1:振荡器反向放大器输入端和内部时钟发生器的输入端。XTAL2:振荡器反相放大器输出端。5.7 74LS244驱动器74LS244是单向总线驱动器。是8输入8输出芯片,中1G和2G为使能端,低电平有效。它的外部管脚图如图5.8所示。74LS244是一种三态输出的八缓冲器和线驱动器,该芯片的逻辑电路图和引脚图如图5.8所示。从图5.8可见,该缓冲器有8个输入端,分为两路1A11A4,2A12A4,同时8个输出端,也分为两路1Y11Y4,2Y12Y4,分别由2个门控信号1G和2G控制,当记为低电平时,1Y11Y4的电平与1A11A4的电平相同,即输出反映输入电平的高低;同样,当2G为低电平时,1Y11Y4的电平与2A12A4的电平和同。而当1G(或2G)为高电平时,输出1A11A4(或2A12A4)为高阻态。经74LS244缓冲后,输入信号被驱动,输出信号的驱动能力加大了。其功能表如表5.4所示,表中 H为高电平,L为低电平,A为高阻态,X为任意状态表5.4 74LS244引脚功能表输入输出GAYLLLLHHNXX5.8 S8550PNP三极管5.8.1主要用途:作为音频放大器,应用于收录机、电动玩具等电子产品。(与S8050互补)其管脚图如下图5.95.8.2极限值如下表5.5 参数符号标称值单位集电极、基极击穿电压VCBO-40V集电极、发射极击穿电压VCEO-25V发射极、基极击穿电压VEBO-6V集电极电流IC-1.5A集电极功率PC1W结温TJ125贮存温TSTG-55-1255.8.3电参数(Ta=25)电参数表5.6参数符号测试条件最小值典型值最大值单 位集电极漏电流ICBOVCB=-35,IE=0-100nA发射极漏电流IEBOVBE=-6,IC=0-100nA集电极、发射极击穿电压BVCEOIC=-2mA,IB=0-25V发射极、基极击穿电压BVEBOIE=-100A,IC=0-6V集电极、基极击穿电压BVCBOIC=-100A,IE=0-40V集电极、发射极饱和压降VCE(sat)IC=-800mA,IB=-80mA-0.5V基极、发射极饱和压降VBE(sat)IC=-800mA,IB=-80mA-1.2V基极、发射极压降VBEVCE=-1V,IC=-10mA-1.0V直流电流增益HFE1VCE=-1V,IC=-100mA85300HFE2VCE=-1V,IC=-800mA40表5.7 十六进制数字型代码字型共阳极代码共阴极代码字型共阳极代码共阴极代码0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHb83H7CH3B0H4FHCC6H39H499H66HdA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H灭FFH00H880H7FH6 单片机硬件资源的分配本次设计用到了单片机正常工作的硬件资源,如(连接晶振的引脚XTAL1和XTAL2,复位引脚RESET),对其硬件资源还做了具体的安排。(1).P0口作为数码管显示器的段控输出口,对数码管显示器进行控制。(2).P1口P1.0P1.3接了四个独立式分别为A键、B键、C键、D键,用于对键盘的控制,P1.5、P1.6、P1.7则作为ISP程序下载的输入端。(3).P2口该口全部用于数码管的位控端。(4).定时/计数器使用定时器0来实现本次电子钟的运行。(5).内部存储单元30H存储定时/计数器0的中断次数。31H36H分别作为时、分、秒个位和十位的数据存储单元。79H7E分别作为LED0、LED1、LED2、LED3、LED4、LED5显示缓冲单元。(6).通用寄存器第0组寄存器:R0、R1、R3、R7,用来存放键功能程序的数据;第1组寄存器:R3,用来存放中断服务程序的数据;第2组寄存器:R1、R4,用来存放显示程序的数据。(7).专用寄存器定时器控制寄存器TCON,通过设置该寄存器中TR0位的状态来控制定时/计数器0的启动/停止;中断允许寄存器IE,通过设置该寄存器EA/ET0位的状态来设置定时/计数器0中断允许/禁止;定时/计数器工作方式寄存器TMOD,设置定时/计数器0的工作方式。7 程序流程图 8 电子钟程序清单调整运行后的电子钟程序清单;该程序实现电子钟时、分、秒运行,时、分、秒调整;十、分、秒同时显示;共A、B、C、D四个按键,A键实现电子钟的运行和停止、B键调时、C键调分、D键调秒;该电子钟是单片机AT89S51控制,使用芯片中的定时器0方式1实现定时功能;P0口输出段控码、P2口输出位控码控制数码管显示;该电子钟共使用两个4位一体数码管(S02841A-B)显示;系统初始化程序*ORG 0000H AJMP MAIN;转到系统初始化程序 ORG 000BH AJMP PITO;转到定时器0中断服务程序 ORG 0100H MAIN: MOV SP, #60H;确立堆栈区 MOV TMOD, #01H;设定定时器0为工作方式1 MOV TL0, #0DCH;装计数器初值 MOV TH0, #0BH CLR 21H.0 CLR TR0H;TR0置“0”,定时关闭 SETB EAH;EA置“1”,中断总允许 SETB ET0H ;ET0置“1”,定时器0中断 允许 MOV 30H, #10H;循环次数 MOV 7EH, #0AH;P.点显示初始化 MOV R0, #79H MOV R1, #05H PP: MOV R0, #0BH INC R0 DJNZ R1, PP MOV R0, #31H;时、分、秒值存储单元清零 MOV R1, #06H Q00: MOV R0, #00H INC R0 DJNZ R1, Q00;监控程序* LOOP: LCALL DIR;调显示子程序 LCALL KEY;调键扫描子程序 LOOP1: JB 20H.0, KEYA ;A键是否按下,是跳转到A键功能程序 JB 20H.1, KEYB ;B键是否按下,是跳转到B键功能程序 JB 20H.2, KEYC ;C键是否按下,是跳转到C键功能程序JB 20H.3, KEYD ;D键是否按下,是跳转到D键功能程序 LCALL DIR LJMP LOOP;跳转到监控程序;A键功能子程序* KEYA: CPL TR0H ;开启/关闭定时器 SETB 21H.0 AJMP LOOP ;返回;B键功能子程序* KEYB: JB TR0H, KEYBO ;定时器是否运行,是跳转 JNB 21H.0, KEYBOO MOV R0, #36H ;时值存储单元地址送R0 LCALL DAAD1 ;调加1子程序 MOV A, R3 ;时值加1后的值送累加器A XRL A, #24H JNZ KEYBO ;时值是否到24时,否返回 LCALL CLR0 ;时值存储单元清零 KEYBO: MOV 7DH, 35H MOV 7EH, 36H KEYBOO: LJMP LOOP ;返回监控程序;C键功能子程序* KEYC: JB 8CH, KEYCO ;定时器是否运行,否跳转 JNB 21H.0, KEYCOO MOV R0, #34H ;分值存储单元地址送R0 LCALL DAAD1 ;调加1子程序 MOV A, R3 ;分值加1后的值送累加器A XRL A, #60H JNZ KEYCO ;分值是否到60分,否返回 LCALL CLR0 ;分值存储单元清零 KEYCO: MOV 7CH, 34H MOV 7BH, 33H KEYCOO: LJMP LOOP ;返回监控程序;D键功能子程序* KEYD: JB 8CH, KEYDO ;定时器是否运行,否跳转 JNB 21H.0, KEYDOO MOV R0, #32H ;秒值存储单元地址送R0 LCALL DAAD1 ;调加1子程序 MOV A, R3 ;秒值加1后的值送R0 XRL A, #60H JNZ KEYDO;秒值是否到60秒,否返回 LCALL CLR0;秒值存储单元清0 KEYDO: MOV 79H, 31H MOV 7AH, 32H KEYDOO: LJMP LOOP;返回监控程序;中断服务程序* PITO: PUSH PSW;中断服务程序,现场保护 PUSH A SETB RS0;选第三组通用寄存器 SETB RS1 MOV TL0, #0DCH;计数器重新加载 MOV TH0, #0BH MOV A, 30H;循环次数减1 DEC A MOV 30H, A JNZ RETO;不满16次,转RET0返回 MOV 30H, #10H;满16次开始计时操作 MOV R0, #32H;秒显示单元地址 ACALL DAAD1;秒加1 MOV A, R3;加1后秒值在R3中 XRL A, #60H;判是否到60秒 JNZ RETO;不到转RET0返回 ACALL CLR0;到60秒显示单元清0 MOV R0, #34H;分显示单元地址 ACALL DAAD1;分加1 MOV A, R3;加1后分值在R3中 XRL A, #60H;判是否到60分 JNZ RETO;不到转RET0返回 ACALL CLR0;到60分显示单元清0 MOV R0, #36H;时显示单元地址 ACALL DAAD1;时加1 MOV A, R3;加1后时值在R3中 XRL A, #24H;判是否到24时 JNZ RETO;不到转RET0返回 ACALL CLR0;到24时显示单元清0 RETO: CLR RS0;返回第0组通用寄存器 CLR RS1 POP A;现场恢复 POP PSW MOV 79H, 31H;时、分、秒值放缓冲区 MOV 7AH, 32H MOV 7BH, 33H MOV 7CH, 34H MOV 7DH, 35H MOV 7EH, 36H RETI ;中断返回;加1子程序* DAAD1: MOV A, R0 ;加1子程序,十位送A DEC R0 SWAP
展开阅读全文