首页 基于单片机的电子时钟毕业设计论文t

基于单片机的电子时钟毕业设计论文t

举报
开通vip

基于单片机的电子时钟毕业设计论文t单片机课程设计 单片机课程设计 (电子时钟) 学 院: 电气自动化 班 级: 电气0840班 姓 名: 田永贤 指导老师:杨 宇 佟云峰 曾谢华 昆明冶金高等专科学校 自动化与电力学院 毕业设计(论文)开题报告 设计题目:基于单片机的电子时钟 学生姓名:田永贤 学 号:0800001236 班 级:电气0840班 专 业:电气自动化 指导教师:杨宇 佟云峰 曾谢华 填表 时间2010年12月25日     毕 业 设 计 开 题 报 告 1.本课题的研究意义 (1)巩固和提高学过的基础理论和专业知识; (2)提高运...

基于单片机的电子时钟毕业设计论文t
单片机课程设计 单片机课程设计 (电子时钟) 学 院: 电气自动化 班 级: 电气0840班 姓 名: 田永贤 指导老师:杨 宇 佟云峰 曾谢华 昆明冶金高等专科学校 自动化与电力学院 毕业设计( 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 )开题报告 设计题目:基于单片机的电子时钟 学生姓名:田永贤 学 号:0800001236 班 级:电气0840班 专 业:电气自动化 指导教师:杨宇 佟云峰 曾谢华 填表 时间2010年12月25日     毕 业 设 计 开 题 报 告 1.本课题的研究意义 (1)巩固和提高学过的基础理论和专业知识; (2)提高运用所学专业知识进行独立思考和综合分析、解决实际问题的能力; (3)培养掌握正确的思维方法和利用软件和硬件解决实际问题的基本技能; (4)增强对实际电路的认识,掌握分析处理方法,进行调试、计算等基本技能的训练,使之具有一定程度的实际工作能力。 (5)掌握科研、资料查询的基本方法以及获取新知识的能力。 (6)促使我们学习和获取新知识,掌握自我学习的能力。 (7)通过参与实际工作,使我们了解社会和工作,具备一定的实际工作能力 (8)通过设计数字电子钟,了解电子钟的工作原理和内部构造。 2.本课题的主要内容 1.根据数字电子钟课题任务制定合理、可行的工作 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 ; 2.进行必要的调研和资料搜集、文献阅读; 3.软件设计要符合软件工程规范,硬件设计符合原理表示、电 路图纸和工艺要求的各种规范; 4.制定系统的测试方法,并根据完整的测试数据对系统的性能指标做出分析和评价; 5.实现数字电子钟的显示时间和时间校对的功能; 6.对课题成果进行总结,撰写毕业设计说明书 3.本课题的重点和难点及预期目标  本课题的重点是:设计出能显示时间且能校对时间的一个电子钟; 本课题的难点是:熟练掌握Proteus、ProtelSE99及keil c51的应用和能实现的功能; 预期目标:实现时间显示且能校对时间的一块电子时钟。 4.设计提纲、进度计划 1、​ 了解机的基本机构; 2、​ 根据数字电子钟课题任务制定合理、可行的 工作计划 幼儿园家访工作计划关于小学学校工作计划班级工作计划中职财务部门工作计划下载关于学校后勤工作计划 ; 3、​ 根据课题任务书选择合理的单片机; 4、​ 根据课题任务书绘出合理的原理图; 5、​ 根据课题任务书编写正确的应用程序; 6、​ 在应用软件中进行仿真练习; 7、​ 购买元器件进行焊接; 8、​ 下载程序进行调试; 9、​ 撰写设计论文。      进度计划: 第十一周:查阅资料,搜集所需信息; 第十二、三周:根据数字电子钟课题任务制定合理、可行的工作计划; 第十四、五周:根据所制定的任务书编写电气原理图; 第十六、七周:根据所制定的任务书编写程序在Proteus中进行仿真调试; 第十八、九周:编写毕业设计论文,装订成册; 第二十周:进行毕业答辩; 5、完成课题所需条件及落实措施 1、资料:相关设备资料和图纸资料已由指导教师提供,其他的参考资料通过图书馆和网络查询,可满足完成任务设计需要; 2、机、plc、Proteus、ProtelSE99、eil c51及软件运行环境; 3、时间和场地:由于要参加毕业实习,学院提供了教为灵活教学进度计划、辅导时间及相应的教室、实验室,可保证灵活有效地按进度完成设计任务。 指导教师意见:(对本课题的深度、广度及工作量的意见) 参考文献、资料: [1] 代启化.基于Proteus的电路设计与仿真[J].现代电子技术.2006,第19期. [2] 曹洪奎;马莹莹 基于Proteus单片机系统设计与仿真[J]. 辽宁工学院学报07年04期 [3] 侯玉宝 基于Proteus的51系列单片机设计与仿真[M]电子工业出版社,2008.270~288 [4] 蔡希彪,曹洪奎; 单片机电子时钟系统的设计与仿真 [J];中国科技信息; 2007年04期 [5] 方怡冰.单片机课程的教学与实验改革[J].电气电子教学学报.2006,第3期. [6] 刘文秀.单片机应用系统仿真的研究[J].现代电子技术.2005, 第286 期 [7] 张友德.单片微型机原理、应用与实验[M].上海:复旦大学出版社,2003.225~256. [8] 李光飞.单片机设计实例指导[M].北京:北京航空航天大学出版社,2004.5,96~100. [9] 胡汉才 单片机原理及其接口技术[M]. 北京: 清华大学出版社 , 1996.89~110. [10] 杨立民.单片机技术及应用[M].西安:西安电子科技大学出版社.1997.90~120. 【11】李军.51系列单片机高级实例开发指南 北京航空航天大学出版社 指导教师: 年 月 日 目录 TOC \o "1-3" \h \z \u 第一章 绪论 7 1.1 引言 7 1.2 Proteus软件简介 8 第二章 单片机的相关知识 8 2.1 单片机简介 8 2.2单片机的发展史 9 2.2.1 4位单片机 9 2.2.2 8位单片机 9 2.2.3 16位单片机 9 2.2.4 32位单片机 10 2.2.5 64位单片机 10 2.3单片机的特点 10 2.4 AT89C51单片机介绍 11 2.4.1 主要特性 11 2.4.2 管脚说明 12 第三章 硬件电路设计 14 3.1电子钟系统硬件组成 14 3.2电子时钟系统设计流程 15 3.3单片机的基本结构 15 3.4单片机的选择 20 3.5Protel DXP电路图设计 22 3.6 Proteus 电路图设计 23 第四章软件设计 24 4.1 程序流程图设计 24 4.2 源程序设计 29 4.3 KeilC51进行程序调试 34 4.4 仿真与调试 35 4.4.1 Proteus中Hex 文件选择 35 4.4.2 Proteus进行电子钟系统仿真 35 结束语 36 参考文献 37 致 谢 38 第一章 绪论 1.1 引言 近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此越来越广泛地应用各个领域. 本文的电子钟系统是以单片机(AT89C51)为核心,时钟芯片DS1302、数码管显示驱动芯片MAX7219等元器件组成。具体介绍应用Proteus的ISIS软件进行单片机系统的电子钟设计与仿真的实现方法。该方法既能准确验证所设计的系统是否满足技术要求,又能提高系统设计的效率和质量,降低开发成本,具有推广价值。随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从4位、8位、16位到32位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。 然而传统的单片机系统开发除了需要购置诸如仿真器、编程器、示波器等价格不菲的电子设备外,开发过程也较繁琐。来自英国Labcenter Electronics公司的Proteus软件很好地诠释了利用现代EDA工具方便快捷开发单片机系统的优势。它包括PROTEUS VSM(Virtual System Modelling)、PROTEUS PCB DESIGN两大组成部分,在PC机上就能实现原理图电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证以及形成PCB文件的完整嵌入式系统设计与研发过程。 单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面, 其调试过程一般分为软件调试、硬件测试、系统调试3个过程。如果采用单片机系统的虚拟仿真软件——Proteus,则不用制作具体的电路板也能够完成以上工作。 1.2 Proteus软件简介 PROTEUS软件由Labcenter公司开发,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台,可以实现数字电路、模拟电路及微控制器系统与外设的混合电路系统的电路仿真、软件仿真、系统协同仿真和PCB设计等功能,是目前唯一能够对各种处理器进行实时仿真、调试与测试的EDA工具。微控制器系统相关的仿真需建立编译和调试环境,可选择Keil C51uVision2 软件。该软件支持众多不同公司的芯片,集编辑、编译和程序仿真等于一体,同时还支持PLM、汇编和C语言的程序设计。它的界面友好易学,在调试程序、软件仿真方面有很强大的功能。 其革命性的功能是:将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如电机、LED、LCD、开关等,实时看到运行后的输入、输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等, Proteus为我们建立了完备的电子设计开发环境。 第二章 单片机的相关知识 2.1 单片机简介 单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。 2.2单片机的发展史 2.2.1 4位单片机 1975年,美国德克萨斯仪器公司首次推出4位单片机TMS-1000;此后,各个计算机公司竞相推出四位单片机。日本松下公司的MN1400系列,美国洛克威尔公司的PPS/1系列等。四位单片机的主要应用领域有:PC机的输入装置,电池充电器,运动器材,带液晶显示的音/视频产品控制器,一般家用电器的控制及遥控器,电子玩具,钟表,计算器,多功能电话等。 2.2.2 8位单片机 1972年,美国Intel公司首先推出8位微处理器8008,并于1976年9月率先推出MCS-48系列单片机。在这以后,8位单片机纷纷面市。例如,莫斯特克和仙童公司合作生产的3870系列,摩托罗拉公司生产的6801系列等。随着集成电路工艺水平的提高,一些高性能的8位单片机相继问世。例如,1978年摩托罗拉公司的MC6801系列及齐洛格公司的Z8系列,1979年NEC公司的UPD78XX系列。这类单片机的寻址能力达64KB,片内ROM容量达4--8KB,片内除带有并行I\O口外,还有串行I\O口,甚至还有A\D转化器功能。8位单片机由于功能强,被广泛用于自动化装置、智能仪器仪表、智能接口、过程控制、通信、家用电器等各个领域。 2.2.3 16位单片机 1983年以后,集成电路的集成度可达几十万只管/片,各系列16位单片机纷纷面市。这一阶段的代表产品有1983年Intel公司推出的MCS-96系列,1987年Intel推出了80C96,美国国家半导体公司推出的HPC16040,NEC公司推出的783XX系列等。16位单片机主要用于工业控制,智能仪器仪表,便携式设备等场合。 2.2.4 32位单片机 随着高新技术只智能机器人,光盘驱动器,激光打印机,图像与数据实时处理,复杂实时控制,网络服务器等领域的应用与发展,20世纪80年代末推出了32位单片机,如Motorlora公司的MC683XX系列,Intel的80960系列,以及近年来流行的ARM系列单片机。32位单片机是单片机的发展趋势,随着技术的发展及开发成本和产品价格的下降,将会与8位单片机并驾齐驱。 2.2.5 64位单片机 近年来,64位单片机在引擎控制,智能机器人,磁盘控制,语音图像通信,算法密集的实时控制场合已有应用,如英国Inmos公司的Transputer T800是高性能的64位单片机。 2.3单片机的特点 1 . 单片机的存储器ROM和RAM时严格区分的。ROM称为程序存储器,只存放程序,固定常数,及数据表格。RAM则为数据存储器,用作工作区及存放用户数据。 2 . 采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力。 3 . 单片机的I/O口通常时多功能的。由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或由机器状态来区分。 4 . 单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。 2.4 AT89C51单片机介绍 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51单片机 2.4.1 主要特性 与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 2.4.2 管脚说明 VCC:供电电压。   GND:接地。   P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写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的一些特殊功能口,如下表所示: P3.0 RXD 串行输入口 P3.1 TXD 串行输出口 P3.2 /INT0 外部中断0 P3.3 /INT1 外部中断1 P3.4 T0 记时器0外部输入 P3.6 /WR 外部数据存储器写选通 P3.7 /RD 外部数据存储器读选通   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:来自反向振荡器的输出。   振荡器特性:   XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 第三章 硬件电路设计 3.1电子钟系统硬件组成 电子钟系统硬件主要由AT89C51单片机、时钟芯片DS1302、数码管显示驱动芯片MAX7219等元器件组成。 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时。 MAX7219是MAXIM公司生产的串行输入/输出共阴极数码管显示驱动芯片。 电子钟系统硬件电路组成框图 3.2电子时钟系统设计流程 。 3.3单片机的基本结构 MCS-52单片机内部结构    8052单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: 中央处理器:    中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 数据存储器(RAM)     8052内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 图3-1 单片机8052的内部结构 程序存储器(ROM): 8052共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。 定时/计数器(ROM): 8052有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。 并行输入输出(I/O)口: 8052共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。 全双工串行口: 8052内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。 中断系统: 8052具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。 时钟电路: 8052内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8052单片机需外置振荡电容。 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-52系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。 下图是MCS-52系列单片机的内部结构示意图。 图3-2 MCS-52系列单片机的内部结构 MCS-52的引脚说明: MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明: MCS-51的引脚说明: MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明: 单片机的引脚图 Pin9:RESET/Vpd复位信号复用脚,当8052通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8052的初始态。 8051的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。 上电自动和手动复位电路图 内部和外部时钟方式图 Pin30:ALE/ 当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。 如果单片机是EPROM,在编程其间, 将用于输入编程脉冲。 Pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。 Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。 3.4单片机的选择 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。其发展趋势不外乎以下几个方面: 1、多功能 单片机中尽可能地把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能。比如A/D、PWM、PCA(可编程计数器阵列)、WDT(监视定时器---看家狗)、高速I/O口及计数器的捕获/比较逻辑等。 有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯片数量。例如,有的芯片以51内核为核心,集成了USB控制器、SMART CARD接口、MP3解码器、CAN或者I*I*C总线控制器等,LED、LCD或VFD显示驱动器也开始集成在8位单片机中。 2、高效率和高性能 为了提高执行速度和执行效率,单片机开始使用RISC、流水线和DSP的设计技术,使单片机的性能有了明显的提高,表现为:单片机的时钟频率得到提高;同样频率的单片机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片内ROM(FLASH)和RAM的容量都突破了以往的数量和限制。 由于系统资源和系统复杂程度的增加,开始使用高级语言(如C语言)来开发单片机的程序。使用高级语言可以降低开发 难度,缩短开发周期,增强软件的可读性和可移植性,便于改进和扩充功能。 3、低电压和低功耗 单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。由于CMOS等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级。这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。 4、低价格 单片机应用面广,使用数量大,带来的直接好处就是成本的降低。目前世界各大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价格。 下面大致介绍一下单片机的主要应用领域和特点。 (1)家用电器领域 用单片机控制系统取代传统的模拟和数字控制电路,使家用电器(如洗衣机、空调、冰箱、微波炉、和电视机等)功能更完善,更加智能化和易于使用。 (2)办公自动化领域 单片机作为嵌入式系统广泛应用于现代办公设备,如计算机的键盘、磁盘驱动、打印机、复印机、电话机和传真机等。 (3)商业应用领域 商业应用系统部分与家用和办公应用系统相似,但更加注重设备的稳定性、可靠性和安全性。商用系统中广泛使用的电子计量仪器、收款机、条形码阅读器、安全监测系统、空气调节系统和冷冻保鲜系统等,都采用了单片机构成的专用系统。与通用计算机相比,这些系统由于比较封闭,可以更有效地防止病毒和电磁干扰等,可靠性更高。 (4)工业自动化 在工业控制和机电一体化控制系统中,除了采用工控计算机外,很多都是以单片机为核心的单片机和多机系统。 (5)智能仪表与集成智能传感器 目前在各种电气测量仪表中普遍采用了单片机应用系统来代替传统的测量系统,使得测量系统具有存储、数据处理、查询及联网等智能功能。将单片机和传感器相结合,可以构成新一代的智能传感器。它将传感器变换后的物理量作进一步的变化和处理,使其成为数字信号,可以远距离传输并与计算机接口。 (6)现代交通与航空航天领域 通常应用于电子综合显示系统、动力监控系统、自动驾驶系统、通信系统以及运行监视系统等。这些领域对体积、功耗、稳定性和实时性的要求往往比商用系统还要高,因此采用单片机系统更加重要。 目前,我国生产很多型号的单片机,在此,我们采用型号为STC89C52的单片机。因为: STC89C52是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-52指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C52提供了高性价比的解决方案。     STC89C52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,STC89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本 Protel DXP设计的电子钟电路原理图 主要元器件功能介绍: AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时。具有调时功能。时钟操作可通过AM\PM指示决定采用24或12小时格式。 MAX7219是MAXIM公司生产的串行输入/输出共阴极数码管显示驱动芯片。采用三线制串行接口技术进行数据传送,可直接与单片机连接,用户能方便地修改内部参数实现多位LED数码管显示。内含有硬件动态扫描显示控制,每块芯片可驱动8个LED数码管。 3.6 Proteus 电路图设计 运行Proteus的ISIS 后出现程序主窗口界面,鼠标左键单击窗口左侧的元器件工具栏的component.按钮, 接着再点击窗口左侧的元器件选择区的Pick Divices.按钮,弹出如图1所示的Pick Devices窗口,再在Categ栏里点击MicroprocessorICs项后,在Results栏里会出现各种类型的CPU器件,找到 AT89C51后双击,AT89C51就被添加到当前窗口左侧的元器件列表区了。 用同样的方法依次把 DS130、MAX7219、数码管、晶振以及多个电阻、电容也添加到器件列表区里。 然后再依次点击列表区里的器件,单击左键把他们放到绘图区,右键选中元件,并编辑其属性,合理布局后,进行连线。连线时当鼠标的指针靠近一个对象的引脚时,跟着鼠标的指针r ICs就会出现一个“×”提示符号,点击鼠标左键即可画线了,需要拐弯时点击一下即可,在终点再点击确认一下就画出了一段导线,所有导线画完后,点击工具栏的 Inter-sheeTerminal.按钮,添加上电源和接地符号,原理图的绘制就完成了。 Proteus中设计的电子时钟系统原理图 第四章软件设计 4.1 程序流程图设计 系统程序流程图 按键处理是先 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。 按键处理流程图 定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。 定时器中断流程图 时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。 时间显示流程图 4.2 源程序设计 中断技术在单片系统中有着十分重要的作用,它不仅可以提高单片机CPU的效率,也可以对突发事件处理。所谓中断就是当CPU正在执行程序A时,发生了另一个急需处理的事件B,这是CPU暂停当前执行的程序A,立即转去执行处理事件B的程序,处理完事件B后,再返回到程序A继续执行,这个过程被叫做中断。关于中断的概念有下列几个名词:(1)程序A称为主程序,(2)处理事件B的程序称为中断服务程序,(3)主程序中转向中断服务程序的地方称为断点,(4)引起中断的原因即事件B称为中断源,(5)转去执行中断服务程序称为中断响应。关于中断的概念可以打个如下的比喻。领导(CPU)在自己的房间办公(执行主程序),下属(外设)有问题打电话来请示(中断源),领导停下正在进行的工作,通过电话给下属做指示(执行中断服务程序),指示完后,领导挂断电话,继续做自己的工作(返回主程序继续执行)。 中断是一个过程,当中央处理器CPU在处理某件事情时,外部又发生了另一紧急事件,请求CPU暂停当前的工作而去迅速处理该紧急事件。处理结束后,再回到原来被中断的地方,继续原来的工作。引起中断的原因或发出中断请求的来源,称为中断源。 单片机一般允许有多个中断源,当几个中断源同时向CPU请求中断时,就存在CPU优先响应哪一个中断请求源的问题(优先级问题),一般根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求,于是便规定每一个中断源都有一个中断优先级别,并且CPU总是响应级别最高的中断请求。 当CPU正在处理一个中断源请求的时候,又发生了另一个优先级比它高的中断源请求,如果CPU能够暂时中止对原来中断处理程序的执行,转而去处理优先级更高的中断源请求,待处理完以后,再继续执行原来的低级中断处理程序,这样的过程称为中断嵌套。 以下为部分源程序: #include "AT89X51.H" #include "delay.h" #include "max7219.c" #include "music.c" #define uchar unsigned char #define uint unsigned int idata sbit ADD=P1^1; sbit SUB=P1^0; sbit ACC0 = ACC^0; sbit ACC7 = ACC^7; void showDay(void);//显示时间 void showData(void);//显示日期 void showDishi(void);//显示定时 void int_0(void);//中断0 void int_1(void);//中断1 void flash_max7219(unsigned char n);//闪一个位max7219 /*********************************************************************/ /* 实时时钟模块 时钟芯片型号:DS1302 */ /*/ /*********************************************************************/ sbit T_CLK = P2^3; /*实时时钟时钟线引脚 */ sbit T_IO = P2^4; /*实时时钟数据线引脚 */ sbit T_RST = P2^5; /*实时时钟复位线引脚 */ /********************************************************************/ void v_RTInputByte(uchar ucDa); //往DS1302写入1Byte数据 uchar uc_RTOutputByte(void);// 从DS1302读取1Byte数据 void v_W1302(uchar ucAddr, uchar ucDa);//往DS1302写入数据 uchar uc_R1302(uchar ucAddr);//读取DS1302某地址的数据 //void v_BurstW1302T(uchar *pSecDa);//往DS1302写入时钟数据(多字节方式) //void v_BurstR1302T(uchar *pSecDa);//读取DS1302时钟数据 //void v_BurstW1302R(uchar *pReDa);//往DS1302寄存器数写入数据(多字节方式) //void v_BurstR1302R(uchar *pReDa);//读取DS1302寄存器数据 void v_Set1302(uchar *pSecDa) ;//设置初始时间,,输入: pSecDa: 初始时间地址。初始时间格式为: 秒 分 时 日 月 星期 年 void v_Get1302(uchar ucCurtime[]) ;//读取DS1302当前时间 uchar showTime[8]={0,0,10,0,0,10,0,0};//显示的时间**********************************************全局变量 uchar setTime[2]={0,0};//定时的设定 uchar time[7]={0,0x59,0x19,0x24,0x7,0x01,0x08};//秒 分 时 日 月 星期 年 uchar Tmod=7;//此时的调节模式 void main() { delay_ms(200); //sound(); initMAX7219();//初始化max7219 cls();//清屏max7219 //v_Get1302(& time); //v_Set1302(& time); EX0=1; EX1=1; IT1=1;//下降沿触发 IT0=1; EA=1;//开中断 v_Get1302(& time); showDay(); //int_1(); //int_0(); while(1) { v_Get1302(& time); showDay(); if ((setTime[0]==time[2])&&(setTime[1]==time[1]))sound(); } } //************************************************显示时间 void showDay(void) { //将数据转化为显示格式 showTime[7]=time[0] & 0x0f;//个位 showTime[6]=time[0]>>4;//十位 showTime[4]=time[1] & 0x0f; showTime[3]=time[1]>>4; showTime[1]=time[2] & 0x0f; showTime[0]=time[2]>>4; showTime[2]=showTime[5]=10; disp_88(& showTime); } //*************************************************显示日期 void showData(void) { showTime[7]=time[3] & 0x0f; showTime[6]=time[3]>>4; showTime[4]=time[4] & 0x0f; showTime[3]=time[4]>>4; showTime[1]=time[6] & 0x0f; showTime[0]=time[6]>>4; showTime[2]=showTime[5]=10; disp_88(& showTime); } //*************************************************显示定时 void showDishi(void) { showTime[1]=setTime[0] & 0x0f; showTime[0]=setTime[0]>>4; showTime[4]=setTime[1] & 0x0f; showTime[3]=setTime[1]>>4; showTime[6]=12; showTime[7]=13; showTime[2]=showTime[5]=10; disp_88(& showTime); } 4.3 KeilC51进行程序调试 4.4 仿真与调试 4.4.1 Proteus中Hex 文件选择 系统仿真分析电路原理图在ISIS里设计完成,并将系统软件编译成.Hex文件,再进行电子时钟的系统虚拟仿真 。 (1)在ISIS的原理图中,右键单击AT89C51将其选中,然后单击左键打开AT89C51的Edit Component 对话框,如下图所示。 (2)选择相应的.Hex文件,再在Proteus ISIS 编辑窗口的File菜单中选择Save Design 选项,保存设计,生成.DSN文件。 4.4.2 Proteus进行电子钟系统仿真 在Proteus ISIS的Debug菜单中选择Execute,运行程序,系统仿真结果如下图所示。 实现功能: 当进入调整功能时,按第一个键K1进行减运算,按第二个键K2进行加运算。 按下第三个键K3,实现日期\时间调整及\定时功能,等数字闪烁后,按一二键进行加减,从而可以进行具体日期时间调整。 当定时设定后,到预定时间后,系统通过C51音乐程序演唱歌曲-八月桂花。 按下第四个键K4,可以进行时间\日期切换,8位LED数码管将显示时间或日期,采用24小时制。 时间显示格式为:时-分-秒;日期显示格式为:日-月-年。 具有实时显示当前计算机系统时间和日期的功能。 Proteus系统仿真结果 结束语 本文的电子钟系统是以单片机(AT89C51)为核心,时钟芯片DS1302、数码管显示驱动芯片MAX7219等元器件组成。具体介绍应用Protel DXP进行电路原理图设计,Keil C51软件调试程序以及Proteus的ISIS软件进行单片机系统的电子钟设计与仿真。实现了硬件软化的目的。 我在这一次数字电子钟的设计过程中,很是受益匪浅。通过对自己在大学三年时间里所学的知识的回顾,并充分发挥对所学知识的理解和对毕业设计的思考及书面表达能力,最终完成了。这为自己今后进一步深化学习,积累了一定宝贵的经验。撰写论文的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。培养了我运用所学知识解决实际问题的能力。 通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相整合,理论知识服务于教学实践,以增强自己的动手能力。这个实验十分有意义 我获得很深刻的经验。通过这次课程设计,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性,,也从中得知了很多书本上无法得知的知识。 我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。 参考文献 [1] 代启化.基于Proteus的电路设计与仿真[J].现代电子技术.2006,第19期. [2] 曹洪奎;马莹莹 基于Proteus单片机系统设计与仿真[J]. 辽宁工学院学报07年04期 [3] 侯玉宝 基于Proteus的51系列单片机设计与仿真[M]电子工业出版社,2008.270~288 [4] 蔡希彪,曹洪奎; 单片机电子时钟系统的设计与仿真 [J];中国科技信息; 2007年04期 [5] 方怡冰.单片机课程的教学与实验改革[J].电气电子教学学报.2006,第3期. [6] 刘文秀.单片机应用系统仿真的研究[J].现代电子技术.2005, 第286 期 [7] 张友德.单片微型机原理、应用与实验[M].上海:复旦大学出版社,2003.225~256. [8] 李光飞.单片机设计实例指导[M].北京:北京航空航天大学出版社,2004.5,96~100. [9] 胡汉才 单片机原理及其接口技术[M]. 北京: 清华大学出版社 , 1996.89~110. [10] 杨立民.单片机技术及应用[M].西安:西安电子科技大学出版社.1997.90~120. 【11】李军.51系列单片机高级实例开发指南 北京航空航天大学出版社 致 谢 通过不断努力,终于完成了此次毕业设计。在此,首先感谢导师杨宇、曾谢华、佟云峰老师们在百忙之中还抽出宝贵的时间对我进行精心的指导,才使我顺利完成了毕业设计。同时也感谢电气学院各个领导和老师对我三年来的关心和帮助。使我在大学中学到了许多宝贵的知识和经验。在此,衷心地感谢你们!
本文档为【基于单片机的电子时钟毕业设计论文t】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_201150
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:38
分类:其他高等教育
上传时间:2011-10-24
浏览量:101