ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:568.42KB ,
资源ID:3148160      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3148160.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AT89C51电子时钟课程设计8位 C编.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

AT89C51电子时钟课程设计8位 C编.docx

1、AT89C51电子时钟课程设计8位 C编第一章 序论设计目的:1、增进对MCS51单片机电路的感性认识,加深对理论方面的理解;掌握Protel99SE,Proteus,,Keil软件的有关知识;了解和掌握软硬件设计过程、方法及实现;2、通过基于单片机的数字电子钟的设计的设计练习,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。实验环境:1、增进对MCS51单片机电路的感性认识,加深对理论方面的理解;掌握Protel99SE,Proteus,,Keil软件的有关知识;了解和掌握软硬件设计过程、方法及实现;2、通过基于单片机的数字电子钟的设计的设计练习,了解必须提

2、交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。任务要求:1、查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;2、设计一个时钟系统,实现以24小时为一个周期,同时8位7段LED数码管显示小时、分钟和秒的要求;3、该时钟在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时;4、设计四个按键S1、S2、S3和S4键,进行相应的操作就可实现校时、定时、复位功能。5、设计系统原理图,利用Protel99SE绘制原理图,设计程序,利用Proteus 仿真软件进行系统调试;6、结束后,及时提交设计报告(含纸质稿、电子稿),要求格式规范、内容完整、结论正确

3、,正文字数不少于3000字。第二章 硬件设计1、电路原理图单片机采用AT89C51型时间显示电路:采用一个8位共阴极数码管,P1口驱动显示数字,P2口作为扫描信号时间设置电路:P3.0、P3.1、P3.2分别连接了3个按键,实现调试模式、时间加和时间减闹钟:P3.3口接扬声器2、单片机最小系统为什么称之为单片机最小系统呢?单片机最小系统,也叫做单片机最小应用系统,是指用最少的原件组成单片机可以工作的系统。单片机最小系统的三要素就是电源、晶振、复位电路复位电路:由电容串联电阻构成,由图并结合电容电压不能突变的性质可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的R

4、C值来决定。典型的51单片机当RST脚的高电平持续两个机器周。晶振电路: 晶振,又叫晶体振荡器,从这个名字我们就可以看出来,它注定一生都要不停振荡的。他起到的作用是为单片机系统提供基准时钟信号,类似于我们部队训练时喊口令的人,单片机内部所有的工作都是以这个时钟信号为步调基准来进行工作的。 STC89C52 单片机的 18 脚和 19 脚是晶振引脚,我们接了一个 12MHz(产生精确的uS级时歇,方便定时操作),外加两个 30pF 的电容,电容的作用是帮助晶振起振,并维持振荡信号的稳定。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。所以,适当组合RC的取值就可以保证

5、可靠的复位。一般推荐C 取0.1u,R取4.7K。当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平。至于如何具体定量计算,可以参考电路分析相关书籍。这里我们使用上电复位和按键复位两种方式3、元件清单 电子钟元器件清单元件名称规格型号数量(个)单片机AT89c511晶振12MHz1电容30uF2电容0.1F1按键BUTTON4液晶显示7SEG-MPX8-CC-bule14、显示工作原理:系统采用动态显示方式,用P0口来控制LED数码管的段控线,而用P2口来控制其位控线。动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有

6、一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。5、设计方案与实现本课题采用软件程序设计的方案,利用MCS51内部的定时/计数器进行中断定时,LED数码显示器和按键,配合软件延时实现时、分、秒的计时。运用串行通信方式且计时不占用CPU时间,能够充分利用好CPU。第三章 软件设计流程及描述1、软件介绍 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大

7、的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。优点:Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。2、MCS-51 单

8、片机的定时器/计数器MCS-51单片机共有两个可编程的定时器/计数器,分别称定时器/计数器0和定时器/计数器1。它们都是十六位加法计数结构,分别由TH0(地址8CH)和TL0(地址8AH)及TH1(地址8DH)和TL1(地址8BH)两个8位计数器组成。这四个计数器均属专用寄存器之列。MCS-51的每个定时器/计数器都具有定时和计数两种功能。1. 计数功能所谓计数是指对外部事件进行计数。外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。2. 定时功能定时功能也是通过计数器的计数来实现的。不过此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲。也就是每个机器周期计

9、数器加1。由于一个机器周期等于12个振荡脉冲周期,因此计数频率为振荡频率的1/12。定时器/计数器提供给用户使用的有:八位计数器TH和TL,以及有关的控制位。这些内容只能以软件方法使用。3、MCS-51定时器/计数器的四种工作方式1. 定时工作方式0方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。当TL0的低5位计数溢出时,向TH0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位。在方式0下,当为计数工作方式时,计数值的范围是: 18192(213)当为定时工作方式时,定时时间的计算公式为: (213计数初值)晶振周期12 或 (213计数初值)机器周

