电子钟课程设计说明书(有完整源码)

合集下载

数字电子钟--设计加详细说明(全)

数字电子钟--设计加详细说明(全)

中国………..电子技术课程设计总结报告题目:数字电子钟学生姓名:系别:专业年级:指导教师:年月日一、设计任务与要求1、用单片机设计一个数字电子钟,采用LED数码管来显示时间。

2、显示格式为:XX:XX:XX,即:时:分:秒。

3、时间采用24小时制显示,4、设置一个按键用于时间显示方式的切换,能进行时间的调整,可暂停时间的变动。

..二、方案设计与论证图1 系统整体框图1、单片机芯片选择方案方案一:AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器。

主要性能有:与MCS-51单片机产品兼容、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符、易编程。

方案二:AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes 的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM)。

主要性能有:兼容MCS51指令系统、32个双向I/O口、256x8bit内部RAM、3个16位可编程定时/计数器中断、时钟频率0-24MHz、2个串行中断、可编程UART串行通道、2个外部中断源、6个中断源、2个读写中断口线、3级加密位、低功耗空闲和掉电模式、软件设置睡眠和唤醒功能。

从单片机芯片主要性能角度出发,本数字电子钟单片机芯片选择设计采用方案一。

2、数码管显示选择方案方案一:静态显示。

静态显示,即当显示器显示某一字符时,相应的发光二极管恒定导通或截止。

该方式每一位都需要一个8 位输出口控制。

静态显示时较小电流能获得较高的亮度,且字符不闪烁。

但因当所需显示的位数较多时,静态显示所需的I/O口数较大,造成资源的浪费。

课程设计之电子钟(完整版)

课程设计之电子钟(完整版)

数字电子技术课程设计一、设计目的数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。

数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。

因此,我们此次设计与制作数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法.二、方案设计与论证数字钟以成为人们常生活中数字电子钟一般由振荡器,分频器,显示器,定时器等部分组成。

由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确,性能稳定,携带方便等特点,它还用于计时,自动报时及自动控制等各个领域。

尽管目前市场上以有现成数字钟集成电路芯片,价格便宜这些都是数字电路中最基本的,应用最广的电路。

数字电子钟的基本逻辑功能框图如下:它是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。

他的计时装置的周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能。

因此,一个基本数字钟主要由六部分组成。

(1)设计指标1)由晶振电路产生1HZ标准秒信号;2)分、秒为00~59六十进制计数器;3)时为00~23二十四进制计数器;4)具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;5)整点具有报时功能,当时间到达整点前鸣叫五次低音(500HZ),整点时再鸣叫一次高音(1000HZ)。

(2)设计要求1)画出电路原理图(或仿真电路图);2)元器件及参数选择;3)电路仿真与调试。

4)制作要求自行装配和调试,并能发现问题和解决问题。

5)编写设计报告写出设计与制作的全过程,附上有关资料和图纸,有心得体会。

四、实验器材试验箱1台导线若干74LS00 5片74LS04 1片74LS08 1片74LS20 2片74LS32 1片74LS161 6片万用表镊子各一个。

电子钟课程设计说明书(有完整源码)

电子钟课程设计说明书(有完整源码)

安徽工程大学本科课程设计说明书专业:计算机科学与技术题目:电子时钟课程设计学生姓名: (hch)指导教师:老师年月日前言本课程设计为电子时钟设计,在设计过程中,关键的难题就是接口的设计和AT89C51芯片内部的时钟电路以及它的中断系统。

在当今时代,人们不时地就关注周围发生的一切。

而一个好的电子时钟,被安置在各种器件上。

所以,电子时钟应用面极广。

《单片微型计算机及接口技术》是一门应用性较强的计算机专业课程,是设计与开发各种计算机应用系统的基础。

从硬件的角度看,微型计算机、单片机、嵌入式系统的开发和应用,很大程度上都是接口电路的开发与应用。

因此,本课程设计的成功的关键也在接口设计上。

本设计的大致结构为:第一章,主要介绍设计的总思想和原理;第二章,对系统功能模块的设计;第三章,对硬件系统的设计;第四章,画出了时钟的操作流程图;第五章,部分功能模块的详细代码设计;第六章,演示最后的设计结果。

