首页 毕业论文:基于AT89S51的电子钟(带电路图及程序)

毕业论文:基于AT89S51的电子钟(带电路图及程序)

举报
开通vip

毕业论文:基于AT89S51的电子钟(带电路图及程序)毕业论文:基于AT89S51的电子钟(带电路图及程序) 毕业论文:基于AT89S51的电子钟(带电路图及程序) 《单片机技术》课程设计任务 一、设计题目:基于单片机并行口的电子钟的设计 二、适用班级:电子 0303 三、指导教师:王韧 四、任务与要求: 在智能化仪器仪表中,控制核心均为微处理器,而单片机以其高性能、高 速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表 的首选微控制器,单片机结合简单的接口电路即可构成电子钟,它可广泛应用 于工业、农业、日常生活等领域,与传统钟表...

毕业论文:基于AT89S51的电子钟(带电路图及程序)
毕业论文:基于AT89S51的电子钟(带电路图及程序) 毕业论文:基于AT89S51的电子钟(带电路图及程序) 《单片机技术》课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 任务 一、设计题目:基于单片机并行口的电子钟的设计 二、适用班级:电子 0303 三、指导教师:王韧 四、任务与要求: 在智能化仪器仪表中,控制核心均为微处理器,而单片机以其高性能、高 速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表 的首选微控制器,单片机结合简单的接口电路即可构成电子钟,它可广泛应用 于工业、农业、日常生活等领域,与传统钟表相比较,它具有高精度、高可靠 性、操作方便、价格便宜、智能化等特点,是钟表的一个发展方向,具有一定 的实用价值。 1、本课题任务如下: 设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动 显示系统提示符 “P.”, 进入时钟准备状态;第一次按电子钟启动/调整 键,电子钟从 0 时 0 分 0 秒开始运行,进入时钟运行状态;再次按电子钟 启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时 间,调整结束后可按启动/调整键再次进入时钟运行状态。 2、本课题要求如下: (1)在 AT89S51 的 P0 口和P2 口外接由六个LED 数码管 LED5,LED0 构成的显示器,用 P0 口作LED 的段码输出口(P0.0,P0.7 对应于 LED 的 a,dp),P2.5,P2.0 作 LED 的位控输出线(P2.5,P2.0 对应于 LED5, LED0),P1 口外接四个按键A、B、C、D (对应于P1.0,P1.3)。 (2)、利用六个LED 显示当前时间。 (3)、四个按键的功能:A 键用于电子钟启动/调整;B 键用于调时,范围 0-23,0 为 24 点,每按一次时加 1;C 键用于调分,范围 0-59,0 为 60 分, 每按一次分加 1;D 键用于调秒, 范围 0-59,0 为 60 秒,每按一次秒加 1。 (4)、单片机采用AT89S51,f 12MH 。 osc Z (5)、电子钟供电电源电路的设计。 (6)、电子钟时钟电路,复位电路的设计。 (7)、编写系统监控程序、键扫子程序、显示子程序及其它所需子程序、 功能程序和中断服务程序。 (8)、计算机输出课程设计说明 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 一份。 (9)、设计时间:二周 (10)、制作电子钟实物。 五、课程设计说明书主要内容 1、课程设计说明书封面; 2、课程设计任务书封面及课程设计任务书; 3、前言; 4、课程设计说明书目录; 5、电子钟功能说明及总体 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 介绍; 6、详细介绍电子钟的工作原理; 7、绘制电子钟整机电路框图、整机电路原理图、电源电路原理图及 PCB 图 各 1 份; 8、列出电子钟元器件清单; 9、详细介绍电子钟单元电路工作原理(包括电源电路、时钟电路、复位电 路、键盘/显示接口电路及所用主要芯片); 10、单片机硬件资源的使用分配情况; 11、画出电子钟软件系统监控程序、各子程序、中断服务程序及各功能程序 的流程框图; 12、列出电子钟软件系统程序清单; 13、写出电子钟的使用说明; 14、设计体会,谈谈本设计的重点、难点及精妙之处,是否存在不足之点及 改进意见; 15、提出《单片机技术》课程教学建议; 16、参考资料。 六、课程设计说明书书写格式 参照 “课程设计说明书书写格式”文件。 七、参考资料 [1]、曹巧媛,单片机原理及应用[M],北京:电子工业出版社,1997.7。 [2]、赵秀珍,单永磊,单片微型计算机原理及其应用[M],北京:中国水 利水电出版社,2001.8。 [3]、张毅刚,修林成,胡振江,MCS-51 单片机应用设计[M],哈尔滨:哈 尔滨工业大学出版社,1990.8。 [4]、张洪润,兰清华,单片机应用技术 教程 人力资源管理pdf成真迷上我教程下载西门子数控教程protel99se入门教程fi6130z安装使用教程 [M],北京:清华大学出版社, 1997.11。 [5]、李华,MCS-51 系列单片机实用接口技术[M],北京:北京航空航天大 学出版社,1993.8。 [6]、陈景初,单片机应用系统设计与实践[M],北京:北京航空航天大学 出版社。 [7]、马家辰,MCS-51 单片机原理与接口技术[M],哈尔滨:哈尔滨工业大 学出版社。 [8]、刘守义,单片机应用技术[M],西安:西安电子科技大学出版社。 电气自动化教研室 2005 年 9 月 10 日 前 言 电子科技日新月异,人们对现代电子设备的智能化和微型化及其精度提出 了更高的要求,而单片机因其具有稳定可靠、 体积小、 价格低廉等特点,成 为设计智能化仪器仪表的首选微控制器,因此本次我们没有选用传统的专用的 时钟芯片,而是采用了 AT89S51 芯片,此款单片机可以使用软件对其进行在线 编程,其灵活性和可靠性都相对提高。 通过此次实物制作,增强了我们的动手能力,把理论与实践融合在一起。同 时,也进一步加深了对单片机的硬件结构的理解和巩固,编程能力也得到了提 高。在此将电子钟制作过程中用到的知识进行了一些总结,并记录了遇到的问 题,希望自己今后能注意。同时也希望能成为读者的参考资料,能帮助读者避 免出现相同的问题,并能从中得到一些启发。 在此要感谢王老师对我的指导,感谢同组人的合作及帮助过我的同学。由 于编者水平有限,书中的错漏在所难免,恳请读者批评指正。 编者:吴 海 林 2005―11―13 目 录 1 多功能电子表说明及总体方案介 绍............................... 1 1.1 多功能电子表计时方 案 ...................................... 1 1.2 多功能电子表键盘/显示方 案 ................................. 2 2 电子钟的工作原 理 ............................................. 4 3 多功能电子表原理框图、原理图及 PCB 图......................... 5 3.1 多功能电子表原理框 图 ...................................... 5 3.2 多功能电子表整机原理 图.................................... 5 3.3 多功能电子表电路 PCB 图................................... 7 4 多功能电子表元器件清 单 ...................................... 9 5 多功能电子表单元电路工作原理及芯 片 ......................... 11 5.1 电源电路工作原 理 ........................................ 11 5.2 时钟电路工作原 理 ........................................ 11 5.3 复位电路工作原 理 ........................................ 12 5.4 键盘电路工作原 理 ........................................ 12 5.5 显示器工作原 理 .......................................... 13 5.6 AT89S51 芯 片............................................. 17 5.7 74LS244 芯 片............................................. 20 5.8 S8550PNP 三极 管.......................................... 21 5.9 四位一体数码 管 .......................................... 23 6 单片机硬件资源分 配 ......................................... 25 7 程序流程 图 ................................................. 26 8 电子钟程序清 单 ............................................. 32 9 误差分 析 ................................................... 40 10 电子钟使用说 明 ............................................. 43 11 设计体 会 ................................................... 44 12 教学意 见 ................................................... 45 13 参考资 料 ................................................... 46 1 多功能电子表说明及总体方案介绍 本次设计电子钟系统功能简单,用单片机的最小系统就能得以实现。 而单 片机的最小系统设计中实际上最重要的就是对键盘/显示器接口电路的设 计,由 于系统功能不同所以要求就不同,接口设计也就不同。对一个键盘/显示器接口 设计应从整个系统出发,综合考虑软、硬件特点。下面是本人在设计前对各种 设计方案的考虑: 1.1 多功能电子表计时方案 方案一:采用实时时钟芯片 实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计 时数据的更新每秒自动进行一次,不需程序干预。计算机可通过中断或查询方 式读取计时数据进行显示,因此计时功能的实现无需占用 CPU 的时间,程序简 单。此外,实时时钟芯片多数带有锂电池做后备电源,具备永不停止的计时 功 能;具有可编程方波输出功能,可用做实时测控系统的采样信号等;有的实时 时钟芯片内部还带有非易失性 RAM,可用来存放需长期保存但有时也需变更的 数据。由于功能完善,精度高,软件程序设计相对简单,且计时不占用 CPU 时 间,因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。 方案二: 软件控制。 利用单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、 秒的计时及秒表计时。该方案节省硬件成本,且能使设计者对单片机的指令系 统能有更深入的了解,从而掌握单片机应用技术 MCS-51 汇编语言程序设计方 法,因此,本系统设计采用此种软件控制方法来实现计时。而由于 ATMEL 公司 的AT89S51 单片机是低功耗的具有 4KB 在线可编程 Flash 存储器的单片机。它 与通用 80C51 系列单片机的指令系和引脚兼容。片内的 Flash 可允许在线重新 编程,也可使用通用非易失性存储器编程。它将通用 CPU 和在线可编程 Flash 集成在一个芯片上,形成了功能强大、使用灵活和具有较高性能价格比的微控 制器。它的功能强大,而且也较容易购买,故本设计中所选的单片机为 AT89S51 单片机。 1 1.2 多功能电子表键盘/显示方案 方案一: 8279扩展。 该方案方框图如图 1.2.1 所 示,8279 是一种可编程的键盘/显 示接口专用芯片,它含有键盘输入 和显示输出两种功能,键扫描程序 和动态显示程序全由 8279 硬件自 动完成,此种方案能以比较简单的 硬件 电路和较少的软件开销实现单片机与键盘、LED 显示器的接口。 方案二: 8155扩展,LED 动态显示。 该方案方框图如图 1.2.2 所示, 8155 是一块可编程的接口芯片,与单 片机的接口非常简单,它的键盘、显 示共用一个接口电路,可节省 I/O 口。 但动态扫描方式需占用 CPU 较多的时 间,在单片机没有太多实时测控任务 的情况下可以采用。 方案三: 串口扩展,LED 静态显示。 该方案方框图如图 1.2.3 所示,独立式键盘 配置灵活,软件结构简 单,按键较多时不宜采 用。静态显示占用口资 源少,采用串口传输实 现静态显示, LED 数码 管与单片机之间通过 6 个移位寄存器相连,显 示亮度有保证,但此方案的硬件开销大,电路复杂,信息刷新速度慢,比较 适 用于并行口资源较少的场合。 2 方案四: 独立式按键,LED 动态显示。 该方案方框图如图 1.2.4 所示,独立式按键直接与单片机 I/O 口相连构成 键盘,每个按键不会相互影响,因本系统用到的按键比较少,采用独立式键盘 不会浪费 I/O 口线,所以本系统采用独立式键盘。 动态显示的亮度虽然不如静态显示,但其硬件电路 较简单,可节省硬件成本,虽然动态扫描需占用 CPU 较多的时间,但本系统中的单片机没有很多实 时测控任务,因此,本系统采用此种方案。 3 2 多功能电子表的工作原理 本设计中的电子钟的核心是 AT89S51 单片机,其内部带有 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 开始计时。 4 3 多功能电子表原理方框图、原理图及 PCB 图 3.1 多功能电子表原理方框图 多功能电子表整机电路方框图如图 3.1 3.2 多功能电子表电路原理图 3.2.1 多功能电子表电源电路原理图 直流稳压电源电路原理图如图 3.2 所示 5 3.2.2 多功能电子表整机电路原理 6 3.3 多功能电子表电路 PCB 图 3.3.1 多功能电子表电源电路 PCB 图 电源电路PCB 图如图 3.4 所示 7 3.3.2 多功能电子表整机电路 PCB 图 多功能电子表整机电路 PCB 图如图 3.5 所示 3.5 整机 PCB 图 8 4 多功能电子表元器件清单 多功能电子表电路所有元器件清单如表 4.1 所示 表 4.1 多功能电子表元器件清单 1 元件名称 封装形式 元件号 LED 数码管 共阳极 DIP-12 D1 LED 数码管 共阳极 DIP-12 D2 510Ω 电阻 AXIAL0.4 R1 510Ω 电阻 AXIAL0.4 R2 510Ω 电阻 AXIAL0.4 R3 510Ω 电阻 AXIAL0.4 R4 510Ω 电阻 AXIAL0.4 R5 510Ω 电阻 AXIAL0.4 R6 510Ω 电阻 AXIAL0.4 R7 510Ω 电阻 AXIAL0.4 R8 1K 电阻 AXIAL0.4 R9 200 电阻 AXIAL0.4 R10 4.7K 电阻 AXIAL0.4 R11 4.7K 电阻 AXIAL0.4 R12 4.7K 电阻 AXIAL0.4 R13 4.7K 电阻 AXIAL0.4 R14 4.7K 电阻 AXIAL0.4 R15 4.7K 电阻 AXIAL0.4 R16 4.7K 电阻 AXIAL0.4 R17 4.7K 电阻 AXIAL0.4 R18 电源插座 UIN DIANYUAN 74LS244 芯片 DIP-20 A1 9 S8550PNP 三极管 TO-5 85501 S8550PNP 三极管 TO-5 85502 S8550PNP 三极管 TO-5 85503 S8550PNP 三极管 TO-5 85504 S8550PNP 三极管 TO-5 85505 S8550PNP 三极管 TO-5 85506 轻触开关 A DIP04 A 轻触开关 B DIP04 B 轻触开关 C DIP04 C 轻触开关 D DIP04 D 轻触开关 DIP04 S5 12M 晶振 XTAL1 Y1 33pF 电容 RAD0.2 C1 33pF 电容 RAD0.2 C2 22μF 电容 RB.2/.4 C3 7805 芯片 TO-220 U1 0.33μF 电容 RAD0.2 C1 0.1μF 电容 RAD0.2 C2 220μF 电容 RB.2/.4 C3 220μF 电容 RB.2/.4 C4 桥式整流 DIP-04 D2 二极管 DIODE0.4 D1 11V 变压器 DIP-5 TR 扩展插针 SIP08 J0 扩展插针 SIP08 J1 10 5 多功能电子表单元电路工作原理介绍 5.1 电源电路工作原理 图 5.1 所示为集成直流稳压电源电路的原理图,本电源电路是由集成稳压 器构成的。电路可分成三部分:电源变压器部分、整流滤波部分和稳压部分。 变压器原边为工频交流 220V 电压,经过变压后,变压器副边的电压变为 交流 11V,11V 交流电压经过桥式整流电路整流后变为直流 10V 电压,直流 10V 电压作为CW7805 的输入电压,CW7805 输出+5V 电压。图中D2 为整流桥,它由 四个整流二极管接成电桥形式。C3 为滤波电容,C1 用于抵消输入端较长接线的 电感效应,以防止自激振荡,还可抑制电源的高频脉冲干扰。一般取 0.1――1 μ F。CW7805 为三端固定输出集成稳压器,其输入和输出电压都为固定值,它 的输入电压为+10V,输出电压为+5V。C2 和 C4 用以改善负载的瞬态响应, 消除 电路的高频噪声,同时也具有消振作用。 5.2 时钟电路工作原理 图 5.2 所示为时钟电路原理图,在 AT89S51 芯片内部有一个高增益反相放大器,其输入端 为芯片引脚 XTAL1,输出端为引脚 XTAL2。而在 芯片内部,XTAL1 和 XTAL2 之间跨接晶体振荡器 和微调电容,从而构成一个稳定的自激振荡器。 时钟电路产生的振荡脉冲经过触发器进行二分 频之后,才成为单片机的时钟脉冲信号。 11 5.3 复位电路工作原理 图 5.3 所示为复位电路原理图,复位是单 片机的初始化操作,其主要功能是把 PC 初始化 为 0000H,使单片机从 0000H 单元开始执行程 序,并使其它功能单元处于一个确定的初始状 态。本复位电路采用的是按键复位,它是通过 复位端经电阻与 VCC 电源接通而实现的,它兼 具上电复位功能。因本系统的晶振的频率为 12MHz,所以,复位信号持续时间应当超过 2μ S 才能完成复位操作。 5.4 键盘工作原理 图 5.4 所示为键盘原理图,本 系统采用的是独立式键盘结构,每 个按键单独占用一根 I/O 口线,每 个按键的工作不会影响其它 I/O 口 线的状态。它软件是采用查询式结 构,首先逐位查询每根 I/O 口线的 输入状态,如某一根 I/O 口线输入 为低电平,则可确认该 I/O 口线所 对应的按键已按下,然后,再转向 该键的功能处理程序。 12 5.5 显示器工作原理 系统采用动态显示方式,用 P0 口来控制LED 数码管的段控线,而用 P2 口 来控制其位控线。动态显示通常都是采用动态扫描的方法进行显示,即循环点 亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼 存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示 的感觉。图中的 S8550 作为驱动器,而 8 个 510 欧姆电阻则起限流作用。 13 图5.6 共阳极数码管内部结构 图5.7 LED数码管段的排列 由图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.0,P2.7 引脚。段控码(低电平有效)由 P0 口输出经 上拉电阻上拉电压后通过锁存器 74LS244 送到数码管的段控端,位控码由 P2 口输出经三极管S8550 驱动后送到数码管的位控端。 在单片机内部显示缓冲区 79H、7AH、7BH、7CH、7DH、7EH 内的值分别是秒 的个位、秒的十位、分的个位、分的十位、时的个位、时的十位,显示器LED0、 LED1、LED2、LED3、LED4、LED5 分别显示秒的个位十位、分的个位十位、时的 个位十位,由图 5.5 所示。 数码管动态显示:由于显示的数据和LED 数码管的段控码并不是一一对应 的关系,即显示的数据与数码管的字型代码不相符。显示数据与字型代码之间 存在着转换关系,数码管段控数据和数码管各段的对应关系如表 5.1、表 5.2 所示。 14 表 5.1 数码管数据和数码管每段的对应关系 D7 D6 D5 D4 D3 D2 D1 D0 LED 显示码 a 1 1 1 1 1 1 1 0 0FEH b 1 1 1 1 1 1 0 1 0FDH c 1 1 1 1 1 0 1 1 0FBH d 1 1 1 1 0 1 1 1 0F7H e 1 1 1 0 1 1 1 1 0EFH f 1 1 0 1 1 1 1 1 0DFH g 1 0 1 1 1 1 1 1 0BFH dp 0 1 1 1 1 1 1 1 7FH 表 5.2 数码管断码和字型的对应关系(共阳极) 字型 D7 D6 D5 D4 D3 D2 D1 D0 段码 dp g f e d c b a 0 1 1 0 0 0 0 0 0 0CO 1 1 1 1 1 1 0 0 1 0F9 2 1 0 1 0 0 1 0 0 0A4 3 1 0 1 1 0 0 0 0 0B0 4 1 0 0 1 1 0 0 1 99 5 1 0 0 1 0 0 1 0 92 6 1 0 0 0 0 0 1 0 82 7 1 1 1 1 1 0 0 0 0F8 8 1 0 0 0 0 0 0 0 80 9 1 0 0 1 0 0 0 0 90 A 1 0 0 0 1 0 0 0 88 B 1 0 0 0 0 0 1 1 83 C 1 1 0 0 0 1 1 0 0C6 D 1 0 1 0 0 0 0 0 0A0 E 1 0 0 0 0 1 1 0 86 F 1 0 0 0 1 1 1 0 8E 15 P. 0 0 0 0 0 1 1 0 06 全亮 0 0 0 0 0 0 0 0 00 全灭 1 1 1 1 1 1 1 1 0FF 从电子钟程序清单中的显示程序可以知道 :数据表格存储单元从首地 址到 最高位分别存放的是共阳极数码管 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 被点亮显示秒的十位,延时持续 点亮一段时间,就这样通过逐个地从低位到高位点亮各个显示器,扫描到最高 位时的十位被点亮就返回。这样虽然在任一时刻只有一位显示器被点亮,但是 由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。 16 5.6 AT89S51 芯片介绍 如图 5.7 所示为 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 也可用做访问外部 17 程序存储器和数据存储器时的低 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 所示 18 表 5.3 P3 口的替代功能 引脚 符号 说明 P3.0 RXD 串行口输入 P3.1 TXD 串行口输出 P3.2 /INT0 外部中断 0 P3.3 /INT1 外部中断 1 P3.4 T0 T0 定时器的外部的计数输入 P3.5 T1 T1 定时器的外部的计数输入 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:振荡器反相放大器输出端。 19 5.7 74LS244 驱动器 74LS244 是单向总线驱动器。是 8 输入 8 输出芯片,中 1G 和 2G 为使能端, 低电平有效。它的外部管脚图如图 5.8 所示。 图5.8 74LS244芯片外部管脚图 74LS244 是一种三态输出的八缓冲器和线驱动器,该芯片的逻辑电路图和 引脚图如图 5.8 所示。从图 5.8 可见,该缓冲器有 8 个输入端,分为两路―― 1A1,1A4,2A1,2A4,同时 8 个输出端,也分为两路――1Y1,1Y4,2Y1,2Y4, 分别由 2 个门控信号 1G 和 2G 控制,当记为低电平时,1Y1,1Y4 的电平与 1A1, 1A4 的电平相同,即输出反映输入电平的高低;同样,当 2G 为低电平时,1Y1, 1Y4 的电平与 2A1,2A4 的电平和同。而当 1G (或2G)为高电平时,输出 1A1, 1A4 (或2A1,2A4)为高阻态。经 74LS244 缓冲后,输入信号被驱动,输出信 号的驱动能力加大了。 其功能表如表 5.4 所示,表中 H 为高电平,L 为低电平,A 为高阻态, X 为任意状态 表 5.4 74LS244 引脚功能表 输入 输出 G A Y L L L L H H N X X 20 5.8 S8550PNP 三极管 5.8.1 主要用途: 作为音频放大器,应用于收录机、电动玩具等电子产品。(与 S8050 互 补) 其管脚图如下图 5.9 5.8.2 极限值如下表 5.5 参数 符号 标称值 单位 集电极、基极击穿电压 VCB -40 V O 集电极、发射极击穿电压 VCE -25 V O 发射极、基极击穿电压 VEB -6 V O 集电极电流 IC -1.5 A 集电极功率 PC 1 W 结温 TJ 125 ? 贮存温 TST -55-125 ? G 5.8.3 电参数(Ta 25?) 21 电参数表5.6 最小 典型 最大 单 参数 符号 测试条件 值 值 值 位 集电极漏电 ICBO VCB -35,IE 0 -100 nA 流 发射极漏电 IEBO VBE -6,IC 0 -100 nA 流 集电极、发射 BVCEO IC -2mA,IB 0 -25 V 极击穿电压 发射极、基极 BVEBO IE -100μ A,IC 0 -6 V 击穿电压 集电极、基极 BVCBO IC -100μ A,IE 0 -40 V 击穿电压 集电极、发射 VCE sat IC -800mA,IB -80mA -0.5 V 极饱和压降 基极、发射极 VBE sat IC -800mA,IB -80mA -1.2 V 饱和压降 基极、发射极 VBE VCE -1V,IC -10mA -1.0 V 压降 直流电流增 HFE1 VCE -1V,IC -100mA 85 300 益 HFE2 VCE -1V,IC -800mA 40 22 5.9 四位一体数码管 四位一体数码管的内部结构,如图 5.10 所示。由图可知,四个数码管的位 控端连接在一起,共用 8 根数据线,四个公共端却单独占一根口线。假设段控端 有段码输入时,每个数码管的段控端都收到了段码,但只有位控线有效的数码 管才能显示数据,反之亦反。共阳极数码管段控端为低电平有效,位控端高电 平有效,共阴极数码管恰恰相反。 四位一体数码管用于动态扫描,即把数码管显示数据的段控码分时送到其 对应的段控端。当一个段控码被送到段控端时,显示此段控码数据的数码管, 它的位控端置有效电平,数码管点亮;而其他数码管的位控端送无效电平,数 码管不亮。持续点亮一段时间,再送其它的段控码,依次把显示段控码的数码 管,使其位控端为有效电平,其他数码管的位控端为无效电平,就这样数码管 依次被点亮。四位一体数码管共十二个引脚,从数码管的正面看,它以第一脚 为起点,逆时针排列的。由图可知,6、8、9、12 为公共端,A-11、B-7、C-4、 D-2、E-1、F-10、G-5、DP-3。 显示字型和代码关系如表 5.3 所示。 23 表 5.7 十六进制数字型代码 字型 共阳极代码 共阴极代码 字型 共 阳极代码 共阴极代码 0 C0H 3FH 9 90H 6FH 1 F9H 06H A 88H 77H 2 A4H 5BH b 83H 7CH 3 B0H 4FH C C6H 39H 4 99H 66H d A1H 5EH 5 92H 6DH E 86H 79H 6 82H 7DH F 8EH 71H 7 F8H 07H 灭 FFH 00H 8 80H 7FH 24 6 单片机硬件资源的分配 本次设计用到了单片机正常工作的硬件资源,如(连接晶振的引脚 XTAL1 和 XTAL2,复位引脚 RESET),对其硬件资源还做了具体的安排。 1 .P0 口 作为数码管显示器的段控输出口,对数码管显示器进行控制。 2 .P1 口 P1.0,P1.3 接了四个独立式分别为 A 键、B 键、C 键、D 键,用于 对键盘的 控制,P1.5、P1.6、P1.7 则作为 ISP 程序下载的输入端。 3 .P2 口 该口全部用于数码管的位控端。 4 .定时/计数器 使用定时器 0 来实现本次电子钟的运行。 5 .内部存储单元 30H 存储定时/计数器 0 的中断次数。31H,36H 分别作为时、分、秒 个位和 十位的数据存储单元。79H,7E 分别作为 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 的工作方式。 25 7 程序流程图 开 始 定义堆栈区 调DIR显示子程序 显示缓冲单元清零 调KEY键扫描子程序 定时器0工作方式1 装载计数初值 A键是否按下? Y 执行A键功能子程序 定时开始 N Y B键是否按下? 执行 B键功能子程序 开中断 N 设置循环次数 Y C键是否按下? 执行 C键功能子程序 N Y D键是否按下? 执行 D键功能子程序 N 调DIR显示子程序 结 束 图7.1 监控程序流程图 26 开 始 开 始 Y 是否为上电后第一次按下 时钟是否在运行? 启动电子钟 N 时 值 加 1 是否为上电后再次按下 N 时值是否到24? 进入调节状态 Y 返 回 时存储单元清 0 返 回 A键功能程序 B键功能程序 开 始 开 始 Y 时钟是否在运行? 时钟是否在运行? N N 秒 值 加 1 分 值 加 1 N 秒值是否到60? 分值是否到60? Y Y 秒存储单元清 0 分存储单元清 0 返回 返回 D键功能程序 C键功能程序 图7.2 键功能程序流程图 27 1 开始 是否60分? 现场保护 Y 计数器从新加载 分值存储单元清 ‘0’ 时值加1 N 是否满16次? 是否24时? 秒值加1 Y 时值存储单元清 ‘0’ N 是否60秒? Y 显示内容送显示缓冲区 秒值存储单元清 ‘0’ 返回 分值加1 1 图7.3 中断服务程序流程图 28 开始 开始 调取键值子程序 键扫描初始化 N 是否有键按下? Y Y A键是否按下? 取A键值 Y N 调DIR去抖动 Y B键是否按下? 取B键值 调DIR去抖动 N N C键是否按下? Y 取C键值 键确实按下? N N Y 保存键值 D键是否按下? Y 取D键值 N N 键是否释放? 调DIR延时 返回 Y 恢复键值 返回 图7.4 键扫描子程序流程图 图7.5取键 值子程序 29 开始 现场保护 显示初始化 送位控码 取段控码 子程序入口 送段控码 设外循环次数 延时子程序 设内循环次数 缓冲区地址加1 内循环结束否 N 左移位控码 Y N 外循环结束否 位控是否最高位? Y Y 返回 返 回 图7.6 显示子程序流程图 图7.7 延时子程序流程图 30 开 始 取 十 位 数 使十位数 占A高半字节 取个位数,并占A低半字节 加 1 十进制调整 个位数送存储单元 把十位数换到低半字节 十位数送存储单元 返回 图7.8 加1子程序 31 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 32 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 33 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 34 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 返回 35 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 A ;十位数占高4 位 ORL A, @R0 ;个位数占低4 位 ADD A, #01H ;加 1 DA A ;十进制调整 MOV R3, A ;全值暂存R3 中 ANL A, #0FH ;屏蔽十位数,取出个位 数 MOV @R0, A ;个位值送显示缓冲单元 MOV A, R3 36 INC R0 ANL A, #0F0H ;屏蔽个位数取出十位数 SWAP A ;使十位数占低四位 MOV @R0, A ;十位数送缓冲 单元 RET ;返回 CLR0: CLR A ;清缓冲单元子程序 MOV @R0, A ;十位缓冲单元清“0 ” DEC R0 MOV @R0, A ;个位数缓冲单元清“0 ” RET ;返回 ;键盘扫描子程序 *************************************************** KEY: LCALL KEYCHULI ;调键值处理子程序 JZ EXIT ;没有键按下转到返 回 LCALL DIR LCALL DIR ;调显示去抖动 LCALL KEYCHULI ;调键值处理子 程序 JZ EXIT
本文档为【毕业论文:基于AT89S51的电子钟(带电路图及程序)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_601191
暂无简介~
格式:doc
大小:80KB
软件:Word
页数:44
分类:工学
上传时间:2017-10-11
浏览量:22