课程设计(论文)-基于单片机的电子时钟设计.doc_第1页
课程设计(论文)-基于单片机的电子时钟设计.doc_第2页
课程设计(论文)-基于单片机的电子时钟设计.doc_第3页
课程设计(论文)-基于单片机的电子时钟设计.doc_第4页
课程设计(论文)-基于单片机的电子时钟设计.doc_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

成都学院(成都大学)课程设计报告 基于单片机的电子时钟设计 摘要:由于传统的机械式时钟,使用寿命短,精度不高等特点,本课程设计基于 mcs-51 单片机内 部的定时计数器、中断系统、以及行列键盘和 led 显示器等部件,设计出一个外围电路简单的单 片机电子时钟系统,且在 proteus isis 环境下做了模拟仿真。它能通过数码管显示时间,并且能 通过按键实现设置时间的暂停、启动等控制。从而加深对单片机内部模块的理解,达到提高自身对 硬件的使用以及软件开发的能力。 关键字:中断系统;mcs-51 单片机;计数器 成都学院(成都大学)课程设计报告 i 目 录 第 1 章 绪论1 1.1 课题的研究意义 1 1.2 课题的主要内容 1 第 2 章 电子时钟实现原理2 2.1 系统框图设计 2 2.2 系统电路原理设计 2 第 3 章 系统各单元电路分析4 3.1 at89c51 单片机 .4 3.2 复位电路 5 3.3 时钟电路 5 3.4 时钟电路 6 3.5 按键电路 7 3.6 led 显示电路 .7 第 4 章 仿真实现8 4.1 软件调试 8 4.2 硬件仿真 9 4.3 仿真分析 9 第 5 章 结 论10 参考文献11 附 录12 成都学院(成都大学)课程设计报告 0 第 1 章 绪论 1.1 课题的研究意义 电子时钟有着很长的历史,在 1957 年,venbtura 发明了世界上的第一块电子表后,他就奠定 了电子时钟的基础,电子时钟开始迅速地发展起来。现代的电子时钟是基于单片机的一种计时工具, 采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒为一分钟进一。 满六十分为小时进一,满二十四小时清零。从而达到计时的功能,是人民日常生活不可缺少的工具 世界上很多的钟表都是中国制造,但是对于中国来说,国内的市场只是一个小行业。 这几年,国内的市场正在急剧地膨胀。根据国外的统计数据显示出,发达国家的每个人一生中 平均拥有手表 23 块,在发展国家中,每人一生平均拥有手表是 12 块,而目前在中国的城镇每人一 生拥有的手表还没有超过 6 块,因此在中国的发展的空间是很大的。 现在社会中,大量地投入生产的时钟大多为智能时钟,其功能更加全面并不断得到发展,但是 其价格相对比较昂贵。所以,采用一种控制方便,价格便宜的电子时钟是很有必要的。基于 51 单 片的电子时钟,外围电路简单易于实现,性价比高,是实现电子时钟的不错选择。 1.2 课题的主要内容 本课程设计基于单片机内部资源设计出的一款性价比高的电子时钟系统,主要涉及到以下几个 研究方向: (1) 熟悉 mcs-51 单片机内部定时器的工作方式; (2) 掌握单片机内部中断系统的工作模式; (3) 了解 mcs-51 单片机外部电路的一般设计方法; (4) 熟悉汇编语言的编写规则; (5) 掌握单片机内部 ram 地址分配方法; (6) 掌握特殊功能寄存器的用法; (7) 熟悉 proteus isis 软件的使用; (8) 掌握汇编语言的编译方法。 成都学院(成都大学)课程设计报告 1 第 2 章 电子时钟实现原理 2.1 系统框图设计 根据电子时钟能够实现的功能,采用单片机内部资源,设计出了系统原理框图,如图2- 1 所示。 51单片机 外部按钮电 路 复位电路 时钟设置 电路 数码管 显示电路 定 时 器 译码 模块 控 制 模 块 图 2-1 电子时钟工作框图 在单片机内部构建三个模块:控制模块、译码模块、定时模块,用以实现自动计数、译码 显示功能。单片机外部构建四个电路:时钟电路、复位电路、外部按钮电路、显示电路,用以 实现对单片机内部计数控制以及译码输出的正确显示。该电子时钟是将秒、分、时显示在人的 视觉器官面前的一种计时装置。故将计时周期设置为24 小时,当显示满刻度是 23 时 59 分 59 秒时,数码管显示为 0。为了确保时间正常校对,在系统中设有校对按钮,用以实现对数码 管显示的正确调整。 2.2 系统电路原理设计 在本次的设计中对 12mhz 的系统时钟进行定时计数,初值设为 b03ch。形成定时时间为 50ms。 用片内 ram 的 7bh 单元对 50ms 计数,计 20 次 1 秒钟到,然后对秒计数器 78h 单元加 1,秒计数器 加到 60 后就向分进位,则分计数器 79h 单元加 1 而秒计数器 78h 单元清零;分计数器加到 60 后又 向时进位,则时计数器 7ah 单元加 1 而分计数器 79h 单元清零;时计数器加到 24 则时计数器清零。 然后把秒、分、时计数器分成十位和个位放到 8 个数码管的显示缓冲区,通过数码管显示出来。显 示格式为小时十位、小时个位-分十位、分个位-秒十位、秒个位。在处理过程中加上了按键判 断程序,能对按键处理。 根据电路原理框图设计出电路原理图如图 2-1 所示,由 12mhz 的晶振给单片机提供固定的时钟 频率,通过 k1、k2、k0 可以对显示电路时间进行位设定。 成都学院(成都大学)课程设计报告 2 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 u1 80c51 r3 5.1k r4 5.1k r5 5.1k vcc k2 k1 k0 gnd x1 crystal c2 47uf c3 47uf k0键为模式选择键,按第一次暂停,设小时; 按第二次暂停,设分,按第三次重新开始走动。 k1为加1键,k2为减1健。 c1 1nf r1 1k 图 2-2 电子时钟电路原理图 在图 2-2 中,复位电路、时钟电路、控制电路加上单片机组成单片机最小应用系统,能够实现 很多复杂的功能。系统由 at89c51、led 数码管、按键、电容、电阻等部分构成,能实现时间的调 整、输出、调时间等功能。系统中按钮 k 能对时间进行调整功能的按钮,采用单键控制调时功能, 运用软件去抖判断按键的时间从而选择完成相对应的功能。当按下 k0 第一次时,对 hour 来调节小 时的时间;当第二次按下 k0 时,对 minute 来调节分针的时间;第三次按下是对 scoend 来调节秒 的时间。在设置秒位时间时,如果 k1 按下,秒就加 1;如果 k2 按下,秒就减 1。时、分调节与秒 设定相同。 系统中的按键采用中断技术来检测,它在单片系统中有着十分重要的作用,它不仅可以提高单 片机 cpu 的效率,也可以对突发事件处理。所谓中断就是当 cpu 正在执行程序 a 时,发生了另一个 急需处理的事件 b,这是 cpu 暂停当前执行的程序 a,立即转去执行处理事件 b 的程序,处理完事 件 b 后,再返回到程序 a 继续执行,这个过程被叫做中断。计数器采用软件编程来实现时钟,数码 管显示采用动态显示。 成都学院(成都大学)课程设计报告 3 第 3 章 系统各单元电路分析 3.1 at89c51 单片机 at89c51 是一种带 4k 字节 flash 存储器的低电压、高性能 cmos 的 8 位微处理器,俗称单片机。 at89c51 是一种带 2k 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可 以反复擦除 1000 次。该器件采用 atmel 高密度非易失存储器制造技术制造,与工业标准的 mcs-51 指令集和输出管脚相兼容。由于将多功能 8 位 cpu 和闪烁存储器组合在单个芯片中,atmel 的 at89c51 是一种高效微控制器。at89c51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉 的方案。引脚排列所示图 3-1 所示。 图 3-1 单片机引脚图 由于电路原理中只用到单片机的 p0、p1、p2 口,所示下面对这三个端口进行详细介绍。 p0 口:p00p07 统称为 p0 口,在不接片外存储器与不扩展 i/o 接口时,作为准双向输入/输 出接口。在接有片外存储器或扩展 i/o 接口时,p0 口分时复用为低 8 位地址总线和双向数据总线。 p0 口是一个三态双向口,由一个输出锁存器、两个三态缓冲器、输出驱动电路和输出控制电路组 成。在输入数据时,应人为地先向 p0 口写“1” ,定义为高阻输入。p0 能够用于外部程序数据存储 器,它可以被定义为数据/地址的低八位。在 fiash 编程时,p0 口作为原码输入口,当 fiash 进行 成都学院(成都大学)课程设计报告 4 校验时,p0 输出原码,此时 p0 外部必须被拉高。 p1 口:p10p17 统称为 p1 口,可作为准双向 i/o 接口使用。p1 口是一个内部提供上拉电阻 的 8 位双向 i/o 口,p1 口缓冲器能接收输出 4lsttl 门电流。p1 口管脚写入“1”后,被内部上拉 为高,可用作输入,p1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 p2 口:p20 p27 口统称为 p2 口,一般可以作为准双向 i/o 接口使用,在接有片外存储器或 扩展 i/o 接口且寻址范围超过 256 字节时,p2 口用作高 8 位地址总线。p2 口为一个内部上拉电阻 的 8 位双向 i/o 口,p2 口缓冲器可接收,输出 4 个 ttl 门电流,当 p2 口被写“1”时,其管脚被 内部上拉电阻拉高,且作为输入。并因此作为输入时,p2 口的管脚被外部拉低,将输出电流。这 是由于内部上拉的缘故。p2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,p2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器 进行读写时,p2 口输出其特殊功能寄存器的内容。p2 口在 flash 编程和校验时接收高八位地址信 号和控制信号。 3.2 复位电路 计算机在启动运行时都需要复位,复位时使中央处理器 cpu 和内部其他部件处于一个确定的初 始状态,从这个状态开始工作。 at89c51 单片机有一个复位引脚 rst,高电平有效。在时钟电路工作以后,当外部电路使得 rst 端出现两个机器周期(24 个时钟周期)以上的高电平,系统内部复位。复位有两种方式:上电 复位和按钮复位。在此次的设计中,我采用按键复位,其电路图如图 3-2 所示。 图 3-2 复位电路 只要 rst 保持高电平,at89c51 单片机将循环复位。复位期间,ale、psen 输出高电平。rst 从高电平变为低电平后,pc 指针变为 0000h,使单片机从程序存储器地址为 0000h 的单元开始执行 程序。复位后,内容各寄存器的初始内容如表 4-1 所示,当单片机执行程序出错或进入死循环时, 可按复位按钮重新启动。 3.3 时钟电路 在本次设计中,时钟电路设计就是采用内部方式,即利用芯片内部的振荡电路。at89c51 单片 机内部有一个用于构成振荡器的高增益反相放大器。引脚 xtal1 和 xtal2 是高增益反相放大器的输 成都学院(成都大学)课程设计报告 5 入端和输出端。这个高增益反相放大器将与作为反馈元件的片外晶体谐振器一起构成一个自激振荡 器。外接晶体振荡器以及电容 c1 和 c2 构成并联谐振电路,接在放大器的反馈回路中,对外接电容 的值虽然没有严格的要求,但是电容的大小会影响起振的快速和温度的稳定性、振荡器的稳定性、 振荡器频率的高低。因此,此系统电路的晶体振荡器的值为 12mhz,电容应尽可能的选择陶瓷电容, 电容值约为 22uf。在焊接刷电路板时,我们应注意晶体振荡器和电容尽可能安装的与单片机芯片 靠近些,用以减少寄生电容,为了更好地保证振荡器可靠地工作和稳定行,其电路图如图 3-3 所示。 图 3-3 时钟电路 3.4 时钟电路 在本次设计中,时钟电路设计就是采用内部方式,即利用芯片内部的振荡电路。at89c51 单片 机内部有一个用于构成振荡器的高增益反相放大器。引脚 xtal1 和 xtal2 是高增益反相放大器的输 入端和输出端。这个高增益反相放大器将与作为反馈元件的片外晶体谐振器一起构成一个自激振荡 器。外接晶体振荡器以及电容 c1 和 c2 构成并联谐振电路,接在放大器的反馈回路中,对外接电容 的值虽然没有严格的要求,但是电容的大小会影响起振的快速和温度的稳定性、振荡器的稳定性、 振荡器频率的高低。因此,此系统电路的晶体振荡器的值为 12mhz,电容应尽可能的选择陶瓷电容, 电容值约为 22uf。在焊接刷电路板时,我们应注意晶体振荡器和电容尽可能安装的与单片机芯片 靠近些,用以减少寄生电容,为了更好地保证振荡器可靠地工作和稳定行,其电路图如图 3-4 所示。 成都学院(成都大学)课程设计报告 6 图 3-4 时钟电路 3.5 按键电路 独立式键盘是各按键相互独立,每个按键各接一根 i/o 接口线,每根 i/o 接口线上的按键是不 会影响其他的 i/o 接口线。在本次设计中,按键为 k0、k1、k2,他们分别与单片机 p10、p11、p12 接口线相接。通过按键控制显示器的显示。其电路图如 3-5 所示。 图 3-5 按键电路 3.6 led 显示电路 在本次的设计中,采用的 8 位的数码管显示器。数码管如果按照段数分可为七段数码管和八 段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多了一个小数点的显示; 如果按能够显示多少个 “8”分类的话,也可以可分为 1 位、2 位、4 位等数码管 。 如果按照发光二极管单元 的连接方式又可以分为共阳极数码管和共阴极数码管。共阳 极 的数码管是将所有发光二极管的阳极接到一起 后就形成公共阳极 (com)的数码管,共阳 极 数码管在应用时 要将公共极(com)接到+5v,当某一字段发光二极管的阴极为低电平时,相 应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴极数码管是将所有发 光二极管的阴极接到一起形成公共阴极 (com)的数码管,共阴 极数码管在应用时应将公共极 (com)接到地线 gnd 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某 一字段的阳极为低电平时,相应字段就不亮。 成都学院(成都大学)课程设计报告 7 第 4 章 仿真实现 在本课题中,采用 at89c51 单片机作为主控制器,12mhz 晶振作为振荡源,p0 口作为输出字段 码,p2 口作为输出位选码,采用共阳的 led 数码管,p1.0 为调时位选择按键,p1.1 为加 1 键,p1.2 为减 1 键。片内 ram 的 70h 到 77h 单元为 led 数码管的显示缓冲区 78h,79h,7ah 分别为秒、分、 小时计数单元。7bh 为 50ms 计数器,7ch 为调时按键计数器。具体的程序见附录。 4.1 软件调试 本课题子 keil 软件进行代码调试。keil uvision2 是美国 keil software 公司出品的 51 系列 单片机 c 语言软件开发系统,使用接近于传统 c 语言的语法来开发。与汇编相比,c 语言在结构行、 功能上、可维护行、可读性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开 发周期。首先打开 keil 软件,运行 keil uvision2 ide 软件。在 keil 下建立项目保存在一个文件 中,然后选择所要用的单片机类型这里选择 atmel 公司的 at89c51。然后添加已经写好的汇编程序, 给项目添加程序文件。在编译、连接前注意选择 project 菜单下的 options for targettarget1命令进行设置,选择 output 选项卡,在 create executable 选项前打钩,选择 生成可执行文件 hex 文件,便于以后硬件仿真。调试界面如图 4-1 所示。 图 4-1 keil 调试界面 成都学院(成都大学)课程设计报告 8 4.2 硬件仿真 在课题中,在 proteus 软件中对设计的硬件电路进行仿真。proteus 软件是英国 labcenter electronics 公司出版的 eda 工具软件。它不仅具有其它 eda 工具软件的仿真功能,还能仿真单片 机及单片机的外围器件。 其具体操作步骤如下: (1)打开 proteus 的 isis 软件,新建电路图文件,保存文件。在保存文件过程中,其扩展名 默认。 (2)在 component mode 模式下单击选择元件按钮 p,打开元件选择对话框。在元件选择对话 框的 keywords 窗口中输入元件关键字可以搜索元件,找到元件后,双击元件则可选中元件,添加 元件到 device 列表栏。 (3)选择 devices 元件列表中的元件放到工作窗口,注意放置在工作窗口合适的位置,在元 件放置时可对元件进行移动、旋转等操作。电源与地在工具按钮的 terminals mode 中选取,并连 接导线、存盘。 (4)在 proteus 电路图中,双击单片机 at89c51 芯片,在属性对话框中的 program file 框中 选择下载到 at89c51 芯片中的程序。这里是同一个文件夹下面的 dianzi.hex 文件。 (5)单击仿真运行按钮 play,运行程序。可通过 led 显示屏看到相应的结果。显示结果如图 4-2 所示。 图 4-2 电子时钟仿真图 在系统中,可以通过按键 2、3、4 来校对时钟,用复位按键实现系统复位。 4.3 仿真分析 通过对硬件电路的仿真实现电子时钟的设计,能够精确地计时和显示时、分、秒。具有校对时 钟,复位时钟等功能,达到了设计的预期目的。经过仿真分析,系统的外部时钟为 12mhz,系统内 部计时 50ms,20 次计数为 1 s,使系统的误差控制在了微妙级。 成都学院(成都大学)课程设计报告 9 第 5 章 结 论 通过本次课程设计,实现了基于单片机的电子时钟硬件设计与软件仿真,在这过程中,我学到 了很多,加深了对单片内部模块的理解,进一步学习了汇编语言的编写规则。 从设计开始到最终完成设计,一点一滴积累,在实践中成长,在挫折中前进。在设计的前期, 我系统的学习了 51 单片机的相关资料,掌握了单片机外部电路的合理设计以及各个引脚的功能。 系统的进行电子时钟的需求分析,合理的设计出了电路原理框图,根据原理框图设计出电路原理图, 针对使用的单片机引脚,对单片机使用汇编语言编程。这一步一步的不断努力,让我学到了很多在 书本上学不到的东西,尤其是在处理故障和电路兼容方面的考虑,都使我受益颇多。 在这里课程设计中,我深深感受到实践的重要性,它是检验我们所学知识的有效途径。没有付 出,就没有回报,通过为期两周的准备与学习是我完成设计的前提。在仿真的过程中也遇到过一些 难题,经过自身的努力以及向同学请教,我学到很多,也解决了很多问题。 本次设计的题目为基于单片机的电子时钟设计,通过两周努力,可以顺利实现的功能有:在数 码管上显示时间,并且能通过按键实现设置时间的暂停、启动、调节等控制。 最后,我深刻感受到要做好一个课程设计,就必须做到:在设计程序之前,对所需资料的综合 整理,有效的挑选资料;要明确目标,整理思路;合理设计出系统所必须的流程图,做好充分的心 里准备。这次设计是对我所学单片机一书的综合考验,使我能查漏补缺,复习课本知识,加深理解 记忆,所以每一步我都用心去做。 成都学院(成都大学)课程设计报告 10 参考文献 1 张义,王敏男,许宏昌.例说 51 单片机m.北京:人民邮电出版社,2010 2 林立.单片机原理与应用m.北京:电子工业出版社,2009 3 李守中.51 单片机开发入门与经典实例m.北京:人民邮电出版社,2007 4 李平.单片机入门与开发m.北京:机械工业出版社,2008 5 胡汉才.单片机原理与接口技术m.北京:清华大学出版社,1996 6 杨加国.单片机原理与应用及 c51 程序设计(第二版)m.北京:清华大学出版社,2009 7 张元良.单片机原理与应用教程m.北京:清华大学出版社,2011 成都学院(成都大学)课程设计报告 11 附 录 org 0000h ljmp start org 000bh ;定时器/计数器 t0 中断程序入口 ljmp intt0 ;主程序 start:mov r0,#70h mov r7,#0ch init: mov r0,#00h ;存储单元清零 inc r0 djnz r7,init mov 72h,#10 ;时、分、秒之间的短横显示 mov 75h,#10 mov tmod,#01h mov tl0,#0b0h ;50ms 定时初值 mov th0,#03ch setb ea setb et0 setb tr0 start1:lcall scan lcall keyscan sjmp start1 ;延时 1ms 子程序 dl1ms:mov r6,#14h dl1:mov r7,#19h dl2:djnz r7,dl2 djnz r6,dl1 ret 成都学院(成都大学)课程设计报告 12 ;延时 20ms 子程序 dl20ms:acall scan acall scan acall scan ret;数码管显示程序 scan:mov a,78h ;秒计数值由二进制转十进制后 mov b,#0ah ; 送入显示缓冲区相应位置 div ab mov 71h,a mov 70h,b mov a,79h ;分计数值由二进制转十进制后 mov b,#0ah ; 送入显示缓冲区相应位置 div ab mov 74h,a mov 73h,b mov a,7ah ;时计数值由二进制转十进制后 mov b,#0ah ; 送入显示缓冲区相应位置 div ab mov 77h,a mov 76h,b mov r1,#70h ;循环扫描显示 mov r5,#80h ;显示秒个位的位码(led 共阳) mov r3,#08h scan1:mov a,r5 mov p2,a;位码从 p2 口送出 mov a,r1 mov dptr,#tab movc a,a+dptr mov p0,a ;字段码从 p0 口送出 mov a,r5 成都学院(成都大学)课程设计报告 13 lcall dl1ms ;延时 1ms inc r1 mov a,r5 rr a mov r5,a djnz r3,scan1 mov p2,#00h mov p0,#0ffh ret tab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0bfh ;“09”,“-”的共阳极字段码 ;定时器/计数器 t0 中断服务程序 intt0:push ac

温馨提示

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

评论

0/150

提交评论