基于单片机系统的电子钟设计与仿真修改后的_第1页
基于单片机系统的电子钟设计与仿真修改后的_第2页
基于单片机系统的电子钟设计与仿真修改后的_第3页
基于单片机系统的电子钟设计与仿真修改后的_第4页
基于单片机系统的电子钟设计与仿真修改后的_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、景德镇高等专科学校物理与应用电子系07应电毕业设计报告选题题目: 基于单片机系统的电子时钟设计与仿真指导老师: 梅 立 雪所属院系: 物理与应用电子系专 业: 应用电子技术姓 名: 万云涛 陈方弟 胡毅研究方向: 单片机电子时钟设计选题时间: 2009年11月8日摘 要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此越来越广泛地应用各个领域.本文的电子钟系统是以单片机(AT89C51)为核心,数码管显示驱动芯片74LS00等元器件组成。具体介绍应用Proteus的ISIS软件进行单

2、片机系统的电子钟设计与仿真的实现方法。该方法既能准确验证所设计的系统是否满足技术要求,又能提高系统设计的效率和质量,降低开发成本,具有推广价值。关键词:单片机;数码管显示驱动芯片 ;Proteus;电子钟Design and Simulation Of electronic clock Based onSingle-chip SystemAbstractIn recent years, with computers in the infiltration and the development of large-scale integrated circuits. SCM applicatio

3、n is steadily deepening, as it has strong function, small size, low power dissipation, low prices, reliable, easy to use features, it is particularly suited to and control of the system, increasingly widely used in various fields.This article describes an electronic bell system is single-chip microc

4、omputer (AT89C51) as the core, LED display driver chip components, such as 74LS00 component.Describes the application of Proteus's ISIS software of the electronic single-chip system clock to achieve the design and simulation methods in details.The method can not only test the property of the sys

5、tem precisely,but also improve development efficiency and reduce development cost,which values in popularity. Key words: AT89C51; 74LS00; Proteus; electronics clockII目录1.1引 言1.2 Proteus软件简介第二章 系统设计 错误!未定义书签。2.1电子钟系统硬件组成2.1.1 AT89C51单片机简介 2.1.2 74LS00工作原理简介 2.2 电子时钟系统设计流程第三章 硬件电路设计 错误!未定义书签。3.1 电路原理图

6、设计 3.2 Proteus 电路图设计第四章 软件设计 错误!未定义书签。4.1 程序流程图设计 程序流程图见下图4.1 4.2 源程序设计4.3 KeilC51进行程序调试第五章 系统调试与仿真 错误!未定义书签。5.1 Proteus中Hex 文件选择 5.2 Proteus进行电子钟系统仿真 5.3 基于单片机系统的电子钟实物结束语 错误!未定义书签。 参考文献 错误!未定义书签。 学习心得 错误!未定义书签。1错误!未定义书签。 错误!未定义书签。错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。错误!未定义书签。 错误!未定义书签。11错误!未定义书签。

7、 错误!未定义书签。 错误!未定义书签。错误!未定义书签。 错误!未定义书签。 错误!未定义书签。1.1引 言 随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从4位、8位、16位到32位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。然而传统的单片机系统开发除了需要购置诸如仿真器、编程器、示波器等价格不菲的电子设备外,开发过程也较繁琐。来自英国Labcenter Electron

8、ics公司的Proteus软件很好地诠释了利用现代EDA工具方便快捷开发单片机系统的优势。它包括PROTEUS VSM(Virtual System Modelling)、PROTEUS PCB DESIGN两大组成部分,在PC机上就能实现原理图电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证以及形成PCB文件的完整嵌入式系统设计与研发过程。单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面, 其调试过程一般分为软件调试、硬件测试、系统调试3个过程。如果采用单片机系统的虚拟仿真软件Proteus,则不用制作具体的电路板也能够完成以上工作。1

9、.2 Proteus软件简介 PROTEUS软件由Labcenter公司开发,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台,可以实现数字电路、模拟电路及微控制器系统与外设的混合电路系统的电路仿真、软件仿真、系统协同仿真和PCB设计等功能,是目前唯一能够对各种处理器进行实时仿真、调试与测试的EDA工具。微控制器系统相关的仿真需建立编译和调试环境,可选择Keil C51uVision2 软件。该软件支持众多不同公司的芯片,集编辑、编译和程序仿真等于一体,同时还支持PLM、汇编和C语言的程序设计。它的界面友好易学,在调试程序、软件仿真方面有很强大的功能。 其革命性的功能是:将电路仿真和微处理