目录前言 (2)目录 (3)课程设计任务书 (4)第一章概述 (6)1.1基本设计思想 (6)1.2设计原理 (6)第二章系统功能模块设计 (7)2.1 系统的主要功能模块 (7)2.2 系统的组成框图 (7)2.3接口设计 (7)第三章硬件系统的设计 (10)3.1 器件简介 (10)3.2 软件简介 (12)第四章时钟的操作流程 (14)第五章代码设计 (15)第六章程序调试及结果 (19)课程设计小结 (22)参考文献 (23)课程设计图纸 (24)附录:(完整代码) (24)课程设计任务书安徽工程大学本科课程设计任务书2009 届计算机与信息学院计算机科学技术与工程092 专业Ⅰ课程设计题目:电子钟设计Ⅱ原始资料本程序设计中有几个要点:A、设计一个1s时钟,作为时间的基准。

可通过定时器来实现,由于定时限制,我们可以设定定时时钟为50ms中断一次,然后用一个计数器计数20次,即50ms*20=1000ms=1s。

数字电子钟设计说明书样本

数字电子钟设计说明书样本

1前言《当代电子技术》是一门实用性较强课程。

通过对这门课程学习我掌握了数字逻辑门电路、组合逻辑器件、组合逻辑电路分析与设计、时序逻辑器件、时序逻辑电路分析与设计等有关知识。

Proteus是一种实用数字电路仿真软件。

虽然我并没有系统去学习过这种软件。

但通过每次实验课摸索性使用, 我掌握了Proteus基本操作。

上述知识以及先修课程所学知识为本次《当代电子技术》课程设计奠定了基本。

就在课程设计前几天学院教师给咱们买好了数字电路惯用元器件, 这为设计物理实现提供了条件。

这次我课程设计题目为: 数字电子钟设计。

我所设计数字电子钟功能有: 能显示星期、时、分、秒;能校时;能整点报时总体来讲, 这次设计实现涉及两个过程:设计及Proteus仿真;实物焊接。

设计及Proteus仿真可以说是整个设计最最核心过程, 能否完毕好这个过程直接关系到设计成败。

在设计与Proteus仿真这个过程设是对所学理论知识运用而Proteus仿真是对设计对的与否检查以及完毕对设计优化。

实物焊接是设计物理实现。

需要阐明是因事先不懂得实验室所具备芯片型号在完毕设计与仿真后才懂得自己所用有些芯片实验室没有(实验室有74ls48、74ls90、74LS161和555定期器而我在设计时用是74ls248、74ls390、74LS163和晶振)因而日后我又用实验室具备芯片重新进行了设计并仿真这样使得我做了两份设计虽然两种设计最后所实现功能时相似但因使用芯片不同导致其内部连接也不同。

这里因篇幅限制在正文某些我将仅对后一种设计进行阐述。

在本次课程设计中我顺利完毕了两种办法设计与仿真, 但在实物焊接过程却浮现了一点问题。

详细内容将在正文某些阐述。

数字钟从原理上讲是一种典型数字电路, 其中涉及了组合逻辑电路和时序电路。

本次设计与制作数字电子钟目是让学生在理解数字钟原理前提下, 运用刚刚学过数电知识设计并制作数字钟, 并且通过数字钟制作进一步理解各种在制作中用到中小规模集成电路作用及其用法。

电子钟单片机课程设计报告(含源码)

电子钟单片机课程设计报告(含源码)

一、总设计思路电子时钟是我们日常生活中最常见的一种钟表,由于它结构简单、功耗低、时间精度比较准、等优点,使得广泛应用,在未来肯定有很大的市场。

这次课程设计我的目的就是尝试着做一个电子时钟。

1、系统功能显示时间、声音提示、调整时间、设置闹钟的功能。

2、功能硬件实现方案时间显示:时间的显示我选用的是六位七段数码管,由于数码管控制简单,而且显示效果好,所以选用它。

由于静态显示方式比较占资源,而且电路比较复杂,所以我们选择了动态显示方式,电路简单,效果挺好。

时间调整和闹钟设置:是通过外部两个按键触发单片机中断进而控制时间的调整。

其中一个按键是模式选择按键通过触发外部中断0来选择功能,功能主要是选择要调时、调分、调秒、闹钟调时、闹钟调分、闹钟调秒六种模式。

