下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、设计目的:1、增进对MCS5单片机电路的感性认识,加深对理论方面的理解;掌握 Protel99SE , Proteus, , Keil 软件的有关知识;了解和掌握软硬件设计过程、方法及实现;2、通过基于单片机的数字电子钟的设计的设计练习,了解必须提交的各项工程文件, 也达到巩固、 充实和综合运用所学知识解决实际问题的目的。实验环境:1、增进对MCS5单片机电路的感性认识,加深对理论方面的理解;掌握 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 口作为扫描信号时间设置电路: 、 、分别连接了 3 个按键,实现调试模式、时间加和时间减闹钟 : 口接扬声器2、单片机最小系统为什么称之为单片机最小系统呢?单片机最小系统,也叫做单片机最小应用系统, 是指用最少的原件组成单片机可以工作的系统。 单片机最小系统的三要素就是电源、晶振、复位电路复位电路: 由电容串联电阻构成,由图并结合" 电容电压不能突变"的性质可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持
4、续的时间由电路的RC值来决定。典型的51单片机当RSTW的高电平持续两个机器周晶振电路:晶振,又叫晶体振荡器,从这个名字我们就可以看出来,它注定一生都要不停振荡的。他起到的作用是为单片机系统提供 基准时钟信号,类似于我们部队训练时喊口令的人, 单片机内部所有 的工作都是以这个时钟信号为步调基准来进行工作的。STC89C52单片机的18脚和19脚是晶振引脚,我们接了一个12MHz(产生精确 的uS级时歇,方便定时操作),外加两个30pF的电容,电容的作用 是帮助晶振起振,并维持振荡信号的稳定。时钟电路产生的振荡脉冲 经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。所以,适当组合RC的取值就
5、可以保证可靠的复位。一般推荐 C取, R取。当然也有其他取法的,原则就是要让 RC组合可以在RST脚上 产生不少于2个机周期的高电平。至于如何具体定量计算,可以参考 电路分析相关书籍。这里我们使用上电复位和按键复位两种方式3、元件清单电子钟元器件清单元件名称规格型号数量(个)单片机AT89c511晶振12MHz1电容30uF2电容F1按键BUTTON4液晶显示7SEG-MPX8-CC-bule 14、显示工作原理:系统采用动态显示方式,用P0口来才5制LED数码管的段控线,而用 P2口来控制其位控线。动态显示通常都是采 用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在 任何时刻都只
6、有一位数码管被点亮,但由于人眼存在视觉残留效应, 只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。5、设计方案与实现 本课题采用软件程序设计的方案,利用MCS-51 内部的定时/计数器进行中断定时,LED数码显示器和按键,配合软 件延时实现时、分、秒的计时。运用串行通信方式且计时不占用CPU时间,能够充分利用好CPU第三章软件设计流程及描述1、软件介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C 语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、 可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一
7、个功能强大的仿真调试器等在内的 完整开发方案,通过一个集成开发环境(uVision )将这些部分组合 在一起。运行 Keil软件需要 WIN98 NK WIN2000 WINX喈操作系 统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即 使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大 的软件仿真调试工具也会令你事半功倍。优点:1 . Keil C51生成的目标代码效率非常之高,多数语句生成的汇编 代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。2 .与汇编相比,C语言在功能上、结构性、可读性、可维护性上 有明显的优势,因而易学易用。用过汇编语言后再使用
8、C来开发,体 会更加深刻。2、MCS-51单片机的定时器/计数器MCS-51单片机共有两个可编程的定时器/计数器,分别称定时器/ 计数器0和定时器/计数器1。它们都是十六位加法计数结构,分别 由TH0 (地址8CH和TL0 (地址8AH 及TH (地址8DH和TLi (地 址8BH两个8位计数器组成。这四个计数器均属专用寄存器之列。MCS-51的每个定时器/计数器都具有定时和计数两种功能。1 .计数功能所谓计数是指对外部事件进行计数。外部事件的发生以输入脉冲 表示,因此计数功能的实质就是对外来脉冲进行计数。2 .定时功能定时功能也是通过计数器的计数来实现的。不过此时的计数脉冲 来自单片机的内部
9、,即每个机器周期产生一个计数脉冲。 也就是每个 机器周期计数器加1。由于一个机器周期等于12个振荡脉冲周期, 因此计数频率为振荡频率的1/12。定时器/计数器提供给用户使用的有:八位计数器 TH和TL,以及 有关的控制位。这些内容只能以软件方法使用。3、MCS-51定时器/计数器的四种工作方式1 .定时工作方式0方式。是13位计数结构的工作方式,其计数器由 TH全部8位和TLo的低5位构成。当TLo的低5位计数溢出时,向TH0进位,而全部 13位计数溢出时,则向计数溢出标志位 TFo进位。在方式0下,当为计数工作方式时,计数值的范围是:1 8192 (213)当为定时工作方式时,定时时间的计算
10、公式为:(213计数初值)X晶振周期X 12 或 (213计数初值)X机器 周期其时间单位与晶振周期或机器周期相同(s)。2 .定时工作方式1方式1是16位计数结构的工作方式,计数器由TH全部8位和TLo 全部8位构成。当为计数工作方式时,计数值的范围是:1 65536 (216)当为定时工作方式时,定时时间计算公式为: (216计数初值)X晶振周期X 12或(216计数初值)X机器周期3 .定时工作方式2工作方式2是自动重新加载工作方式。在这种工作方式下,把16位计数器分为两部分,即以TL作计数器,以TH作预置寄存器,初始化时把计数初值分别装入TL和TH中。当计数溢出后,不是像前两种 工作方
11、式那样通过软件方法,而是由预置寄存器 TH以硬件方法自动 给计数器TL重新加载。变软件加载为硬件加载。初始化时,8位计数初值同时装入TL0和TH中。当TL0计数溢出时, 置位TF0,同时把保存在预置寄存器 TH0中的计数初值自动加载TL。, 然后TLo重新计数。如此重复不止。这不但省去了用户程序中的重装 指令,而且也有利于提高定时精度。但这种工作方式下是8位计数结 构,计数值有限,最大只能到255。这种自动重新加载工作方式非常适用于循环定时或循环计数应 用,例如用于产生固定脉宽的脉冲,此外还可以作串行数据通信的波 特率发送器使用。4、程序模块此部分主要介绍定时模块,和显示模块。定时部分采用经典
12、的定 时器定时。它实现了数字钟的主要部分,和秒表的主要部分,以及产 生报时信号,定时设置。显示模块是实现数字钟的又一重要部分,其 模块的的独立程度直接影响到数字钟的可视化程度。 在此部分的设计 中,设置专用显示数据缓冲,与分,时及其他数据缓冲区数据区别, 在其中存放的是显示段码,而其他缓冲区存放的是时间数据。 在显示 时,首先将时间十进制数据转化为显示段码,然后送往数码管显示。 显示段码采用动态扫描的方式。在要求改变显示数据的类别时,只需 将指向数据缓冲区的指针指向的十进制数据缓冲区即可。数据调整:数据调整有多种方式。一,可以直接进入相关状态进 行有关操作,二,将调整分两步,先进入状态,然后执
13、行操作,这两 步分别由两个键控制。方式一,比较直接,设计思想也比较简单,但 是,这种方式存在操作时间和控制键数目的矛盾。 如果用比较少的键, 那么可能会在进入状态后处于数据调整等待状态,这样会影响到显示 的扫描速度(显示部分可以采用8279芯片来控制,可以解决此问题), 当然在这种方式下,还可以使用多个状态键,每个状态键,完成一个 对应数据的调整。如果采用二的方式,就不会出现这种情况。定时准确性的讨论:程序中定时器,一直处于运行状态,也就是 说定时器是理想运作的,具中断程序每隔秒执行一次,在理想状态下, 定时器定时是没有系统误差的,但由于定时器中断溢出后,定时器从 0开始计数,直到被重新置数,
14、才开始正确定时,这样中断溢出到中 断响应到定时器被重新置数,其间消耗的时间就造成了定时器定时的 误差。如果在前述定时器不关的情况下,在中断程序的一开始就给定 时器置数,此时误差最小,误差大约为:每秒,误差 712个机器周 期。当然这是在定时器定时刚好为秒时的情况,由以上分析,如果数 字钟设计为查询的方式或是在中断的方式下将定时器中断设置为最 高级,我们在定时值设置时,可以适当的扣除9个机器周期的时间值。 但如果在中断的情况下,没有将定时器中断设置为最高级,那就要视 中断程序的大小,在定时值设置时,扣除相应的时间值。软件消抖:消抖可以采用硬件(施密特触发器)的方式,也可以 采用软件的方式。在此只
15、讨论软件方式。软件消抖有定时器定时,和利用延时子程序两种方式。 一, 定时器定时消抖可以不影响显示模块 扫描速度,其实现方法是:设置标志位,在定时器中断中将其置位,然后在程序中查询。 将其中断优先级设置为低于时钟定时中断, 那么它就可以完全不影响时钟定时。二,在采用延时子程序时,如果显示模块的扫描速度本来就不是很快, 此时可能会影响到显示的效果, 一般情况下,每秒的扫描次数不应小于50次,否则,数码的显示会出现闪烁的情况。因此,延时子程序的延时时间应该小于 20毫秒,如果采用定时器定时的方式,延时时间不影响时钟。5、 Keil C51 软件 - 新建工程对于单片机程序来说,每个功能程序,都必须
16、要有一个配套的工程( Project ) , 即使是简单的功能程序也不例外,因此我们首先要新建一个工程,打开我们的 Keil 软件后,点击:Project->NewuVision Project.然后会出现一个新建工程的界面在任意文件夹中保存“shuzizhong ”文件, 软件会自动添加扩展名 .uv2保存之后会弹出一个对话框, 这个对话框让我们选择单片机型号, 我们选择 AT89C51工程有了之后,我们要建立编写代码的文件,点击File->New ,新建一个文件,也就是我们编写程序的平台。然后点File->Save或者直接点击那个Save 的快捷键,可以保存文件,保存时我
17、们把它命名为 ,这个地方必须加上 .c ,因为如果写汇编语言,这个地方的扩展名是 .asm现在我们就可以在我们建立好的文件中输入我们的程序代码了, 在编写之前还有个工作要做。 我们每做一个功能程序, 必须要新建一个工 程,一个工程代表了单片机要实现的一个功能。但是一个工程,有时候我们可以把我们的程序分多个文件写,所以每写一个文件,我们都要添加到我们所建立的工程中去,鼠标右键点 Source Group1,点 Add Files to Group Source Group 1 .在弹出的对话框中,单击选中它,然后点 Add ,或者直接双击都可以将文件加入到这个工程下,然后单击 Close ,关闭
18、添加。这个时候大家会看到在 Source Group 1 下边又多了一个文件。然后就可以编写程序了,下面是编写界面的介绍:6、程序流程图声明变量timel7、程序编译并生成HE双件如上图所示为编译成功的提示,若有错误提示,双击错误提示则会自 动跳转到错误代码行,方便进行修改。第四章调试仿真1、软件介绍Proteus软件是来自英国 Labcenter electronics 公司的EDA工 具软件, Proteus 软件有十多年的历史,在全球广泛使用,除了其具有和其它EDAX具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用, 还
19、可以直接在基于原理图的虚拟原型上编程, 并实现软件源码级的实时调试, 如有显示及输出, 还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等2、加载程序点击要加载的HE双件3、仿真运行点击左下角 按钮,仿真运行开始。 并能直接观察整个电路的运行输出结果。第五章 总结通过这次的设计使我认识到我对单片机编程方面的知识知道的太少了, 对于书本上的很多知识还不能灵活运用, 有很多我们需要掌握的知识在等着我去学习, 我会在以后的学习生活中弥补我所缺少的知识。 本次的设计使我从中学到了一些很重要的东西, 那就是如何从理论到实践的转化。同时在大学的课堂上学习的只是在给我们灌输专业知识,
20、而我们应该把所学的用到我们现实生活中去, 此次的电子时钟设计给我奠定了一个实践的基础, 我会在以后的工作生活中不断的磨练自己, 让自己更好的立足于社会。附件:程序代码#include <>unsigned char led12=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0punsigned char b8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/ 扫描unsigned char k=0;unsigned int temp; / 记录毫秒为秒的变量unsigned char M,S_flag;
21、/M 是模式,更新时间的种模式加上正常模式S_flag 闪烁标志sbit K1=P3A0;sbit K2=P3A1;sbit K3=P3A2;sbit BEEP=P3A3;void delay(unsigned n)/ 毫秒pint x,y;for(x=0;x<n;x+)for(y=0;y<24;y+);void init()M=0;S_flag=0; / 闪烁标志位TMOD=0x10; / 定时器以方式定时TH1=0xfc;TL1=0x18;EA=1;/ 打开总中断ET1=1;/ 允许定时器中断TR1=1; / 开启定时器 ( 开始定时计数 )void display_led()
22、P1=led11;void time1() interrupt 3/ 定时器中断函数TH1=0xfc;/ 定时 msTL1=0x18;temp+;if(temp=1000)/ 配合定时器定时s temp=0;second+;if(second=59) second=0;if(minute<59)minute+;else minute=0;hour+;hour%=24;if(hour1=hour&&minute1=minute&&second<10)/ 闹钟时间到BEEP=!BEEP;if(temp%250=0)/每 msS_flag=!S_flag;
23、/ 闪烁标志位取反if(k=8) k=0;P1=ak;P2=bk+;delay(1);P2=0xff;void display()switch(M)case 0:a0=ledhour/10;a1=ledhour%10;a2=led10;a3=ledminute/10;a4=ledminute%10;a5=led10;a6=ledsecond/10;a7=ledsecond%10;break;if(S_flag=1) a0=ledhour/10;a1=ledhour%10;elsea0=led11;a1=led11;a2=led10;a3=ledminute/10;a4=ledminute%10
24、;a5=led10;a6=ledsecond/10;a7=ledsecond%10;break;case 1:a0=ledhour/10;a1=ledhour%10;a2=led10;if(S_flag=1)a3=ledminute/10;a4=ledminute%10;elsea3=led11;a4=led11;a5=led10;a6=ledsecond/10;a7=ledsecond%10;break;case 2:if(S_flag=1)a0=ledhour1/10;a1=ledhour1%10;elsea0=led11;a1=led11;a2=led10;a3=ledminute1/10;a4=ledminute1%10;a5=led10;a6=led11;a7=led11;break;case 3:a0=ledhour1/10;a1=ledhour1%10;a2=led10;if(S_flag=1)a3=ledminute1/10;a4=ledminute1%10; elsea3=led11;a4=led11;a5=led10;a6=led11;a7=led11;void key_prc()if(K1=0)M=0;if(M!=0)switch(M)case 1:if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026春季中国移动校园招聘备考题库及答案详解1套
- 2026上半年广东广州市越秀区教育局招聘事业编制教师83人备考题库及答案详解【典优】
- 2026华侨城集团春季校园招聘备考题库及答案详解【有一套】
- 2026西藏那曲安多县粮食有限责任公司社会招聘企业管理人员的1人备考题库及答案详解(全优)
- 2026国家统计局兵团第十四师调查队招聘1人备考题库(新疆)及完整答案详解一套
- 2026洞头海霞青年营度假酒店招聘5人备考题库(浙江)及参考答案详解(夺分金卷)
- 2026广东广州南沙人力资源发展有限公司现向社会招聘编外人员备考题库含答案详解(精练)
- 2026广西柳州融安县长安镇卫生院乡村医生招聘2人备考题库及答案详解【夺冠系列】
- 本科组人工智能机器人
- 某制药厂药品研发管理办法
- 隐私保护技术发展现状与趋势分析
- GB/T 25085.5-2026道路车辆汽车电缆第5部分:交流600 V或直流900 V和交流1 000 V或直流1 500 V单芯铜导体电缆的尺寸和要求
- 2026黑龙江省住房和城乡建设厅直属事业单位招聘14人笔试备考试题及答案解析
- 2026年3月GESP编程能力等级认证C++一级真题(含答案)
- 2026年高考语文二三轮备考策略讲座
- 2026年山西经贸职业学院单招职业适应性考试题库带答案详解(巩固)
- 2026年及未来5年市场数据中国剑麻行业发展运行现状及发展趋势预测报告
- 中国皮肤激光治疗指南(2025版)
- 住院病历书写规范培训课件
- 14欣赏建筑之美课件
- 清华大学《大学物理》128学时教学大纲
评论
0/150
提交评论