单片机电子时钟论文.doc

上传人:文库蛋蛋多 文档编号:3936568 上传时间:2023-03-28 格式:DOC 页数:21 大小:295KB
返回 下载 相关 举报
单片机电子时钟论文.doc_第1页
第1页 / 共21页
单片机电子时钟论文.doc_第2页
第2页 / 共21页
单片机电子时钟论文.doc_第3页
第3页 / 共21页
单片机电子时钟论文.doc_第4页
第4页 / 共21页
单片机电子时钟论文.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《单片机电子时钟论文.doc》由会员分享,可在线阅读,更多相关《单片机电子时钟论文.doc(21页珍藏版)》请在三一办公上搜索。

1、前 言摘要:由于传统的机械式时钟,使用寿命短,精度不高等特点,本课程设计基于MCS-51单片机内部的定时计数器、中断系统、以及四个按键和LED显示器等部件,设计出一个外围电路简单的单片机电子时钟系统,且在Proteus ISIS环境下做了模拟仿真。它能通过数码管显示时间,并且能通过按键实现设置时间的调整。从而加深对单片机内部模块的理解,达到提高自身对硬件的使用以及软件开发的能力。关键字:中断系统;MCS-51单片机;计数器目 录第1章 绪论11.1 课题的研究意义11.2 课题的主要内容1第2章 方案论证22.1 系统框图设计22.2 系统电路原理设计2第3章 系统各单元电路分析43.1 AT

2、89C51单片机43.2 按键电路73.3 LED显示电路7第4章 仿真实现84.1 软件调试84.2 硬件仿真94.3 仿真分析9第5章 结 论10参考文献11附 录12安徽工程大学机电学院本科课程设计任务书2009 届 机电 学院 计算机科学与技术 专业课程设计题目:电子钟课程设计任务内容1. 课程设计的目的意义:通过课程设计培养同学们的系统设计能力,使同学们达到以下能力训练:、调查研究、分析问题的能力;、使用设计手册、技术规范的能力;、查阅中外文献的能力;、制定设计方案的能力;、计算机应用的能力;、设计计算和绘图的能力;、技术经济指标的分析能力;、语言文字表达的能力。2.本课题研究的主要

3、内容:设计一个电子钟,利用四个数码管,在其上显示分、秒;用四个小键盘分别进行+1分、-1分、+1秒、-1秒改变时间值。基本要求:、设计实验电路(要求利用实验仪的硬件资源)、分析实验原理、列出实验接线表、采用汇编语言编写实验程序、通过实验验证功能的实现、编写课程设计说明书2. 提交的成果:一份符合毕业设计论文规范的课程设计说明书课程设计统一使用学校印制的课程设计封面及课程设计袋。课程设计袋按要求认真填写,字体要工整,卷面要整洁,手写一律用碳素墨水书写。课程设计除课程设计袋的其它资料鼓励用计算机打印。课程设计按统一顺序装订:(1) 封面(2) 前言(3) 目录(4) 课程设计任务书(须有指导教师签

4、名及日期)(5) 正文(分章、层次等,每一章从新的一页开始)(6) 小结(7) 参考文献(8) 课程设计图纸装订好后放入填写好的资料袋内由各教学单位存档。相关要求可酌情参照“安徽工程科技学院本科毕业设计(论文)管理办法”执行。指导教师(签字)接受任务书学生(签字)完成日期 2012年6月6日第1章 绪 论1.1 课题的研究意义电子时钟有着很长的历史,在1957年,Venbtura发明了世界上的第一块电子表后,他就奠定了电子时钟的基础,电子时钟开始迅速地发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒为一分钟进一。 满六