第二个按键通过触发外部中断1来在相应的模式下对时间的大小做调整。

声音提示:通过利用蜂鸣器来作为发生装置,有整点提示功能和闹铃功能。

时间发生:利用单片机自带定时器0做定时,通过软件控制来产生时、分、秒。

3、功能软件实现方案由于单片机C语言已经全面普及,它的程序容易理解、简单易写、可移植性好,所以我们选择用单片机C语言来写。

4、开发环境操作系统:window 7旗舰版64位程序编辑编译软件:KEIL μVision V4.60.6.10仿真软件;Proteus V ersion 7.85.、总设计原理框图STC89C52RC6位七段数码管显示时、分、秒蜂鸣器发声装置时钟复位电路按键调时模块一、硬件设计定时和程序执行及控制模块:我们选择的是宏晶科技生产的STC89C52RC芯片,它在很多硬件资源上比8051提升了不少,所以在后期我们可以做更多扩展和维护。

时间显示模块::采用六个七段带小数点的共阴极数码管。

声音提示模块:采用简单蜂鸣器做声音提示。

调时模块:通过两个简单按键来触发中断调时。

时钟复位模块:采用11.0592MHz的晶振,提供单片机工作频率。

二、设计原理图三、芯片解说STC89C52:是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。

电子时钟(LCD显示)课程设计说明书

电子时钟(LCD显示)课程设计说明书

目录1. 设计要求 (1)2. 时钟总体设计思路 (1)3. 系统硬件设计 (1)3.1单片机控制系统 (3)3.2 键盘控制系统设计 (3)3.3 显示电路 (4)3.4 硬件原理及说明 (4)3.5 主要性能参数 (5)4. 软件设计 (5)4.1 软件功能 (5)4.2软件设计 (6)4.3 汇编源程序 (5)5. Proteus仿真 (11)6. 课程设计总结 (12)参考文献 (13)1. 设计要求以AT89C51单片机为核心的时钟,在LED 显示器上显示当前的时间: 使用字符型LCD 显示器显示当前时间。

显示格式为“时时:分分:秒秒”。

用4个功能键操作来设置当前时间。

功能键K1~K4功能如下。

K1—设置小时。

K2—设置分钟。

K3—设置秒数。

程序执行后工作指示灯LED 闪动,表示程序开始执行,LED 显示“00:00:00”,然后开始计时。

单片机是一种集成电路芯片,采集超大规模集成电路技术把具有数据处理能力(如算数运算、逻辑运算、数据传送、中断处理)的微型处理器,随机存取数据存储器(RAM )、只读程序存储器(ROM )、输入/输出电路(I/O ),可能还包括定时/计数器、串行通信口(SCI )、显示驱动电路(LCD 或LED 驱动电路)、脉宽调制电路(PWM )、模拟多路转化器及A/D 转化器等电路集成到一片芯片上,构成一个最小而又完善的计算机系统。

这些电路能在软件的控制下准确、迅速、高效的完成程序设计者事先规定的任务。

2. 时钟的总体设计思路按照系统的设计功能要求,本时钟系统的设计必须采用单片机软件系统实现,用单片机的自动控制能力配合按键控制,来控制时钟的调整及显示。

图一 系统总原理图3. 系统硬件设计3.1 单片机控制系统本次设计时钟电路,采用了ATC89C51单片机芯片控制电路,这种单片机芯片比较简单,并且省去了很多复杂的线路,更容易表达和理解,通过按钮来调节电微型控制器 时钟电路数据显示 按键调时子钟的时、分、秒。

基于单片机的多功能电子钟课程设计说明书

基于单片机的多功能电子钟课程设计说明书

课程设计说明书题目:基于单片机的多功能电子钟课程:单片机原理及应用B课程设计目录摘要 (II)1 设计目的 (1)2 设计要求 (2)3 设计容 (3)3.1电子时钟的工作原理 (3)3.2 系统硬件电路设计及元件 (4)3.2.1 AT89C51芯片 (4)3.2.2 DS1302芯片 (8)3.2.3 LCD1602液晶显示 (12)3.3系统软件电路设计 (15)3.3.1 系统流程图及源代码设计 (15)总结与致 (18)参考文献 (19)附录一 (20)摘要单片机, 是集 CPU ,RAM ,ROM , 定时器,计数器和多种接口于一体的微控制器。

