资源描述
永城职业技术学院单片机电子时钟设计
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
《单片机技术》课程设计报告
基于单片机AT89C5电子时钟的设计
专业:计算机应用技术101班
学生姓名:杜欣欣 霍慧雲 熊海涛 杨希彪
指导教师:郑艳
完成时间:16:12
22
目录
摘要 3
第一章绪论 4
1。1 WAVE的简单介绍 5
1。2 Protues简介 5
第二章 元器件介绍 6
2。1 AT89C51单片机的介绍 6
2.1。1主要特性 6
2.1。2管脚说明 7
第三章 电子时钟硬件设计 11
3。1 电子钟系统硬件组成 11
3。2电子钟硬件电路工作说明 11
3。3 Proteus进行电子钟系统仿真 12
第四章 电子时钟软件设计 13
4.1 软件程序 14
第五章 实验心得 18
第六章 致谢 18
摘要
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
单片机,是集CPU ,RAM ,ROM ,计数和多种接口于一体的微控制器.自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注.它体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易,广泛应用于智能生产和工业自动化上。
本课题通过AT89C51单片机来设计电子时钟,采用汇编语言进行编程,可以实现以下一些功能:小时,分,秒和年,月,日的显示、定时报警功能。本次设计的电子时钟系统由时钟电路,LCD显示电路,定时报警电路,按键调整电路四部分组成。51单片机通过软件编程,在LCD1602液晶屏上实现小时,分,秒和年,月,日的显示;利用时钟芯片DS1302来实现计时,定时功能;通过两个按键开关,一个用于时钟的调节,一个用于闹钟的调节,来实现参数设置和调节功能;到达设置的闹钟时间时,由蜂鸣器发声,起报警作用。本次设计的电子时钟,经过对比测试,发现实际计时的走时精度较高,可满足多种场合的应用需求.
本文详细介绍了AT89C51单片机的基本原理,分析了AT89C51各个管脚的功能及它在设计电路中的作用.本文论述了LCD1602液晶屏和时钟芯片DS1302的工作原理及其软件设计过程。还介绍了基于单片机的电子时钟的设计,详细讨论了它从软件上实现的过程,重点在时钟调整的方式:查询和中断的比较,然后,对电子时钟的稳定性和精确性作了相关的讨论。在文章的最后,给出了采用中断方式实现的电子时钟的源程序。
关键词:单片机,电子时钟,时钟芯片
第一章绪论
数字电子时钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。虽然现在市场上已有现成的电子钟集成电路芯片,价格便宜、使用也方便,但是人们对电子产品的应用要求越来越高,数字钟不但可以显示当前的时间,而且可以显示期、农历、以及星期等,给人们的生活带来了方便。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子时钟具备了多媒体的色彩。单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时钟,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DSI302,DSI2887,XI203等都可以满足高精度的要求。
AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In—system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128
bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式.空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位.同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。
1。1 WAVE的简单介绍
编辑、编译、下载、调试全部集中在一个环境下.
多钟仿真器,多类CPU仿真全部集成在一个环境下。可仿真51系列,196系列,PIC系列,飞利浦公司的552、LPC764、DALLAS320,华邦438等51增强型CPU。为了跟上形势,现在很多工程师需要面对和掌握不同和项目管理器、编辑器、编译器.他们由不同的厂家开发,相互不兼容,使用不同的界面.学习使用都很吃力。伟福WINDOWS调试软件为您提供了一个全集成环境,统一的界面,包含一个项目管理器,一个功能强大的编辑器,汇编Make、Build和调试工具并提供一个与第三方编译器的接口。
1。2 Protues简介
Protues ISIS是英国Labcenter公司开发,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台,可以实现数字电路、模拟电路及微控制器系统与外设的混合电路系统的电路仿真、软件仿真、系统协同仿真和PCB设计等功能,是目前唯一能够对各种处理器进行实时仿真、调试与测试的EDA工具。微控制器系统相关的仿真需建立编译和调试环境,可选择Keil C51uVision2 软件。该软件支持众多不同公司的芯片,集编辑、编译和程序仿真等于一体,同
时还支持PLM、汇编和C语言的程序设计.它的界面友好易学,在调试程序、软件仿真方面有很强大的功能。 其革命性的功能是:将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如电机、LED、LCD、开关等,实时看到运行后的输入、输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,Proteus为我们建立了完备的电子设计开发环境。
第二章 元器件介绍
2.1 AT89C51单片机的介绍
单片微型计算机简称单片机,是典型的嵌入式微控制器常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。由于将多功能8位CPU和闪烁存储器组合在单个芯片中, AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
2。1。1主要特性
l 4K字节可编程闪烁存储器
l 寿命;1000写/擦循环
l 数据保留时间:10年
l 全静态工作:0Hz-24MHz
l 三级程序存储器锁定
l 128*8位内部RAM
l 32可编程I/O线
l 两个16位定时器/计数器
l 5个中断源
l 可编程串行通道
l 低功耗的闲置和掉电模式
l 片内振荡器和时钟电路
2。1.2管脚说明
VCC:供电电压
GND:接地
RST:复位输入.
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入.P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位.在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,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 TO(计时器0外部输入)
P3.5 T1(计时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间.
ALE/PROG:地址锁存允许的输出电平用于锁存地址的地位字节。
/PSEN:外部程序存储器的选通信号。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H—FFFFH),不管是否有内部程序存储器.注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器.在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
第三章 电子时钟硬件设计
3.1 电子钟系统硬件组成
MAX72电子钟系统硬件主要由AT89C51单片机、时钟芯片DS1302、数码管码显示驱动芯19等元器件组成。
电子钟系统硬件电路组成框图
3。2电子钟硬件电路工作说明
系统硬件电路根据课题设计要求,它由以下几个部件组成:单片机AT89C51、电源、时分秒显示模块。
时分秒显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗.显示模块中时分秒显示驱动、校时模块都通过89C52RC的I/O口控制。显示模块中的复位电路由89C52RC的RESET端控制。
电源部分:电源部分有二部分组成.一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作;另一部分是由5V的电池供电,以保证停电时正常走时。正常情况下电池是不提供电能的,以保证电池的寿命.
3.3 Proteus进行电子钟系统仿真
在Proteus ISIS的Debug菜单中选择Execute,运行程序,系统仿真结果如下图所示。实现功能:当进入调整功能时,按第一个键K1进行减运算,按第二个键K2进行加运算.按下第三个键K3,实现日期\时间调整及\定时功能,等数字闪烁后,按一二键进行加减,从而可以进行具体日期时间调整。当定时设定后,到预定时间后,系统通过C51音乐程序演唱歌曲-八月桂花.按下第四个键K4,可以进行时间\日期切换,8位LED数码管将显示时间或日期,采用24小时制。时间显示格式为:时—分-秒;日期显示格式为:日—月—年.有实时显示当前计算机系统时间和日期的功能。
第四章 电子时钟软件设计
l 主程序:
先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有按键按下时,则转入相应的功能程序。
l 数码管显示模块:
本实验有8个数码管,从右到左为妙、横线、分、横线、时。在本系统中数码管显示采用软件译码动态显示。在存储器中首先建立一张显示信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段表中查出所显示的信息的断码,从P0端口输出,同时在P2端口进行数码管显示。
l 定时器/计数器TO中断服务程序:
TO用于计时,选中方式一,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加一。秒单元加到60则对分单元加一,同时秒单元清0;分单元加到60则对时单元加一,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满.在对各单元计数的同时,把他们的值放到存储器单元的指定位置。
l 流程图如下:
主程序流程图和TO中断服务程序
按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。
开始
秒按键按
秒加1
分按
键按
分加1
时按
键按
时加1
显示
时间
结束
定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间.
开始
一秒时间
秒单元加1
60秒时间
秒单元清零
分单元加1
60分钟
分单元清零
时单元加1
24
小时
时单
元清
零
时间显示
中断返回
时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。
开始
秒个位计算显示
秒十位计算显示
分个位计算显示
分十位计算显示
时个位计算显示
时十位计算显示
结束
4。1 软件程序
ORG 0000H
LJMP START
ORG 000BH
LJMP INIT0
START: MOV R0,#70H
MOV R7,#00H
INIT: MOV @R0,#00H
INC R0
DJNZ R7,INIT
MOV 72H,#10
MOV 75H,#10
MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#03CH
SETB EA
SETB ET0
STATRT1: LCALL SCAN
LCALL KEYSCAN
SJMP START1
DLIMS: MOV R6,#14H
DL1:MOV R7,#19H
DL2:DJNZ R7,DL2
DJNZ R6,DL1
RET
DL20MS: ACALL SCAN
ACALL SCAN
ACALL SCAN
RET
SCAN:MOV A,78H
MOV B,#0AH
DIV AB
MOV 71H, A
MOV 70H, B
MOV A,79H
MOV B,#0AH
DIV AB
MOV 74H, A
MOV 73H, B
MOV A,7AH
MOV B,#0AH
DIV AB
MOV 77H, A
MOV 76H, B
MOV R1,#70H
MOV R5,#0FEH
MOV R3,#08H
SCAN1:MOV A,R5
MOV P2,A
DIV A,@R1
MOV DPTR,#TAB
MOV A,@A+DPTR
MOV P0,A
MOV A,R5
LCALL DL1MS
INC R1
MOV A,R5
RL A
MOV R5,A
DJNZ R3,SCAN1
MOV P2,#OFFH
MOV P0,#OFFH
RET
TAB:DB 0C0H,0F9H。0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH
INIT0:PUSH ACC
PUSH PSW
CLR ET0
CLR TR0
MOV TL0, #03CH
SETB TR0
INC 7BH
MOV A,7BH
CJNE A,#14H,OUTT0
MOV 7BH,#00
INC 78H
MOV A,78H
CJNE A,#3CH,OUTT0
MOV 7BH,#00
INC 79H
MOV A,79H
CJNE A,#3CH,OUTT0
MOV 79H,#00
INC 7AH
MOV A,7AH
CJNE A,#18H,OUTT0
MOV 74H,#00
OUTT0:SETB ET0
POP PSW
POP ACC
RET1
KEYSCAN:CLR EA
JNB P1.0,KEYSCAN0
JNB P1。1,KEYSCAN0
JNB P1。2,KEYSCAN0
KEYOUT: SETB EA
RET
KEYSCAN0:LCALL DL20MS
JB P1.0,KEYOUT
WAIT0:JNB P1.0,WAIT0
INC 7CH
MOV A,7CH
CLR ET0
CLR TR0
CJNE A,#03H,KEYOUT
MOV 7CH,#00
SETB ET0
SETB TR0
SJMP KEYOUT
KEYSCAN1:LCALL DL20MS
JB P1。1,KEYOUT
WAIT1:JNB P1.1,WAIT1
MOV A,7CH
CJNE A,#02H,KSCAN11
INC 79H
CJNE A,#3CH,KEYOUT
MOV 79H,#00
SJMP KEYOUT
KSCANII:INC 7AH
MOV A,7AH
CJNE A,#18H,KEYOUT
MOV 7AH,#00
SJMP KEYOUT
KEYSCAN2:LCALL DL20MS
JB P1。2,KEYOUT
WAIT2:JNB P1。2,WAIT2
MOV A,7CH
CJNE A,#02H,KSCAN21
DEC 79H
MOV A,79H
CJNE A,#0FFH,KEYOUT
MOV 79H,#3BH
SJMP KEYOUT
KSCAN21:DEC 7AH
CJNE A,#0FFH,KEYOUT
MOV 7AH,#17H
SJMP KEYOUT
END
第五章 实验心得
本文的电子钟系统是以单片机(AT89C51)为核心,时钟芯片DS1302、数码管显示驱动芯片MAX7219等元器件组成。具体介绍应用Protel DXP进行电路原理图设计,Keil C51软件调试程序以及Proteus的ISIS软件进行单片机系统的电子钟设计与仿真。实现了硬件软化的目的。
经过一周的课程设计,我们发现对于书上很多知识还不能灵活运用有很多知识还要我们去学习。此次的电子时钟的给我们奠定了一个实践的基础,很是受益匪浅。我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻.学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。
第六章 致谢
通过不断努力,终于完成了此次论文设计。在此,首先感谢导师郑艳老师在百忙之中还抽出宝贵的时间对我们小组进行精心的指导,才使我们顺利完成了论文设计.使我们在大学中学到了许多宝贵的知识和经验.在此,衷心地感谢你!
参考文献
[1] 《单片机原理与应用》 谢维成 杨加国 编著
[2]《单片机应用与仿真调试》 严天峰 编著
[3]《单片机原理及其串口技巧》 胡汉才 编著 [4] 代启化。基于Proteus的电路设计与仿真[J]。现代电子技术2006第19期。
[5] 曹洪奎;马莹莹 基于Proteus单片机系统设计与仿真[J]。辽宁工学院学报
[6] 刘文秀。单片机应用系统仿真的研究[J].现代电子技术。2005, 第286 期
小组分工:
杜欣欣,霍慧雲主要负责第一章,第二章和第四章的设计以及排版的设计。
熊海涛,杨希彪主要负责摘要,第三章,第五章和第六章的设计和资料的收集。
展开阅读全文