5、十分为小时进一,满二十四小时清零。从而达到计时的功能,是人民日常生活不可缺少的工具世界上很多的钟表都是中国制造,但是对于中国来说,国内的市场只是一个小行业。这几年,国内的市场正在急剧地膨胀。根据国外的统计数据显示出,发达国家的每个人一生中平均拥有手表23块,在发展国家中,每人一生平均拥有手表是12块,而目前在中国的城镇每人一生拥有的手表还没有超过6块,因此在中国的发展的空间是很大的。现在社会中,大量地投入生产的时钟大多为智能时钟,其功能更加全面并不断得到发展,但是其价格相对比较昂贵。所以,采用一种控制方便,价格便宜的电子时钟是很有必要的。基于51单片的电子时钟,外围电路简单易于实现,性价比高,

6、是实现电子时钟的不错选择。1.2 课题的主要内容本课程设计基于单片机内部资源设计出的一款性价比高的电子时钟系统,主要涉及到以下几个研究方向:(1) 熟悉MCS-51单片机内部定时器的工作方式;(2) 掌握单片机内部中断系统的工作模式;(3) 了解MCS-51单片机外部电路的一般设计方法;(4) 熟悉汇编语言的编写规则;(5) 掌握单片机内部ram地址分配方法;(6) 掌握特殊功能寄存器的用法;(7) 熟悉Proteus ISIS软件的使用;(8) 掌握C的编译方法。第2章 方案论证2.1 系统电路原理设计在本次的设计中对12MHZ的系统时钟进行定时计数,初值设为B03CH。形成定时时间为50m

7、s。用片内RAM对50ms计数,计20次1秒钟到,然后对秒加1,秒计数器加到60后就向分进位,分计数器加到60后,分计数器清零;然后把秒、分计数器分成十位和个位放到4个数码管的显示缓冲区,通过数码管显示出来。显示格式为-分十位、分个位-秒十位、秒个位。在处理过程中加上了按键判断程序,能对按键处理。根据电路原理框图设计出电路原理图如图2-1所示,由12MHz的晶振给单片机提供固定的时钟频率,通过k0、k1、k2、k3可以对显示电路时间进行位设定。图2-2 电子时钟电路原理图在图2-2中,复位电路、时钟电路、控制电路加上单片机组成单片机最小应用系统,能够实现很多复杂的功能。系统由AT89C51、L

8、ED 数码管、按键等部分构成,能实现时间的调整、输出、调时间等功能。系统中按钮k能对时间进行调整功能的按钮,采用单键控制调时功能。当按下k0时,秒钟加1, 当按下k1时,秒钟减1, 当按下k2时,分钟加1, 当按下k3时,分钟减1。系统中的按键采用中断技术来检测,它在单片系统中有着十分重要的作用,它不仅可以提高单片机CPU的效率,也可以对突发事件处理。所谓中断就是当CPU正在执行程序A时,发生了另一个急需处理的事件B,这是CPU暂停当前执行的程序A,立即转去执行处理事件B的程序,处理完事件B后,再返回到程序A继续执行,这个过程被叫做中断。计数器采用软件编程来实现时钟,数码管显示采用动态显示。第

9、3章 系统各单元电路分析3.1 AT89C51单片机AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS的8位微处理器,俗称单片机。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚排列所示图3-1所示。图3-1 单片机引脚图由于电路原理中只用

10、到单片机的p0、p1、p2口,所示下面对这三个端口进行详细介绍。P0口:P00P07统称为P0口,在不接片外存储器与不扩展I/O接口时,作为准双向输入/输出接口。在接有片外存储器或扩展I/O接口时,P0口分时复用为低8位地址总线和双向数据总线。P0口是一个三态双向口,由一个输出锁存器、两个三态缓冲器、输出驱动电路和输出控制电路组成。在输入数据时,应人为地先向P0口写“1”,定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P10P17统称为P1口,

11、可作为准双向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口的管脚被外部拉低,将输出电流。这是由于

12、内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 3.2 按键电路独立式键盘是各按键相互独立,每个按键各接一根I/O接口线,每根I/O接口线上的按键是不会影响其他的I/O接口线。在本次设计中,按键为K0、K1、K2、K3,他们分别与单片机P10、P11、P12、P13接口线相接。通过按键控制显示器的显示。其电路图如3-5所示。图3-2按键电路3.3LED显示电路在本次的