10、器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如电机、LED、LCD、开关等,实时看到运行后的输入、输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等, Proteus为我们建立了完备的电子设计开发环境。2第二章 系统设计2.1电子钟系统硬件组成电子钟系统硬件主要由AT89C51单片机、数码管显示驱动芯片74ls00等元器件组成。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。图2.1 电子钟系统硬件电路组成框图32.1.1 AT89C51单片机简介AT89C51是一种带4K字节闪烁可

11、编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51 的引脚图见图2.2。图2.2 AT89C51单片机1.主要特性AT89C51单片机具有与

12、MCS-51 兼容 4K字节可编程闪烁存储器。 其寿命:1000写/擦循环; 数据保留时间:10年 ;全静态工作:0Hz-24Hz; 三级程序存储器锁定。 128*8位内部RAM;32可编程I/O线; 两个16位定时器/计数器; 5个中断源; 可编程串行通道; 低功耗的闲置和掉电模式;片内振荡器和时钟电路。2.管脚说明4VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验

13、时,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位地址外部数据存储器进行存取时,P

14、2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:地址锁存允许输出/编程脉冲输入端。

15、当访问外部存储器时,ALE昨锁存扩展地址低位字节的输出控制信号。在FLASH编程期间,此引脚用于输 5入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR的8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储

