单片机课程设计_基于89C51的数字电子时钟的设计.doc_第1页
单片机课程设计_基于89C51的数字电子时钟的设计.doc_第2页
单片机课程设计_基于89C51的数字电子时钟的设计.doc_第3页
单片机课程设计_基于89C51的数字电子时钟的设计.doc_第4页
单片机课程设计_基于89C51的数字电子时钟的设计.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

课程设计单片机系统课 程 设 计成绩评定表设计课题 基于89c51的数字电子时钟设计 学院名称 : 电气工程学院 专业班级 : 学生姓名 : 学 号 : 指导教师 : 设计地点 : 设计时间 : 指导教师意见:成绩: 签名: 年 月 日单片机系统课 程 设 计课程设计名称: 基于89c51的数字电子时钟设计 专 业 班 级 : 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计地点: 课程设计时间: 2014-01-012015-01-12 单片机系统 课程设计任务书学生姓名 专业班级学号题 目课题性质工程设计课题来源自拟指导教师主要内容(参数)利用89c51设计数字电子时钟,实现以下功能:1开机时显示00-00-00,并开始连续计时;2记时满23-59-59时,返回00-00-00重新开始计时;3在单片机的p1.0p1.3口分别接入4个按键,p1.0p1.2分别用于“秒”“分”“时”的调整,p1.3用做复位键。任务要求(进度)第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。第5-6天:软件设计,编写程序。第7-8天:实验室调试。第9-10天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅不少于6000字。主要参考资料1 张迎新等.单片微型计算机原理、应用与接口技术.北京:国防工业出版社,2009.8;2 谢维成等.单片机原理与运用及汇编程序设计.北京:清华大学出版社2006.8;3周润景,刘晓霞等.单片机实用系统设计与仿真经典实例.北京:电子工业出版社,2014.1;4夏路易,石宗义.protel 99sse设计教程.北京:北京希望电子出版社.2002.6。审查意见系(教研室)主任签字: 年 月 日 目录1 引言52 设计目的53 系统方案与总体结构设计53.1系统方案设计53.2数字时钟框图设计64数字时钟的硬件构成84.1 选用芯片简介84.2 led数码显示器简介125各个模块工作原理及原理图125.1计时模块135.2数字时钟控制模块135.3振荡模块145.4显示模块146系统软件设计156.1软件设计的要点156.2 at89c51内部定时器/计数器0的使用方法156.3 程序设计流程图167系统调试与总结177.1电路调试177.2软件调试178结论与心得18附录a系统原理图18附录b 源程序20参考文献261 引言数字时钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,无机械装置,具有更长的使用寿命。数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字时钟的精度,远远超过老式钟表,使其得到了广泛的使用。该课程设计为数字电子钟的设计。以at89c51为核心,配合8位7段共阴极led数码管显示实时数据,按键可以进行数据调整,为用户提供长期、连续、可靠、稳定的工作环境。该数字电子钟有时分秒显示功能以及时间的调整的功能。系统软件设计主要实现参数设置、串行口数据接收、指令发送以及数据的显示和存储,并且实现键盘、液晶显示器等各模块的功能,采用汇编语言编程。关键词: 数字电子钟单片机汇编语言 2 设计目的深化和扩充在单片机原理及相关课程方面的基本知识、基本理论和基本技能熟悉设计过程,了解设计步骤,掌握设计内容,培养设计电路、实现软件编程和编写设计说明书能力的目的,为今后从事相关方面的实际工作打下良好基础。(1)熟悉at89c51内部定时器/计数器原理和应用,把理论加以实践;(2)了解使用单片机处理复杂逻辑的方法;(3)掌握多位数码动态显示的方法;(4)掌握多个按键的读键和处理方法。3 系统方案与总体结构设计3.1系统方案设计系统采用通用的80c51芯片,显示器为8个共阴极led数码管,用1个八总线接收/发送器74ls245驱动数码管,因为采用了上述两个芯片,所以在对数码管进行扫描显示时,只需要单片机的8条i/o线就能完成显示功能了。 选用p0.0-p0.7作为显示数据值的输出,连接在八总线接收/发送器74ls245输入端。由于led数据管点亮时耗电量较大,因此使用了排阻作为电源驱动输出,以保证数码管的正常亮度。单片机的p1.0-p1.4口分别接在s1s4 4个按键上,以控制“时”,“分”,“秒”的调整。时间以24小时为一个周期,数字时钟钟的格式为:xx-xx-xx,由左向右分别为:“时-分-秒”(由于没有采用小数点,符号 “-”为分隔“时”“分”“秒”的分隔符)。完成显示由秒加1,一直加1至59,再恢复为00;分加1,一直加1至59,再恢复00;时加1,一直加1至23,再恢复00。* 按键功能* 启动时,数字时钟从00-00-00 开始自动计时; 按键s1控制对“秒”的调整,每按一次时计数值加1; 按键s2控制对“分”的调整,每按一次分计数值加1; 按键s3控制对“时”的调整,每按一次秒计数值加1; 按键s4用做复位键,在计时过程中,如果按下复位键,则返回00-00-00重新计时。3.2数字时钟框图设计数字时钟总体结构框图设计如图3-1所示。图3-1 数字时钟设计框图 用at89c51单片机的定时器/计数器t0产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1开始计时。显示00-00-00的时间,开始计时;p1.0口控制“秒”的调整,每次按键加1s;p1.1口控制“分”的调整,每按一次按键加1min;p1.2口控制“时”的调整,每按一次加1h。计时满23-59-59时,返回00-00-00重新计时。p1.3口用作复位键,在计时过程中,如果按下复位键,则返回00-00-00重新计时。 3.2.1计时模块:用at89c51单片机的定时器/计数器t0产生1s的定时时间,作为秒计数时间;当1s产生时,秒计数加1,当加到60s时向分钟位进一位,当分钟位加到60时,向时钟位进一;开机时,显示00-00-00,并开始连续计时;计时满23-59-59时,返回00-00-00重新开始计时。3.2.2数字时钟控制模块:在以上设计基础上,在单片机的p1.0p1.3口分别接入4个按键。p1.0口控制“秒”的调整,每次按键加1s;p1.1口控制“分”的调整,每按一次按键加1min;p1.2口控制“时”的调整,每按一次加1h;p1.3口用作复位键控制,在计时过程中,如果按下复位键,则返回00-00-00重新计时。3.2.3振荡模块:晶体振荡器电路给数字时钟提供一个频率稳定准确的12mhz的方波信号,不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。3.2.4显示模块:显示电路采用8位7段共阴极led数码管显示实时数据,采用74ls245增加i/o口的驱动能力。4数字时钟的硬件构成4.1 选用芯片简介 4.1.1 89c51简介at89c51是一种带4k字节flash存储器(fperomflash programmable and erasable read only memory)的低电压、高性能cmos 8位微处理器,俗称单片机,其引脚图如图4-1所示。at89c51提供以下标准功能:4k 字节flash 闪速存储器,128字节内部ram,32 个i/o 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,at89c51可降至0hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止cpu的工作,但允许ram,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存ram中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。1.管脚说明vcc:供电电压。gnd:接地。p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p0口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须接上拉电阻。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为低八位地址接收。p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为at89c51的一些特殊功能口,如下表所示:2.口管脚 备选功能p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 /int0(外部中断0)p3.3 /int1(外部中断1)p3.4 t0(定时器0外部输入)p3.5 t1(定时器1外部输入)p3.6 /wr(外部数据存储器写选通)p3.7 /rd(外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。/psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。/ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的输出。 图4-1 89c51单片机引脚图4.1.2 74ls245简介74ls245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据,其引脚图如图4-5。当片选端/ce有效时,74ls245的输入/输出方向由dir控制。74ls245还具有双向三态功能,既可以输出,也可以输入数据。其工作方式如表4-1所示。 表4-1 74ls245的工作方式控制信号数据传输方向/edirllbalhablx高阻 由表4-1可知,当8051单片机的p0口总线负载达到或超过p0最大负载能力时,必须接入74ls245等总线驱动器。当片选端/ce低电平有效时,dir=“0”,信号由 b 向 a 传输(接收);dir=“1”,信号由 a向 b 传输(发送);当/ce为高电平时,a、b均为高阻态。由于p2口始终输出地址的高8位,接口时74ls245的三态控制端1g和2g接地,p2口与驱动器输入线对应相连。p0口与74ls245输入端相连,e端接地,保证数据线畅通。8051的/rd和/psen相与后接dir,使得rd且psen有效时,74ls245输入(p0.1d1),其它时间处于输出(p0.1d1)。图4.3 74ls245管脚图 若将dir接固定ttl逻辑电平(高或低),则74ls245变为单向缓冲器,但这种方式是极少采用的。一般都是使用它的双向输出功能。为此,dir必须可控,使其根据需要变为高电平或低电平,并与/e相结合控制数据传输方向。在单片机系统中,可采用读信号或者写信号实现控制。当/wr有效时数据通过74ls245的b(b0b7)端输入,由(a1a8)输出;当/rd有效时数据由a端输入,b端输出。由此可见,由于74ls245芯片具有双向缓冲和驱动作用,很适合作单片机的数据总线的收发器。4.2 led数码显示器简介led数码显示器是1种由led发光二极管组合显示字符的显示器件。它使用了8个led发光二极管,其中7个用于显示字符,1个用于显示小数点,在本设计中用不到小数点,故不予考虑。led数码显示器有两种连接方法。 (1)共阳极接法。把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5v,每个发光二极管的阴极通过电阻与输入端相连。当阴极端输入低电平时,段发光二极管就导通点亮,而输入高电平时则不点亮。(2)共阴极接法。把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二极管的阳极通过电阻与输入端相连。当阳极端输入高电平时,段发光二极管就导通点亮,而输入低电平时则不点亮。在本设计中所采用的是共阴极led数码显示器,其引脚排列如图7所示: (a) (b)图4-4 (a)典型led数码显示器 (b) 典型led数码显示器共阴极、共阳极接法5各个模块工作原理及原理图用at89c51单片机的定时器/计数器t0产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1开始计时。显示00-00-00的时间,开始计时;p1.0口控制“秒”的调整,每次按键加1s;p1.1口控制“分”的调整,每按一次按键加1min;p1.2口控制“时”的调整,每按一次加1h。计时满23-59-59时,返回00-00-00重新计时。p1.3口用作复位键,在计时过程中,如果按下复位键,则返回00-00-00重新计时。5.1计时模块用at89c51单片机的定时器/计数器t0产生1s的定时时间,作为秒计数时间;当1s产生时,秒计数加1,当加到60s时向分钟位进一位,当分钟位加到60时,向时钟位进一;开机时,显示00-00-00,并开始连续计时;计时满23-59-59时,返回00-00-00重新开始计时。5.2数字时钟控制模块在以上设计基础上,在单片机的p1.0p1.3口分别接入4个按键s1、s2、s3、s4。控制模块的原理图如图5-1p1.0口控制“秒”的调整,每次按键加1s,;p1.1口控制“分”的调整,每按一次按键加1min;p1.2口控制“时”的调整,每按一次加1h;p1.3口用作复位键控制,在计时过程中,如果按下复位键,则返回00-00-00重新计时。 图5-1 数字时钟控制模块原理图5.3振荡模块晶体振荡器电路给数字时钟提供一个频率稳定准确的12mhz的方波信号,不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路振荡模块的原理图如图5-2。图5-2 振荡模块电路原理图5.4显示模块 显示电路采用8位7段共阴极led数码管显示实时数据,采用74ls245增加i/o口的驱动能力。图5-3显示模块电路原理图6系统软件设计6.1软件设计的要点由于电路设计得极其巧妙,许多功能都可以由硬件完成,因此软件设计就比较简单了。下面介绍软件设计的要点:主程序:首先进行初始化,设置数字时钟的计时初值为00-00-00,启动t0进行50ms定时,且允许t0中断。然后检测s1s4是否按下,当按键s1s4按下时,转入时、分、秒计数值的调整程序。定时器t0中断子程序:中断服务子程序的作用是进行时、分、秒的计时与显示。定时器t0用于定时,定时周期设为50ms,中断累计20次(即1s)。时、分、秒计数值调整子程序time:时间计数单元在30h(s),31h(min),32h(h)内存单元中,在计数单元中采用组合bcd码计数。time子程序的作用是当满1秒时,对秒计数单元进行加1操作,满60向分进位;对分计数单元进行加1操作,满60向时进位;对时计数单元进行加1操作,满24清零。显示子程序view:view子程序的作用是分别将时间计数单元30h(s),31h(min),32h(h)中的十进制时间值转化为个位和十位存放在显示缓冲区中,显示缓冲区地址为30h-34h。其中30h-31h存放秒数据,31h-32h存放分数据,33h-33h存放时数据。扫描子程序scan:scan子程序的作用是把显示缓冲区中的数据依次送往显示器显示。,所以用10h和40h单元存放扫描指针,即10h和40h中存放的是数码管的序号,显示时,只需取出30h-34h某一地址中的数据,p0口作为扫描值输出,就能保证数码管的正常工作。 6.2 at89c51内部定时器/计数器0的使用方法at89c51单片机的内部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位的定时方式或8位的定时方式,只要通过特殊功能寄存器tmod即可完成。定时/计数器何时工作也是通过tcon特殊功能寄存器来设置的。在本课程设计中,选择16位定时工作方式。对于t0来说,系统时钟为12mhz,最大定时时间65.536ms,无法达到1s的定时,因此必须通过软件处理来解决这个问题。假设取t0的最大定时时间为50ms。既要定时1s的需要经过20次的50ms定时。对于这20次计数,可采用软件的方法来统计。设定tmod=00000001h,即设置定时/计数器0工作在方式1。给定时/计数器t0的th0、tl0预置初值,通过下面的公式可以计算出来,即 th0=(65536-50000)/256 tl0=(65536-50000)mod 256这样,当定时/计数器0计满50ms时,产生一个中断,可以在中断服务程序中对中断次数加以统计,以实现数字钟的逻辑功能。6.3 程序设计流程图 综合以上内容设计出数字钟程序设计流程图,如图6-1所示。 图6-1 数字钟程序设计流程图7系统调试与总结7.1电路调试把相应编译好的目标源程序代码加载到单片机芯片at89c51,可接+5v电压电源即开始进行硬件电路的调试工作。如果显示结果不符合设计要求,即检查代码程序是否符合硬件电路的设计,若有错即进行相应的修改,编译后,再进行硬件电路的调试工作。如此反复操作,直到调试出正确的结果。7.2软件调试(1)在计算机上运行程序调试软件keill,进行程序调试,若显示0错误(s), 0警告(s)即证明程序代码正确。(2)在protel软件画好的电路原理图中加载程序代码到单片机芯片at89c51中,进行模拟仿真。若出现错误,查看错误后进行相应的修改再进行调试与模拟仿真,直到调试出正确的结果。系统调试完成之后,系统上电进行功能测试,通过测试观察到,系统上电后数码管上显示时间:00-00-00。按下s1键进行“秒”的调整,每次按键加1s如图按s1两次,led数码管由00-00-00显示为00-00-02,如图7-1所示 图7-1 系统由初始状态进行秒调整两次后的仿真图按下s3键进行“时”的调整,每按一次加1h;按下s4键进行复位键控制,在计时过程中,按下复位键,则返回00-00-00重新计时。通过测试,本设按下s2键进行“分”的调整,每按一次按键加1min;计实现了数字电子钟的基本功能,且系统工作稳定。8结论与心得本单片机数字电子钟系统的功能显示格式为xx-xx-xx即时-分-秒,采用24小时制显示,并且设置4个独立式按键进行时间的调整,并且可以按自己的要求设置扩展小键盘个数,经过测试,系统的可靠性基本上能够达到数字电子钟的设计要求,同时本单片机数字电子钟系统具有扩展性。课程设计是培养学生综合运用所学知识,发现实际问题、提出实际问题、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际学习能力、动手能力的具体训练和考察过程。在此次课程设计中,在学习新知识的同时,把在课程中学到的理论和知识运用到了实践中去,更进一步地熟悉掌握了单片机的结构及掌握了其工作原理和具体的使用方法与相关元件的计算方法、使用方法,了解了电路的开发和制作及课程设计报告的的编写。加深了相关理论知识及专业知识的掌握度,增强了自身的动手能力,锻炼及提高了理解问题、分析问题、解决问题、的能力,更深刻的体会到了理论联系实际的重要性,进一步掌握画图软件的使用和提高相应的画图操作水平及技巧。附录a系统原理图附录b 源程序【汇编语言源程序代码】 s_set bit p1.0 ;数字秒控制位m_set bit p1.1 ;分控制位h_set bit p1.2 ;小时控制位reset bit p1.3 ;复位键second equ 30hminute equ 31hhour equ 32htcnt equ 34h org 00h sjmp start org 00h limp int_t0start: mov dptr,#tablemov hour,#0mov minute,#0mov second,#0mov tcnt,#0mov tmod,#01hmov th0,#(65536-50000)/256 ;定时50msmov tlo,# (65536-50000)mod256mov ie,#82hsetb tr0;*;判断是否有控制键按下,若有键按下,扫描是哪个键按下;*a1:lcall display mov p1,#0ffhjnb s_set,s1jnb m_set,s2jnb h_set,s3jnb reset,resetljmp a1s1: lcall delay ;去抖动jb s_set,a1inc second ;秒值加1lcall displaymov a,secondcjne a,#60,j0 ;判断是否加到60smov second,#0ljmp k1s2: lcall delayjb m_set,a1k1:inc minute ;分钟值加1mov a,minutecjne a,#60,j1;判断是否加到60分钟mov minute,#0ljmp k2s3: lcall delayjb h_set,a1k2:inc hourmov a,hourcjne a,#24,j2 ;判断是否加到24hmov hour,#0mov minute,#0mov secong,#0ljmp a1;*;等待键释放;*j0:jb s_set,a1lcall displaysjmp joj1:jb m_set,a1lcall displaysjmp j1j2:jb h_set,a1lcall displaysjmp j2;*;定时器中断服务程序,对秒,分钟和小时的计数;*int_t0: mov th0,#(65536-50000)/

温馨提示

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

最新文档

评论

0/150

提交评论