自20 世纪 70 年代问世以来,以其极高的性能价格比,受到人们的重视和关注。

它体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易,广泛应用于智能生产和工业自动化上。

本系统为基于DS1302的多功能电子钟,以AT89C51单片机作为主控芯,采用实时时钟芯片DS1302,使用1602液晶作为显示输出。

该系统走时精确,具有闹钟设置,时间模式切换,秒表以及可同时显示时间、日期等多种功能。

本文将详细介绍AT89C51单片机和DS1302 时钟芯片的基本原理,从软件和硬件电路的实现两大方面进行分析。

关键词:AT89C51;单片机;液晶屏;时钟芯片;蜂鸣器基于51单片机设计一个能够支持年、月、日、星期、时、分、秒的电子时钟。

并且支持闹钟功能,及整点报时功能。

在设计过程中,学习利用DXP软件进行硬件电路设计或者利用仿真软件进行仿真,进行单片机的软件编程。

学习芯片的选择及方案选择,熟悉单片机的I/O口原理;掌握LCD显示的原理;掌握定时计数器的使用;要求设计出程序流程图和程序。

1.设计能支持年、月、日、星期、时、分、秒的时钟,时钟有时间调整功能及闹钟功能;2.时钟具有装卸电池时掉电保护功能,保护时间大于5分钟;3.时钟功耗小于0.5MA/5V。

数电课程设计数字电子钟说明书

数电课程设计数字电子钟说明书

数字电子技术电路课程设计题目:数字钟课程设计学院:XXXXX专业:XXXXX班级:XXXX姓名:XXXX学号:XXXXX指导老师:XXXXX一、设计目的数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。

此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。

二、设计要求1.显示时,分,秒,用24小时制2.能够进行校时,可以对数字钟进行调时间3.能够正点报时(用555产生断续音频信号);三、设计方案比较方案一、采用中小规模集成电路实现采用集成逻辑电路设计具有能实现,时、分、秒计时功能和定点报时功能,计时模块采用时钟信号触发,不需要程序控制。

方案二:EDA技术实现采用EDA作为主控制器外围电路进行电压,时钟控制、键盘和LED控制。

但此方案逻辑电路复杂,外围设备多,灵活性较低,不利于扩展方案三、单片机编程实现此方案采用单片机编程来设计和控制。

综上,根据自身的知识和方案比较,采用方案一,因为方案一简便灵活,扩展性好,同时符合此次数子电子知识设计的要求。

四、设计过程和说明1.数字电子钟计时和显示功能的实现(1)采用两片十进制计数器74LS160N扩展连接,设计60进制的计数器,显示0到59,在59时采用置数的方法,将两片74LS160N同时置数至0,以循环显示0到59。

(图)(2)24进制亦采用两片十进制计数器74LS160N扩展连接,设计24进制的计数器,显示0到23,在23时采用置数的方法,将两片74LS160N同时置数至0,以循环显示0到23(图)(3)利用秒钟的置数信号(为低电平),取反后作为分钟各位的使能端(EP和ET)的控制信号,以实现分秒之间的进位功能。

同理可以实现分时之间的进位功能(4)显示功能采用Multisim里面的DCD_HEX显示管进行时分秒的显示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安徽工程大学本科课程设计说明书专业:计算机科学与技术题目:电子时钟课程设计学生姓名: (hch)指导教师:老师年月日前言本课程设计为电子时钟设计,在设计过程中,关键的难题就是接口的设计和AT89C51芯片内部的时钟电路以及它的中断系统。

在当今时代,人们不时地就关注周围发生的一切。

而一个好的电子时钟,被安置在各种器件上。

所以,电子时钟应用面极广。

《单片微型计算机及接口技术》是一门应用性较强的计算机专业课程,是设计与开发各种计算机应用系统的基础。

从硬件的角度看,微型计算机、单片机、嵌入式系统的开发和应用,很大程度上都是接口电路的开发与应用。

因此,本课程设计的成功的关键也在接口设计上。