16、器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器地址(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信

17、号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2.1.2 74LS00工作原理简介54/7400四2输入与非门简要说明00为四组2输入端与非门(正逻辑),共有54/7400、54/74H00、54/74S00、54/LS00 四种线路结构形式,其主要电特性的典型值如下:图表 2.3 74LS00电特性引出端符号1A-4A, 1B-4B 输入端1Y-4Y 输出端6逻辑图见下图2.3。图2.3双列直插封装动态特性(TA=25)见下表2.4表2.4 动态特性72.2 电子时钟系统设计流程电子时钟系统设计流程见下图2.2。图2.2 基于Proteus

18、的单片机系统设计流程8第三章 硬件电路设计3.1 电路原理图设计Protel DXP设计的电子钟电路原理图见下图3.1。图3.1 Protel DXP设计的电子钟电路原理图主要元器件功能介绍:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。74ls00是共阴极数码管显示驱动芯片。可直接与单片机连接,用户能方便地实现多位LED数码管显示。内含有硬件动态扫描显示控制,每块芯片可驱动4个LED数码管。93.2 Proteus 电路图设计运行Proteus的ISIS 后出现程序主窗口界面,鼠标左键单击窗口左侧的元器件工具栏的component按

19、钮, 接着再点击窗口左侧的元器件选择区的Pick Divices.按钮,弹出如图1所示的Pick Devices窗口,再在Categ栏里点击MicroprocessorICs项后,在Results栏里会出现各种类型的CPU器件,找到 AT89C51后双击,AT89C51就被添加到当前窗口左侧的元器件列表区了。用同样的方法依次把数码管、晶振以及多个电阻、电容也添加到器件列表区里。 然后再依次点击列表区里的器件,单击左键把他们放到绘图区,右键选中元件,并编辑其属性,合理布局后,进行连线。连线时当鼠标的指针靠近一个对象的引脚时,跟着鼠标的指针r ICs就会出现一个“×”提示符号,点击鼠标左

20、键即可画线了,需要拐弯时点击一下即可,在终点再点击确认一下就画出了一段导线,所有导线画完后,点击工具栏的 Inter-sheeTerminal按钮,添加上电源和接地符号,原理图的绘制就完成了。Proteus中设计的电子时钟系统原理图见下图3.2.2。图3.2.2 Proteus中设计的电子时钟系统原理图10第四章 软件设计4.1程序流程图设计系统程序流程图见下图4.1。图4.1 系统程序流程图114.2 源程序设计电子时钟程序见一下:/24小时制时钟,固定7:30、12:30、21:30闹铃,具备日期及闹铃调节,晶震12MHZ#include <AT89X51.H>#define

21、A P0 /数码数据控制=0有效。P0.0至P0.6控制=0有效。#define B P2 / LED1 P26 LED2 P25 LED3 P24 LED4 P23 LED5 P22 LED6 P21#define C P1/定义喇叭=0有效:喇叭为长鸣#define E P2_4/定义按键=0有效#define D P2_7#define K1 P3_5/时钟设置按键#define K2 P3_0/调时加#define K3 P3_1/调时减/定义全局变量/char led=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/0123456

22、789 p0数码数据char led=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;/0123456789 p0数码数据char star=0x81,0x82,0x84,0x88,0x90,0xa0;/定义位扫描数据char m,hour,minute,secend,clock_hour,clock_minute;void init()/启动并装载定时器0TMOD=0x01;/定时器0,16位工作方式TH0=0x3c;TL0=0xb0;EA=1; /开总中断ET0=1; /开定时器0中断TR0=1; /启动定时器12void timer0(

23、) interrupt 1 /使用定时器0中断 static unsigned char t;TH0=0x3c;TL0=0xb0;t+;if(t=30)t=0;secend=secend+1;/中断30次为1S delaya()/延时char a;for(a=1000;a>0;a-);ledoutput()/时钟显示char k,j6;for(k=0;k<6;k+)j0=hour/10%10;/第一位 j1=hour%10;j2=minute/10%10; j3=minute%10;j4=secend/10%10;j5=secend%10;/最后一位 switch(jk)/字符显示

24、case 0: A=led0;break;case 1: A=led1;break;case 2: A=led2;break;case 3: A=led3;break;13case 4: A=led4;break;case 5: A=led5;break;case 6: A=led6;break;case 7: A=led7;break;case 8: A=led8;break;case 9: A=led9;break;B=stark;/LED灯位控制if(secend=60)/秒进位判断minute=minute+1;secend=0;if(minute=60)/分进位判断hour=hour

25、+1;minute=0;if(hour=24)/小时判断hour=0;delaya();delay()/延时int a;for(a=100;a>0;a-)ledoutput();/利用时钟显示时间k1()/判断设置键,当确认K1按下一次,功能指示m值相应变化 char a,b=1;if(K1=0)/C=0;for(a=15;a>0;a-)ledoutput();14if(K1=0)m=m+1;if(m=3)m=0;while(b)if(K1=1)b=0;ledoutput();sethour()/设置小时,进入设置状态后小时显示闪烁 while(1)star0=0X00;star1

26、=0X00;delay();if(K2=0)delaya();if(K2=0)hour=hour+1;C=1; if(K3=0)delaya();if(K3=0)hour=hour-1;C=0; if(K1=0)delaya();if(K1=0)break;star0=0x81;star1=0x82;delay();if(K2=0)delaya();if(K2=0)hour=hour+1;C=1; if(K3=0)delaya();if(K3=0)hour=hour-1;C=0; if(K1=0)delaya();if(K1=0)break;star0=0x81;star1=0x82;15se

27、tminute()/设置分,进入设置状态后分钟显示闪烁while(1)star2=0X00;star3=0X00;delay();if(K2=0)delaya();if(K2=0)minute=minute+1;C=1; if(K3=0)delaya();if(K3=0)minute=minute-1;C=0; if(K1=0)delaya();if(K1=0)break;star2=0x84;star3=0x88;delay();if(K2=0)delaya();if(K2=0)minute=minute+1;C=1; if(K3=0)delaya();if(K3=0)minute=minu

28、te-1;C=0; if(K1=0)delaya();if(K1=0)break;star2=0x84;star3=0x88;sound()/闹铃声音char a;for(a=20;a>0;a-)D=0;delay();D=1;delay();D=0;delay();delay();D=1;delay();delay();16D=1;clock()/闹铃时间判断,可增加定时项目 if(hour=7)if(minute=30)if(secend=0)sound();if(hour=12)if(minute=30)if(secend=0)sound();if(hour=21)if(minut

29、e=30)if(secend=0)sound();main()m=0;hour=0;minute=0;secend=0;init();/以上为初始化while(1)k1();if(m=1)sethour();if(m=2)setminute();ledoutput();clock();174.3 KeilC51进行程序调试KeilC51程序调试界面见下图4.3.1。图4.3.1 程序调试界面图18第五章 系统调试与仿真5.1 Proteus中Hex 文件选择系统仿真分析电路原理图在ISIS里设计完成,并将系统软件编译成.Hex文件,再进行电子时钟的系统虚拟仿真。(1)在ISIS的原理图中,右键单击AT89C51将其选中,然后单击左键打开AT89C51的Edit Component 对话框,如下图所示。图5.1 Edit Component 对话框(2)选择相应的.Hex文件,再在Pr

温馨提示

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

评论

0/150

提交评论