




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计论文基于单片机并行口的电子钟的设计摘要:电子钟是一种用电子电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 电子钟从原理上讲是一种典型的电子电路,其中包括了组合逻辑电路和时序电路。目前,电子钟的功能越来越强,并且有多种专门的大规模集成电路可供选择。 从有利于学习的角度考虑,这里主要介绍以中小规模集成电路设计电子钟的方法。 经过了电子电路设计这门课程的系统学习,特别经过了关于组合逻辑电路与时序逻辑电路部分的学习,我们已经具备了设计小规模集成电路的能力,借由本次设计的机会,充分将所学的知识运用到实际中去。 本次课程设计要求设计一个电子钟,基本要求为电子钟的时间周期为24小时,电子钟显示时、分、秒,数字钟的时间基准一秒对应现实生活中的时钟的一秒。供扩展的方面涉及到定时自动报警、按时自动打铃、定时广播、定时启闭路灯等。因此,研究电子钟及扩大其应用,有着非常现实的意义。关键字:单片机, led显示器,电子钟,汇编语言。 目 录1 多功能电子表说明及总体方案介绍11.1多功能电子表计时方案11.2多功能电子表键盘/显示方案22 电子钟的工作原理43 多功能电子表原理框图、原理图及pcb图53.1多功能电子表原理框图54 多功能电子表元器件清单95 单片机硬件资源分配256 程序流程图267 电子钟程序清单328 误差分析409 电子钟使用说明4310 设计体会4411 教学意见4512 参考资料461 多功能电子表说明及总体方案介绍本次设计电子钟系统功能简单,用单片机的最小系统就能得以实现。而单片机的最小系统设计中实际上最重要的就是对键盘/显示器接口电路的设计,由于系统功能不同所以要求就不同,接口设计也就不同。对一个键盘/显示器接口设计应从整个系统出发,综合考虑软、硬件特点。下面是本人在设计前对各种设计方案的考虑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 多功能电子表的工作原理本设计中的电子钟的核心是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开始计时3 多功能电子表原理方框图、原理图及pcb图3.1 多功能电子表原理方框图多功能电子表整机电路方框图如图3.1 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 单片机硬件资源的分配本次设计用到了单片机正常工作的硬件资源,如(连接晶振的引脚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 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 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;没有键按下转到返回 mov b, 20h;保存键值 keysf: lcall keychuli;调键值处理子程序 jz key1;键释放,转到恢复键值 lcall dir;调显示子程序延时 ajmp keysf;等到键释放 key1: mov 20h, b;键值送20h单元保存 exit: ret;返回 keychuli: push psw;保护现场 clr rs1;改变寄存器组号 setb rs0 mov p1, #0ffh;先向p1口写1 mov a, p1;p1口值送累加器a cpl a;a值取反 anl a, #0fh;保存p1口的低4位 mov 20h, a;a值送20h保存 clr rs1;改变寄存器组号 clr rs0 pop psw;恢复现场 ret;显示子程序* dir: push psw ;恢复现场 setb rs1 ;改变寄存器组号 clr rs0 mov r0, #79h;建立显示缓冲区首地址 mov r3, #0fbh;设置位控码 ld0: mov p2, r3;送位控码 mov a, r0;缓冲区值送累加器a disp1: add a, #1bh movc a, a+pc;取段控码并送a中 disp2: mov p0, a;送段控码 mov r2, #09h;设置延时循环次数 acall dey;延时点亮 inc r0;缓冲区地址加1 mov a, r3;位控码送a jnb acc.1, here;是否到最高位,是转到返回 jbacc.5, ld2rl arl a;不到向显示器高位移位 ld2:rl amov r3, a;位控值保存到r4中 ajmp ld0;继续扫描 here: clr rs0;改变寄存器组号 clr rs1 pop psw;恢复现场 ret;返回 dbb: db 0c0h db 0f9h db 0a4h db 0b0h db 99h db 92h db 82h db 0f8h db 80h db 90h db 0ch db 0ffh ;延时子程序*dey: push 12hdey0: push 12hdey1: push 12hdey2: djnz r2, dey2 pop 12h djnz r2, dey1 pop 12h djnz r2, dey0 pop 12h djnz r2, dey ret end9.误差分析在上面的章节中已经介绍过,本电子钟设计是使用单片机的定时/计数器0在工作方式1下定时62.5ms,根据定时时间和单片机最小系统的时钟周期(1s)使定时/计数器0重复中断16次就是一秒的时间了。定时/计数器0每产生一个中断就定时62.5ms,当产生一次中断后,定时/计数器0并没有马上被赋予原来产生62.5ms的初值,而是在中断服务程序中重新赋的初值,因而使用定时/计数器实现电子钟的运行存在着一定的误差。一个62.5ms产生后,到下一个62.5ms开始计数,中间单片机要执行电子钟程序中的指令如下所示:org 000bh ajmp pito;转到定时器0中断服务程序;中断服务程序* pito: push psw;中断服务程序,现场保护 push a setb rs0;选第三组通用寄存器 setb rs1 mov tl0, #0dch;计数器重新加载 mov th0, #0bh 定时/计数器0产生中断后,由硬件自动转到定时/计数器0的中断服务区(000bh 001bh),使用一条跳转指令转到存放在其他地方的中断服务程序,只要计算出从中断服务区开始执行的跳转指令ajmp pito到定时/计数器0重新赋值完毕mov th0, #0bh之间的所有的指令所占的机器周期再乘上机器周期所得的时间就是相邻的两个62.5ms之间的时间间隔。假设时间间隔为t,所有的指令所占的机器周期之和为p,因为本次设计使用的晶振频率为12mhz,因此一个机器周期的时间time为: time = 121/12mhz time = 1s所以,时间间隔为t的计算公式为: t = ptime通过查汇编语言指令周期表,计算出p = 10,即以上所有指令占10个机器周期,那么时间间隔t为: t = ptimet = 101st = 10s 定时/计数器0定时16个62.5ms是一秒,因此秒值加1比实际理想的秒加1要慢一段时间ts,ts 的值为16倍的t再加上下面的电子钟要执行的电子钟程序中的指令所占的机器周期p1, pito: ;中断服务程序,现场保护 mov a, 30h;循环次数减1 dec a mov 30h, a jnz reto;不满16次,转ret0返回 mov 30h, #10h;满16次开始计时操作 mov r0, #32h;秒显示单元地址 acall daad1;秒加1daad1: mov a, r0 ;加1子程序,十位送a dec r0 swap a;十位数占高4位 orl a, r0;个位数占低4位 add a, #01h;加1通过查汇编语言指令周期表,计算出p1 = 15,即以上所有指令占15个机器周期,那么时间间隔ts为:ts = (16pp1)timets = 175s 因此,本次设计的电子钟运行的时间比标准时间每秒钟慢了17510使用说明使用电子钟时操作步骤如下:(1).将+5v电源接到电子钟电源插口上,接通电源开关。(2).把电子钟电路板上的isp程序下载口jp1通过下载线连接到计算机打印机接口,在计算机上通过下载软件easy 51pro把电子钟程序下载到单片机内。(3).电子钟程序下载到单片机以后,电子钟进入待命令状态,显示器led5显示“p.”。(4).按一下a键,电子钟从0时、0分、0秒开始运行,此时显示器led5、led4、led3、led2、led1、led0分别显示时、分、秒。(5).再次按一下a键,电子钟停止运行进入调整状态,此时通过b键、c键、d键分别调整电子钟的时、分、秒。按一下其中的一个键对应的值加1。调节到用户想要的时间后,再次按一下a键,电子钟将以用户调整的时间为起点进入运行状态。总之,上电后,按a键奇数次时钟运行并计时,按偶数次a键则停止电子钟运行。注意事项:(1).每按一次复位键s5键单片机就完成一次复位操作,电子钟复位以后进入待命令状态。(2).在对电子钟电路板操作和使用时,下载接口线拔插时,必须先按下电源开关断开电源。11.设计体会学贵以致用,通过几天的电子钟设计过程,将从书本上学到的知识应用于实践,学会了初步的电子电路仿真设计,虽然过程中遇到了一些困难,但是在解决这些问题的过程无疑也是对自己自身专业素质的一种提高。当最终调试成功的时候也是对自己的一种肯定。在当前金融危机大的社会背景下,能够增加自身砝码的不仅仅是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《建筑环境监测》课件
- 《结肠小袋纤毛虫病》课件
- 2025简化版数码印刷系统购销合同模板
- 《静物素描解析》课件
- 2025建筑工程监理合同
- 《仓储管理教程》课件
- 肺腺癌ct诊断及鉴别诊断 课件
- 脑部神经系统的应用解剖课件
- 优化管理效能课件:构建高效能的中高层领导力
- 2025健身房转让合同范本参考
- 《excel数据分析》课件
- DB1310-T 223-2020 小麦节水绿色丰产栽培技术规程
- 小学六年级科学(人教版)《各种各样的自然资源》-教学设计、课后练习、学习任务单
- 215kWh工商业液冷储能电池一体柜用户手册
- 燃气安全事故处理及应急
- 汽车发动机构造与维修课件 第六章 燃油供给系
- 可再生能源预测技术研究
- 2024-2030年中国耐火材料行业供需分析及发展前景研究报告
- 部门级安全培训考试题附答案【考试直接用】
- 物业五级三类服务统一标准
- 见证取样手册(给排水管道工程分部)
评论
0/150
提交评论