10、期其时间单位与晶振周期或机器周期相同(s)。2. 定时工作方式1方式1是16位计数结构的工作方式,计数器由TH0全部8位和TL0全部8位构成。当为计数工作方式时,计数值的范围是: 165536(216)当为定时工作方式时,定时时间计算公式为: (216计数初值)晶振周期12 或 (216计数初值)机器周期3. 定时工作方式工作方式2是自动重新加载工作方式。在这种工作方式下,把16位计数器分为两部分,即以TL作计数器,以TH作预置寄存器,初始化时把计数初值分别装入TL和TH中。当计数溢出后,不是像前两种工作方式那样通过软件方法,而是由预置寄存器TH以硬件方法自动给计数器TL重新加载。变软件加载为

11、硬件加载。初始化时,8位计数初值同时装入TL0和TH0中。当TL0计数溢出时,置位TF0,同时把保存在预置寄存器TH0中的计数初值自动加载TL0,然后TL0重新计数。如此重复不止。这不但省去了用户程序中的重装指令,而且也有利于提高定时精度。但这种工作方式下是8位计数结构,计数值有限,最大只能到255。这种自动重新加载工作方式非常适用于循环定时或循环计数应用,例如用于产生固定脉宽的脉冲,此外还可以作串行数据通信的波特率发送器使用。4、程序模块 此部分主要介绍定时模块,和显示模块。定时部分采用经典的定时器定时。它实现了数字钟的主要部分,和秒表的主要部分,以及产生报时信号,定时设置。显示模块是实现数

12、字钟的又一重要部分,其模块的的独立程度直接影响到数字钟的可视化程度。在此部分的设计中,设置专用显示数据缓冲,与分,时及其他数据缓冲区数据区别,在其中存放的是显示段码,而其他缓冲区存放的是时间数据。在显示时,首先将时间十进制数据转化为显示段码,然后送往数码管显示。显示段码采用动态扫描的方式。在要求改变显示数据的类别时,只需将指向数据缓冲区的指针指向的十进制数据缓冲区即可。数据调整:数据调整有多种方式。一,可以直接进入相关状态进行有关操作,二,将调整分两步,先进入状态,然后执行操作,这两步分别由两个键控制。方式一,比较直接,设计思想也比较简单,但是,这种方式存在操作时间和控制键数目的矛盾。如果用比

13、较少的键,那么可能会在进入状态后处于数据调整等待状态,这样会影响到显示的扫描速度(显示部分可以采用8279芯片来控制,可以解决此问题)。 当然在这种方式下,还可以使用多个状态键,每个状态键,完成一个对应数据的调整。如果采用二的方式,就不会出现这种情况。定时准确性的讨论:程序中定时器,一直处于运行状态,也就是说定时器是理想运作的,其中断程序每隔0.1秒执行一次,在理想状态下,定时器定时是没有系统误差的,但由于定时器中断溢出后,定时器从0开始计数,直到被重新置数,才开始正确定时,这样中断溢出到中断响应到定时器被重新置数,其间消耗的时间就造成了定时器定时的误差。如果在前述定时器不关的情况下,在中断程

14、序的一开始就给定时器置数,此时误差最小,误差大约为:每0.1秒,误差712个机器周期。当然这是在定时器定时刚好为0.1秒时的情况,由以上分析,如果数字钟设计为查询的方式或是在中断的方式下将定时器中断设置为最高级,我们在定时值设置时,可以适当的扣除9个机器周期的时间值。但如果在中断的情况下,没有将定时器中断设置为最高级,那就要视中断程序的大小,在定时值设置时,扣除相应的时间值。软件消抖:消抖可以采用硬件(施密特触发器)的方式,也可以采用软件的方式。在此只讨论软件方式。软件消抖有定时器定时,和利用延时子程序两种方式。一,定时器定时消抖可以不影响显示模块扫描速度,其实现方法是:设置标志位,在定时器中

15、断中将其置位,然后在程序中查询。将其中断优先级设置为低于时钟定时中断,那么它就可以完全不影响时钟定时。二,在采用延时子程序时,如果显示模块的扫描速度本来就不是很快,此时可能会影响到显示的效果,一般情况下,每秒的扫描次数不应小于50次,否则,数码的显示会出现闪烁的情况。因此,延时子程序的延时时间应该小于20毫秒,如果采用定时器定时的方式,延时时间不影响时钟。5、Keil C51软件-新建工程 对于单片机程序来说,每个功能程序,都必须要有一个配套的工程(Project),即使是简单的功能程序也不例外,因此我们首先要新建一个工程,打开我们的 Keil 软件后,点击: Project-New uVision Project.然后会出现一个新建工程的界面在任意文件夹中保存“shuzizhong”文件,软件会自动添加扩展名.uv2保存之后会弹出一个对话框,这个对话框让我们选择单片机型号,我们选择AT89C51工程有了之后,我们要建立编写代码的文件,点击 File-New,新建一个文件,也就是我们编写程序的平台。然后点 File-Save 或者直接点击那个 Save 的快捷键,可以保存文件,保存时我们把它命名为 shuzishizhong.c,这个地方必须加上.c,因为如果

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1