13、设计中,采用的4位的数码管显示器。数码管如果按照段数分可为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多了一个小数点的显示;如果按能够显示多少个“8”分类的话,也可以可分为1位、2位、4位等数码管。如果按照发光二极管单元的连接方式又可以分为共阳极数码管和共阴极数码管。共阳极的数码管是将所有发光二极管的阳极接到一起后就形成公共阳极(COM)的数码管,共阳极数码管在应用时要将公共极(COM)接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴极数码管是将所有发光二极管的阴极接到一起形成公共阴极(COM)的数

14、码管,共阴极数码管在应用时应将公共极(COM)接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。图3-3LED显示电路 第4章 仿真实现4.1 软件调试本课题子KEIL软件进行代码调试。Keil uVision2是美国Keil Software公司出品的51系列单片机C语言软件开发系统,使用接近于传统C语言的语法来开发。与汇编相比,C语言在结构行、功能上、可维护行、可读性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期。首先打开KEIL软件,运行Keil uVision2 IDE软件。在KEIL下建立项目保存

15、在一个文件中,然后选择所要用的单片机类型这里选择Atmel公司的AT89C51。然后添加已经写好的汇编程序,给项目添加程序文件。在编译、连接前注意选择Project菜单下的Options for TargetTarget1命令进行设置,选择Output选项卡,在Create Executable选项前打钩,选择生成可执行文件HEX文件,便于以后硬件仿真。调试界面如图4-1所示。图4-1 Keil 调试界面4.2 硬件仿真在课题中,在PROTEUS软件中对设计的硬件电路进行仿真。PROTEUS软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软

16、件的仿真功能,还能仿真单片机及单片机的外围器件。其具体操作步骤如下:(1)打开PROTEUS的ISIS软件,新建电路图文件,保存文件。在保存文件过程中,其扩展名默认。(2)在component mode模式下单击选择元件按钮P,打开元件选择对话框。在元件选择对话框的keywords窗口中输入元件关键字可以搜索元件,找到元件后,双击元件则可选中元件,添加元件到device列表栏。(3)选择devices元件列表中的元件放到工作窗口,注意放置在工作窗口合适的位置,在元件放置时可对元件进行移动、旋转等操作。电源与地在工具按钮的Terminals mode中选取,并连接导线、存盘。(4)在PROTEU

17、S电路图中,双击单片机AT89C51芯片,在属性对话框中的program file框中选择下载到AT89C51芯片中的程序。这里是同一个文件夹下面的dianzi.hex文件。(5)单击仿真运行按钮play,运行程序。可通过LED显示屏看到相应的结果。显示结果如图4-2所示。图4-2 电子时钟仿真图在系统中,可以通过按键1,2,3,4来校对时钟.4.3 仿真分析通过对硬件电路的仿真实现电子时钟的设计,能够精确地计时和显示分、秒。具有校对时钟,达到了设计的预期目的。经过仿真分析,系统的外部时钟为12MHZ,系统内部计时50ms,20次计数为1 s,使系统的误差控制在了微妙级。第5章 结 论通过本次

18、课程设计,实现了基于单片机的电子时钟硬件设计与软件仿真,在这过程中,我学到了很多,加深了对单片内部模块的理解,进一步学习了汇编语言的编写规则。从设计开始到最终完成设计,一点一滴积累,在实践中成长,在挫折中前进。在设计的前期,我系统的学习了51单片机的相关资料,掌握了单片机外部电路的合理设计以及各个引脚的功能。系统的进行电子时钟的需求分析,合理的设计出了电路原理框图,根据原理框图设计出电路原理图,针对使用的单片机引脚,对单片机使用汇编语言编程。这一步一步的不断努力,让我学到了很多在书本上学不到的东西,尤其是在处理故障和电路兼容方面的考虑,都使我受益颇多。在这里课程设计中,我深深感受到实践的重要性

