基于89C51单片机的多功能时钟设计.docx

上传人:b****0 文档编号:16861779 上传时间:2023-07-19 格式:DOCX 页数:49 大小:129.34KB
下载 相关 举报
基于89C51单片机的多功能时钟设计.docx_第1页
第1页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第2页
第2页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第3页
第3页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第4页
第4页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第5页
第5页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第6页
第6页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第7页
第7页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第8页
第8页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第9页
第9页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第10页
第10页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第11页
第11页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第12页
第12页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第13页
第13页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第14页
第14页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第15页
第15页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第16页
第16页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第17页
第17页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第18页
第18页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第19页
第19页 / 共49页
基于89C51单片机的多功能时钟设计.docx_第20页
第20页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于89C51单片机的多功能时钟设计.docx

《基于89C51单片机的多功能时钟设计.docx》由会员分享,可在线阅读,更多相关《基于89C51单片机的多功能时钟设计.docx(49页珍藏版)》请在冰点文库上搜索。

基于89C51单片机的多功能时钟设计.docx

基于89C51单片机的多功能时钟设计

 

课程设计成果说明书

 

题目:

基于89C51单片机多功能时钟的设计

学生姓名:

学号:

学院:

机电工程学院

班级:

指导教师:

李良儿

 

浙江海洋学院教务处

2012年12月16日

 

摘要

本设计是基于89C51单片机,主要以51单片机为控制核心,采用汇编语言进行编程。

设计的单片机多功能时钟系统由1块AT89C51芯片,1个7SEG八位LED数码管,2块74HC244列驱动及按键电路和闹铃电路组成。

具有正常的时钟显示,秒表计时和时钟校时等基本功能,同时发挥部分的功能也得到了实现,并且还具有一定的创新功能。

关键词单片机;多功能时钟;AT89C51;51单片机;

 

一、设计任务及主要技术指标和要求………………………………………………………6

1.1设计任务………………………………………………………………………………6

1.2主要技术指标和要求…………………………………………………………………6

二、引言…………………………………………………………………………………………6

三、设计方案……………………………………………………………………………………6

3.1系统方案的选定………………………………………………………………………6

3.2系统总体设计框图……………………………………………………………………6

四、系统硬件的设计……………………………………………………………………………7

4.1系统总电路……………………………………………………………………………7

4.2显示器…………………………………………………………………………………7

4.3按键电路………………………………………………………………………………7

五、系统软件的设计……………………………………………………………………………8

5.1主程序…………………………………………………………………………………8

5.2显示子程序……………………………………………………………………………8

5.3定时器T0中断服务程序………………………………………………………………8

5.4T1中断服务程序………………………………………………………………………9

5.5调时功能程序…………………………………………………………………………9

5.6秒表功能程序…………………………………………………………………………9

5.7闹钟时间设定功能程序………………………………………………………………9

六、系统调试……………………………………………………………………………………10

6.1硬件调试………………………………………………………………………………10

6.2软件调试………………………………………………………………………………10

6.3综合调试………………………………………………………………………………10

七、指标测试……………………………………………………………………………………10

7.1测试仪器………………………………………………………………………………10

7.2指标测试………………………………………………………………………………10

八、设计总结……………………………………………………………………………………10

九、参考文献……………………………………………………………………………………11

 

一、设计任务及主要技术指标和要求

1.1设计任务:

单片机多功能时钟的设计。

1.2主要技术指标和要求:

基本要求:

(1)、能实现正常的时钟功能。

分别由6个数码管显示实时的时、分、秒。

时、分后面加小数点区分。

(2)、能实现秒表的功能。

以0.01秒为计数单位,显示范围在0——9999.99秒。

有秒表的开始、停止和清零功能。

(3)具有时钟校时功能:

能对时、分按实际时间进行手动校正。

发挥部分:

(1)被校时段有闪烁功能。

(2)开机能显示班级、学号等信息,并能滚屏显示。

创新部分:

(1)具有定时闹铃功能。

(2)具有整点报时功能。

二、引言

单片机,是集CPU,RAM,ROM,计数和多种接口于一体的微控制器。

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

可靠性高、灵活性好、开发较为容易,广泛应用于智能生产和工业自动化上。