本设计的大致结构为:第一章,主要介绍设计的总思想和原理;第二章,对系统功能模块的设计;第三章,对硬件系统的设计;第四章,画出了时钟的操作流程图;第五章,部分功能模块的详细代码设计;第六章,演示最后的设计结果。

目录前言 (2)目录 (3)课程设计任务书 (4)第一章概述 (6)1.1基本设计思想 (6)1.2设计原理 (6)第二章系统功能模块设计 (7)2.1 系统的主要功能模块 (7)2.2 系统的组成框图 (7)2.3接口设计 (7)第三章硬件系统的设计 (10)3.1 器件简介 (10)3.2 软件简介 (12)第四章时钟的操作流程 (14)第五章代码设计 (15)第六章程序调试及结果 (19)课程设计小结 (22)参考文献 (23)课程设计图纸 (24)附录:(完整代码) (24)课程设计任务书安徽工程大学本科课程设计任务书2009 届计算机与信息学院计算机科学技术与工程092 专业Ⅰ课程设计题目:电子钟设计Ⅱ原始资料本程序设计中有几个要点:A、设计一个1s时钟,作为时间的基准。

可通过定时器来实现,由于定时限制,我们可以设定定时时钟为50ms中断一次,然后用一个计数器计数20次,即50ms*20=1000ms=1s。

B、分与时都可采用软件计数器来实现。

60秒为1分,60分为1小时。

C、由于实际应用中要求显示为十进制数,而在程序中处理的数据都为十六进制,因此在程序中要对显示缓冲区的数据进行十进制调整。

Ⅲ课程设计任务内容1.课程设计的目的意义:通过课程设计培养同学们的系统设计能力,使同学们达到以下能力训练:⑴、调查研究、分析问题的能力;⑵、使用设计手册、技术规范的能力;⑶、查阅中外文献的能力;⑷、制定设计方案的能力;⑸、计算机应用的能力;⑹、设计计算和绘图的能力;⑺、技术经济指标的分析能力;⑻、语言文字表达的能力。

2.本课题研究的主要内容:设计一个电子钟,利用四个数码管,在其上显示分、秒;用4个小键盘分别进行分+1、分-1、秒+1、秒-1改变时间值。

基本要求:⑴、设计实验电路(要求利用实验仪的硬件资源)⑵、分析实验原理⑶、列出实验接线表⑷、采用汇编语言编写实验程序⑸、通过实验验证功能的实现⑹、编写课程设计说明书指导教师(签字)完成日期年月日接受任务书学生(签字)第一章概述1.1基本设计思想用定时器T0和定时器T1,都采用工作方式1,对12MHZ的系统时钟进行定时计数,初值设为 TH0 = (65536-1000)/256; TL0 =(65536-1000)%256; TH1 = 0xdc; TL1 = 0; 形成定时时间为50ms。

用片内RAM的7BH单元对50ms计数,计20次产生秒计数器7BH单元加1,秒计数器加到60则分计数器79H单元加1,分计数器加到60则时计数器7AH单元加1,时计数器加到24则时计数器清0。

然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。

显示格式为“小时十位、小时个位、分十位、分个位、秒十位、秒个位”。

在处理过程中加上了按键判断程序,能对按键处理。

比如相应的“时+”“时-”“分+”“分-”“秒+”“秒-”六个按钮,对应控制显示的数据。

增加功能:加一个“设置时间”开关K1(1)当开关K1按下时,调用控制位TR1,使TR1=0,中断计数器。

使得时钟显示当前的时间,此时可以通过六个加减按钮改变时间值;(2)当开关K1断开,TR1=1,把当前的显示时间送回寄存器,并且恢复中断,计数时钟继续自动跳转。

1.2设计原理一般电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。

它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和报时功能。

因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。

主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、电路组成。

秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。

将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。

“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。

“时计数器”采用24进制计时器,可实现对一天24小时的累计。

译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。

校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。

而该电子时钟由AT89C51,74LS245,BUTTON,六段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。

电路中六个按钮控制对应的数码管显示。

按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;每按一次对应数字加1。

第二章 系统功能模块设计2.1 系统的主要功能模块由系统的基本功能,可以设定系统主要由:按钮模块,T0中断模块,T1中断模块构成。