19、,它是检验我们所学知识的有效途径。没有付出,就没有回报,通过为期两周的准备与学习是我完成设计的前提。在仿真的过程中也遇到过一些难题,经过自身的努力以及向同学请教,我学到很多,也解决了很多问题。本次设计的题目为基于单片机的电子时钟设计,通过两周努力,可以顺利实现的功能有:在数码管上显示时间,并且能通过按键实现设置时间的暂停、启动、调节等控制。最后,我深刻感受到要做好一个课程设计,就必须做到:在设计程序之前,对所需资料的综合整理,有效的挑选资料;要明确目标,整理思路;合理设计出系统所必须的流程图,做好充分的心里准备。这次设计是对我所学单片机一书的综合考验,使我能查漏补缺,复习课本知识,加深理解记忆

20、,所以每一步我都用心去做。参考文献1 张义,王敏男,许宏昌.例说51单片机M.北京:人民邮电出版社,20102 林立.单片机原理与应用M.北京:电子工业出版社,20093 李守中.51单片机开发入门与经典实例M.北京:人民邮电出版社,20074 李平.单片机入门与开发M.北京:机械工业出版社,20085 胡汉才.单片机原理与接口技术M.北京:清华大学出版社,19966 杨加国.单片机原理与应用及C51程序设计(第二版)M.北京:清华大学出版社,20097 张元良.单片机原理与应用教程M.北京:清华大学出版社,2011附 录1、代码:#include#include#define uchar u

21、nsigned char#define uint unsigned int/*斯段共阴管显示定义*/ uchar code dispcode =0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0xBF,0x86,0xCB,0xCF,0xEF,0xED,0xFD,0x87,0xFF,0xDF;/*定义并初始化变量*/uchar seconde=0;uchar minite=0;uchar mstcnt=0;sbit P1_0=P10; / second 调整定义sbit P1_1=P11; sbit P1_2=P12;sbit P1_3=P1

22、3; /*函数声明*/void delay(uchar k ); /延时子程序void time_pro( ); /时间处理子程序void display( ); /显示子程序void keyscan( ); /键盘扫描子程序/*/*延时子程序*/*/void delay (uchar k)uchar j;while(k-)!=0) for(j=0;j125;j+) ; /*/*时间处理子程序*/*/void time_pro( void) if(seconde=60) /秒钟设为60进制 seconde=0; minite+; if( minite=60) /分钟设为60进制 minite=

23、0; /*/* 显示子程序*/*/void display(void) P2=0xfb; P0=dispcodeminite/10; /显示分的十位 delay(4); P2=0xf7; P0=(dispcodeminite%10)|0X80; /显示分的个位 delay(4); P2=0xef; P0=dispcodeseconde/10; /显示秒的十位 delay(4); P2=0xdf; P0=dispcodeseconde%10; /显示秒的个位 delay(4); /*/*键盘扫描子程序*/*/void keyscan (void) if(P1_0=0) /按键1秒的调整 dela

24、y(125); if(P1_0=0) seconde+; if(seconde=60) seconde=0; if(P1_1=0) /按键2秒的调整 delay(125); if(P1_1=0) seconde-; if(seconde=-1) seconde=59; if(P1_2=0) /按键3分的调整 delay(125); if(P1_2=0) minite+; if(minite=60) minite=0; if(P1_3=0) /按键4分的调整 delay(125); if(P1_3=0) minite-; if(minite=-1) minite=59; void timer0(

25、void) interrupt 1 using 0 /定时器0方式1,50ms中断一次 TH0=0x3c;TMOD = 0x11; mstcnt+; if(mstcnt=20) seconde+; mstcnt=0; /对计数单元的清零十分的重要 /*/*主函数*/*/void main(void) P1=0xff; /初始化p1口,全设为1 TMOD = 0x11; /time0为定时器,方式1TH0=0x3c; /预置计数初值TL0=0xb0;EA=1; /中断允许寄存器ET0=1; /中断允许寄存器TR0=1; /T0的运行控制位 ,为1时启动计数 while (1) keyscan( ); /按键扫描 time_pro( ); /时间处理 display( ); /显示时间 2、完整电路图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号