51单片机通过软件编程,在LED液晶屏上实现小时,分,秒的显示,经过对比测试,发现计时的走时精度较高,可满足多种场合的应用需求,另外上电时具有滚动显示子程序,可以方便显示制作日期等信息。

本文详细介绍了AT89C51单片机的基本原理,本文论述了7SEG-MPX6-CA-BLUE液晶屏和74HC244缓冲器的工作原理及其软件设计过程。

三、设计方案

3.1系统方案的选定

为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等硬件,接口比较复杂,考虑时钟显示只有六位,且系统没有其他复杂的处理任务,所以采用动态扫描法实现LED的显示。

单片机采用89C51系列,这样单片机就具有足够的空余硬件资源实现其他的扩充功能。

3.2、系统总体设计框图

四、系统硬件的设计

图4.2单片机时钟硬件仿真电路

单片机时钟硬件仿真电路见图8.2。

采用单片机最小化应用设计,采用共阳七段LED显示器,p0口输出段码数据,p2.0-p2.7口作列扫描输出,p1、p3口串联16个按钮开关后接led发光管,p3.7端口接5v的小峰鸣器用于按键发音及定时提醒、整点到时提醒等。

为了提醒共阳LED数码管的列扫描驱动电压,用74HC244同相驱动器作LED数码管的电源驱动。

采用12MHZ晶振可提高秒计时的精准性。

4.1显示器

利用一块7SEG-MPX8-CA-BLU共阳八位LED数码管作为显示屏,如下图4.3

4.2按键电路

利用七个开关分别接控制芯片的P1.0~P1.6口,分别对应所要求的功能。

 

五、系统软件的设计

5.1主程序的设计

主程序流程图如下图5.1

本设计中计时采用定时器T0中断完成,秒表使用定时器T1中断完成,主程序循环调用显示子程序及查键,当端口有开关按下时,转入相应功能程序。

5.2显示子程序

时间显示子程序每次显示6个连续内存单元的十进制BCD码数据,首地址在调用显示程序时先指定。

内存中50H~55H为闹钟定时单元,60H~65H为秒表计时单元,70H~75H为时钟显示单元。

由于采用七段共阳LED数码管动态扫描实现数据显示,显示用十进制BCD码数据的对应段码存放在ROM表中,显示时,先取出内存地址中的数据,然后查得对应的显示用段码从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。

为了显示小数点及“—”、“A”等特殊字符,在开机显示班级信息和计时使用时采用不同的显示子程序。

5.3定时器T0中断服务程序

定时器T0用于时间计时。

定时溢出中断周期设为50ms,进入中断后先进行定时中断初值校正,中断累计20次(即50ms×20=1s)时对秒计数单元进行加1操作。

时钟计数单元地址分别在70H~71H(秒)、76H~77H(分)、78H~79H(时),最大计时值为23小时59分59秒。