● 按钮模块:用户的进行时钟的加减变化来设置时间● T0中断模块:动态扫描数码管显示● T1中断模块:控制时钟运行2.2 系统的组成框图2.3接口设计(1)开关及按钮控制电路,如图2-1,六个按钮分别接P1.0~ P1.6口,设置开关接P2.7口。

图2-1AT89C51 单片机 开关及按钮控制电路 74LS245 芯片 六位七段LED晶振(2)晶振电路与AT89C51的接口如图2-2图2-2(3)74LS245芯片的A0~A7接P2.0~P2.7口,如图;B0~B7接数码管的A~G、DP,如图2-3和图2-5图2-3(4)数码管的段选端口123456分别接P3.0~P3.6,如图2-4和图2-5图2-4 图2-5第三章硬件系统的设计3.1 器件简介本课程设计所需元件清单:AT89C51 单片机一个74LS245 芯片一个7SEG-MPX6-CC(六位七段数码管)一个CRYSTAL(晶振)一个CAP(无极性电容)两个CAP-ELEC(电解电容)BUTTON(按钮)六个SWITH(开关)一个RES(电阻)一个(1)AT89C51简介芯片功能介绍及设计:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。

在闲置模式下,CPU停止工作。

但RAM,定时器,计数器,串口和中断系统仍在工作。

在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

AT89C51芯片图如下:(2)74LS245芯片简介74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。

74LS245还具有双向三态功能,既可以输出,也可以输入数据。

当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。

当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)DIR=“1”,信号由 A 向 B 传输;(发送)当CE为高电平时,A、B均为高阻态。

由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。

P0口与74LS245输入端相连,E端接地,保证数据线畅通。

8051的/RD和/PSEN相与后接DIR,使得RD且PSEN有效时,74LS245输入(P0.1←D1),其它时间处于输出(P0.1→D1)。

74LS245芯片及其功能说明3.2 软件简介本课程设计采用Keil uVision编程和以及调试源代码、Proteus软件进行硬件仿真4.2.1 在Keil uVision中编程和调试代码4.2.2 注意事项在Proteus ISIS中进行放置元件、设置电路参数、连接各元件,经几次修改布线错误, 画出电子时钟总电路,并进行检查。

然后加载用keil编译生成的XX.HEX(XX为文件名)进行功能测试,仿真。

在仿真时注意用适合仿真功能的元器件。

要注意本设计用的是7段共阴极LED数码管的驱动芯片。

在放置六位数码管LED时要选择7SEG-MPX6-CC(共阳极)而不是7SEG-MPX6-CA(共阴极)。

Keil软件是一款程序编辑软件,是目前最流行开发MCS-51系列单片机的软件,通过一个集成开发环境(uVision)将这些部份组合在一起。

运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统,本实验中需要将Proteus和keil联调,在keil 上输入程序,编译并运行正确,然后将其下载到Proteus中,配合其电路图进行仿真。

4.2.2仿真步骤(1)在Proteus上连接实验所需的电路,首先把所需要的元器件都找到,如下图4-1,点击P;会弹出图4-2的搜索器件框,在关键字搜索栏里对照元器件名,全部添加到如图4-1的器件列表中。

图4-1图4-2(2)根据第二章的接口设计,将电路连接好。