7AH单元内存放“熄灭符”数据(#0AH),用于时间调整时的闪烁功能。

在计数单元中采用十进制BCD码计数,满10进位,T0中断计时程序执行流程见图5.3.

5.4T1中断服务程序

T1中断程序用于指示时间调整单元数字的闪亮或秒表计数,在时间调整状态下,每过0.3a左右,将对应调整单元的显示数据换成“熄灭符”数据(#0AH)。

这样在调整时间时,对应调整单元的显示数据会间隔闪亮。

在作秒表计时时,每10s中断1次,计数单元加1,每100次为1s。

秒表计数单元地址在60H~61H(10毫秒)、62H~63H(秒)、64H~65H(分),最大计数值为99分59.99秒。

T1中断程序流程图见图5.4.

5.5调时功能程序

调时功能程序的设计方法是:

按下P1.0口按键,若按下时间小于1s,进入省电状态(数码管不亮,时钟不停),否则进入调分状态,等待操作,此时计时器停止走动。

当再按下P1.0按钮时,若按下时间小于0.5s,则时间加1min,若按下时间大于0.5s,则进入小时调整状态,按下P1.1按钮时可进行减1调整。

在小时调整状态下,当按键按下的时间大于0.5s时退出时间调整状态,时钟从0s开始计时。

5.6秒表功能程序

在正常时钟状态下若按下P1.1口按键,则进行时钟/秒表显示功能的转换,秒表中断计时程序启动,显示首址改为60H,LED将显示秒表计时单元60H~65H中的数据。

按下P1.2口的按键开关可实现秒表清零、秒表启动、秒表暂停功能,当再按下P1.1口按键时关闭T1秒表中断计时,显示首址又改为70H,恢复正常时间的显示功能。

5.7闹钟时间设定功能程序

在正常时钟状态下若按下P1.3口的按键开关,则进入设定闹时调分状态,显示首址改为50H。

LED将显示50H~55H中的闹钟设定时间,显示式样为00:

00:

—,其中高2位代表时,低2位将代表分,在定时闹铃时精确到分。

按下P1.2键分加1,按P1.0键分减1;若再按P1.3键进入时调整状态,显示式样为00:

00:

—,按P1.2键时加1,按P1.0键时减1,按P1.1键闹铃有效,显示式样变为00:

00:

—0,再按P1.1键闹铃无效(显示式样又为00:

00:

—)。

再按P1.3键调整闹钟时间结束,恢复正常时间的显示。

在闹铃时可按一下P1.3口按键使蜂鸣停止,不按,则蜂鸣器将鸣叫1分钟后自行中止。

在设定闹钟后若要取消闹时功能,可按一下P1.3键,可听到一声“滴”声表明已取消了闹铃功能。

六、系统调试

6.1硬件调试

由于本次设计没有通过实际硬件做出电路,故没有硬件调试,只在Proteus软件上仿真。

6.2软件调试

在Proteus软件上画好电路后先要进行硬件线路的测试。

(1)先测试LED数码管是否会亮,方法是写一段小程序(P0口为#00H,P2口为#0FFH),装入单片机后运行看8个数码管是否能显示8个“8”,如不会亮或部分不会亮应检查硬件连接线路。

(2)按键小开关的检查是用鼠标按下小开关看对应口的发光管是否会亮(经调试可以运行后发光管已省略)。

(3)蜂鸣器电路接在P3.7口,在按下P3.7口小开关时应能听到蜂鸣声。

6.3综合调试

将设计好的程序装入主控制芯片,进行功能的观察与调试。

七、指标测试

7.1测试仪器

由于本次设计没有通过实际硬件做出电路,故不用进行仪器的测试。

7.2指标测试

基本要求:

(1)具有正常的时钟功能。

(2)具有秒表功能。

(3)具有时钟校时功能。

发挥部分:

(1)具有校时段的闪烁功能。

(2)具有开机上电时滚屏显示年月日及班级学号的功能

创新部分:

(1)具有整点闹铃功能。

(2)具有倒计时结束时闹铃提醒功能。

(3)具有定时闹铃功能。

八、设计总结

通过这一周的学习,我感觉有很大的收获:

首先,通过这次课程设计使自己对课本上的知识可以应用于实际,使理论与实际相结合,加深自己对课本知识的更好理解,同时也段练了自己的动手能力:

能够充分利用电脑去查阅资料,增加了许多课本以外的知识。

更加了解了单片机的设计步骤及方法。

增加了对AT89C52芯片和7SEG共阳八位LED数码管引脚结构和功能的理解及运用,在设计电路过程中,要考虑到整体的美观性,连接电路时对各线路的连接要细致。

在验证面电路效果时,出现了很多问题,其主要问题各个接线点之间错接没接上等。

在这个过程中,锻炼了我的细心和耐性。

 

九、参考文献

[1].楼然苗、李光飞,单片机课程设计指导[M],北京,北京航空航天大学出版社,2007.07.

[2].蔡美琴等,MCS-51系列单片机系统及其应用(第二版)[M],高等教学出版社,2004.06.

[3]、楼然苗、胡佳文等,单片机实验与课程设计(PROTEUS仿真版)[M],杭州,

浙江大学出版社,2010.10

 

附带程序:

DISPFIRSTEQU30H;显示首址存放单元

BELLEQUP3.7;小喇叭

CONBSEQU2FH;存放报时次数

SONGCONEQU31H;唱歌程序计数器

CONR2EQU32H;以下为唱歌寄存器

CONR3EQU33H

CONR4EQU34H

CONR6EQU36H

CONR7EQU37H

CONR5EQU35H

DELAYR3EQU38H;以下为延时寄存器

DELAYR5EQU39H

DELAYR6EQU3AH

DELAYR7EQU3BH

;

;***********************************;

;中断程序入口;

;***********************************;

;

ORG0000H;程序执行开始地址

LJMPSTART;跳到标号START执行

ORG0003H;外中断0中断入口

RETI;外中断0中断返回

ORG000BH;定时器T0中断入口

LJMPINTT0

ORG0013H

RETI

ORG001BH

LJMPINTT1

ORG0023H

RETI

;

;***********************************;

;以下程序开始;

;***********************************;

;

;整点报时功能程序

ZDBS:

MOVA,#10

MOVB,79H

MULAB

ADDA,78H

MOVCONBS,A

JZOUT00

BSLOOP:

LCALLDS20ms

MOVP3,#00H

LCALLDL1S

LCALLDL1S

MOVP3,#0FFH

LCALLDL1S

DJNZCONBS,BSLOOP

OUT00:

CLR08H

AJMPSTART1

;以下为闹钟功能时的唱歌程序

SPPP:

;LCALLMUSICO

MOVB,#10

BLOOP:

LCALLDS20ms

LCALLDL1S

LCALLDL1S

DJNZB,BLOOP

CLR0AH

CLR05H

AJMPSTART1

;倒计时程序进入程序

DJS:

LCALLDS20ms

JBP1.4,START1

WAITH111:

JNBP1.4,WAITH111

LJMPDJSST

;

;***********************************;

;主程序开始;

;***********************************;

;

START:

MOVSP,#80H

LCALLST

LCALLSTFUN0

LCALLSTMEN

SETBEA

SETBET0

SETBTR0

MOVR4,#14H

MOVDISPFIRST,#70H

LCALLMUSICO

;以下为主程序循环

START1:

LCALLDISPLAY

JNBP1.0,SETMM1

JNBP1.1,FUNSS

JNBP1.2,FUNPT

JNBP1.3,TSFUN

JNBP1.4,DJS

JB08H,ZDBS

JB0AH,SPPP

AJMPSTART1

;

FUNPT:

LJMPFUNPTT

;以下为闹钟时间设定程序,按下p1.3进入设定

TSFUN:

LCALLDS20ms

JBP1.3,START1

WAIT113:

JNBP1.3,WAIT113

JB05H,CLOSESP

MOVDISPFIRST,#50H

MOV50H,#0CH

MOV51H,#0AH

;

DSWAIT:

SETBEA

LCALLDISPLAY

JNBP1.2,DSFINC

JNBP1.0,DSDEC

JNBP1.3,DSSFU

AJMPDSWAIT

;

CLOSESP:

CLR05H

CLRBELL

AJMPSTART1

DSSFU:

LCALLDS20ms

JBP1.3,DSWAIT

LJMPDSSFUNN

;

SETMM1:

LJMPSETMM

;

DSFINC:

LCALLDS20ms

JBP1.2,DSWAIT

DSWAIT12:

LCALLDISPLAY

JNBP1.2,DSWAIT12

CLREA

MOVR0,#53H

LCALLADD1

MOVA,R3

CLRC

CJNEA,#60H,ADDHH22

ADDHH22:

JCDSWAIT

ACALLCLR0

AJMPDSWAIT

DSDEC:

LCALLDS20ms

JBP1.0,DSWAIT

DSWAITEE:

LCALLDISPLAY

JNBP1.0,DSWAITEE

CLREA

MOVR0,#53H

LCALLsub1

LJMPDSWAIT

;以下为秒表功能/时钟转化功能程序

;按下p1.1可进行功能转换

FUNSS:

LCALLDS20ms

JBP1.1,START11

WAIT11:

JNBP1.1,WAIT11

CPL03H

JNB03H,TIMFUN

MOVDISPFIRST,#60H

MOV60H,#00H

MOV61H,#00H

MOV62H,#00H

MOV63H,#00H

MOV64H,#00H

MOV65H,#00H

MOVTL1,#0F0H

MOVTL1,#0D8H

SETBTR1

SETBET1

START11:

LJMPSTART1

TIMFUN:

MOVDISPFIRST,#70H

CLRET1

CLRTR1

START12:

LJMPSTART1

;以下为秒表暂停/清零功能程序

;按下p1.2清零,p1.1推出秒表回到时钟计时

FUNPTT:

LCALLDS20ms

JBP1.2,START12

WAIT22:

JNBP1.2,WAIT21

CLRET1

CLRTR1

WAIT33:

JNBP1.1,FUNSS

JBP1.2,WAIT31

LCALLDS20ms

JBP1.2,WAIT33

WAIT66:

JNBP1.2,WAIT61

MOV60H,#00H

MOV61H,#00H

MOV62H,#00H

MOV63H,#00H

MOV64H,#00H

MOV65H,#00H

WAIT44:

JNBP1.1,FUNSS

JBP1.2,WAIT41

LCALLDS20ms

JBP1.2,WAIT44

WAIT55:

JNBP1.2,WAIT51

SETBET1

SETBTR1

AJMPSTART1

;以下为键等待释放时显示不会熄灭程序

WAIT21:

LCALLDISPLAY

AJMPWAIT22

WAIT31:

LCALLDISPLAY

AJMPWAIT33

WAIT41:

LCALLDISPLAY

AJMPWAIT44

WAIT51:

LCALLDISPLAY

AJMPWAIT55

WAIT61:

LCALLDISPLAY

AJMPWAIT66

;

;

;***********************************;

;一秒计时程序

;***********************************;

;t0中断服务程序

INTT0:

PUSHACC

PUSHPSW

CLRET0

CLRTR0

MOVA,#0B7H

ADDA,TL0

MOVTL0,A

MOVA,#3CH

ADDCA,TH0

MOVTH0,A

SETBTR0

SETBP3.6

SETBP3.5

DJNZR4,OUTT0

ADDSS:

MOVR4,#14H

CLRP3.6

CLRP3.5

CPL07H

MOVR0,#71H

ACALLADD1

MOVA,R3

CLRC

CJNEA,#60H,ADDMM

ADDMM:

JCOUTT0

ACALLCLR0

MOVR0,#77H

ACALLADD1

MOVA,R3

CLRC

CJNEA,#60H,ADDHH

ADDHH:

JCOUTT0

ACALLCLR0

LCALLDS20ms

SETB08H

MOVR0,#79H

ACALLADD1

MOVA,R3

CLRC

CJNEA,#24H,HOUR

HOUR:

JCOUTT0

ACALLCLR0

OUTT0:

MOV72H,76H

MOV73H,77H

MOV74H,78H

MOV75H,79H

LCALLBAOJ

POPPSW

POPACC

SETBET0

RETI

;

;***********************************;

;闪动调时程序/秒表功能;

;***********************************;

;t1中断服务程序,用于时间调整单元闪烁指示或秒表计时

INTT1:

PUSHACC

PUSHPSW

JB09H,SPCC

JB06H,DJSFUN

JB03H,MMFUN

MOVTL1,#0B0H

MOVTH1,#3CH

DJNZR2,INTT1OUT

MOVR2,#06H

CPL02H

JB02H,FLASH1

MOV72H,76H

MOV73H,77H

MOV74H,78H

MOV75H,7AH

INTT1OUT:

POPPSW

POPACC

RETI

FLASH1:

JB01H,FLASH2

MOV72H,7AH

MOV73H,7AH

MOV74H,78H

MOV75H,79H

AJMPINTT1OUT

FLASH2:

MOV72H,76H

MOV73H,77H

MOV74H,7AH

MOV75H,7AH

AJMPINTT1OUT

;

SPCC:

INCSONGCON

MOVTH1,#0D8H

MOVTL1,#0EFH

AJMPINTT1OUT

DJSFUN:

LJMPDJSS

MMFUN:

CLRTR1

MOVA,#0F7H

ADDA,TL1

MOVTL1,A

MOVA,#0D8H

ADDCA,TL1

MOVTL1,A

S

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2