最后完成的效果图如下:第四章时钟的操作流程根据时钟的特性,以及设计的原理,可以确定用户操作的流程如下图:时钟流程图第五章代码设计代码的设计主要为以下几个部分:(1)延时程序:***************************************************************** //-------延时----------void Delay(uchar x){uchar i;w hile(x--) for(i=0; i<120;i++);}*****************************************************************(2)T0、T1中断控制部分***************************************************************** //----------T0中断-动态扫描数码管显示-----------void T0_int() interrupt 1 //interrupt 1 这里的1表示中断源编号{TH0 = (65536-1000)/256;T L0 = (65536-1000)%256;P3 =Scan_bit; //选通相应数码管i f(K1 == 0) {TR1 =0; //当“设置时间”K1按下时,关闭中断}else {TR1 =1; //恢复中断}P0 =~DSY_buffer[DSY_idx]; //段码送P0(进行共阴共阳转换)S can_bit = _crol_(Scan_bit,1); //准备下次将选通的数码管D SY_idx = (DSY_idx + 1)%8; //索引在0~7内循环}//T1中断控制时钟运行void T1_int() interrupt 3{T H1 = (65536-50000)/256; //定时50毫秒T L1 = (65536-50000)%256;i f( ++s100 > 20) //50ms*20=1s 延时{s100 = 0; increase_second();}}*****************************************************************(3)时、分、秒函数处理:***************************************************************** //-------小时处理函数--------void increase_hour(){if(++h > 23) h=0;D SY_buffer[0] = DSY_code[h / 10]; //对数字进行整除,取小时的十位上的数D SY_buffer[1] = DSY_code[h % 10]; //对数字进行求余,取小时的十位上的数}//-------分钟处理函数--------void increase_minute(){if(++m >59){m=0; increase_hour();}DSY_buffer[2] = DSY_code[m / 10];DSY_buffer[3] = DSY_code[m % 10];}//-------秒处理函数--------void increase_second(){if(++s >59){s=0; i ncrease_minute();}DSY_buffer[4] = DSY_code[s / 10];DSY_buffer[5] = DSY_code[s % 10];}*****************************************************************(4)逻辑总控制部分,包括按钮以及开关的触发使得数码管显示相应的改变*****************************************************************//-----------主程序-------------void main(){P0 = P3 =0xFF; //P1,P3口全置1T MOD = 0x11; //设置T0,T1工作在模式1T H0 = (65536-1000)/256;T L0 = (65536-1000)%256;T H1 = 0xdc; // 设定初始值T L1 = 0;T CON = 0x01;E A = 1; //cpu开放中断E T0 = 1; //允许T0中断E T1 = 1; //允许T1中断h =0; m=s=s100=0; //设启动后初值显示为120000//-----将(时-分-秒)段码放入显示缓冲-------D SY_buffer[0] = DSY_code[h / 10];D SY_buffer[1] = DSY_code[h % 10];D SY_buffer[2] = DSY_code[m / 10];D SY_buffer[3] = DSY_code[m % 10];D SY_buffer[4] = DSY_code[s/ 10];D SY_buffer[5] = DSY_code[s % 10];S can_bit = 0xfe; //扫描位设初始值D SY_idx = 0;T R0 = TR1 = 1; //启动两个定时器k ey_state = 0xff;w hile(1){if(P1 ^ key_state){Delay(10);if(P1 ^ key_state){key_state = P1; EA = 0;switch(key_state) //P1端口的值为高电平,当按钮按下时,对于的pi.n端口值变为低电平{case 0xfe: increase_hour(); //时+ 如:0xfe,转为二进制(1111 1110)即代表P1.1口接地,就是“时+”按钮按下break;case 0xfd: //时-if(h--<1){ h=23; }DSY_buffer[0] = DSY_code[h / 10];DSY_buffer[1] = DSY_code[h % 10];break;case 0xfb: //分+m = (m+1)%60;DSY_buffer[2] = DSY_code[m / 10];DSY_buffer[3] = DSY_code[m % 10];break;case 0xf7: //分-if(m--<1){m=59; h=(h-1)%24; //在“时值”为正数时,当按(分-)从00变为59时,对应使“时值”减1}DSY_buffer[2] = DSY_code[m / 10];DSY_buffer[3] = DSY_code[m % 10];DSY_buffer[0] = DSY_code[h / 10];DSY_buffer[1] = DSY_code[h % 10];break;case 0xef: //秒+s = (s+1)%60;DSY_buffer[4] = DSY_code[s / 10];DSY_buffer[5] = DSY_code[s % 10];break;case 0xdf: //秒-if(s--<1){s=59; m = (m-1)%60; //在“分值”为正数时,当按(秒-)从00变为59时,对应使“分值”减1}DSY_buffer[4] = DSY_code[s / 10];DSY_buffer[5] = DSY_code[s % 10];DSY_buffer[2] = DSY_code[m / 10];DSY_buffer[3] = DSY_code[m % 10];break;}EA = 1;}}}}*****************************************************************第六章程序调试及结果1. 通过第四章的中,用Proteus软件将电路图画好;第五章把代码设计好后;在Keil uVision 软件调试,测试语法逻辑等没有错误后。

相关文档
最新文档