单片机课程设计报告定时闹钟含程序.docx

上传人:b****8 文档编号:9712758 上传时间:2023-02-06 格式:DOCX 页数:39 大小:283.87KB
下载 相关 举报
单片机课程设计报告定时闹钟含程序.docx_第1页
第1页 / 共39页
单片机课程设计报告定时闹钟含程序.docx_第2页
第2页 / 共39页
单片机课程设计报告定时闹钟含程序.docx_第3页
第3页 / 共39页
单片机课程设计报告定时闹钟含程序.docx_第4页
第4页 / 共39页
单片机课程设计报告定时闹钟含程序.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

单片机课程设计报告定时闹钟含程序.docx

《单片机课程设计报告定时闹钟含程序.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告定时闹钟含程序.docx(39页珍藏版)》请在冰豆网上搜索。

单片机课程设计报告定时闹钟含程序.docx

单片机课程设计报告定时闹钟含程序

大学

单片机课程设计报告

 

定时闹钟

 

摘要

本设计是用单片机原理及其相关硬件的运用实现的定时闹钟。

数字电子钟设计与制作可采用数字电路实现,也可以采用单片机来完成。

若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。

若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计与制作中采用单片机AT89C51,它是低功耗、高性能的CMOS型8位单片机。

片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。

另外,AT89C51的指令系统和引脚与8051完全兼容,片内有128B的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。

显示部分采用六位一体的共阳极数码管,运用同相三态双向总线收发器74LS245作为输出驱动显示部件的元件。

在编写程序的过程采用了定时程序和时间调整程序对称的编写方法。

并且在时间的调整或设置过程中本设计采用了长按进行调时或调分的选择,短按是进行在选择后进行加1,每短按一次,该单位加1.调整完毕以后再次长按原设置键即可跳出设置循环,显示部分――共阳极数码管显示正常走时的时间。

但是该程序在硬件的仿真过程中有点瑕疵。

在仿真开始时警示灯直接亮,必须通过闹钟定时键K2的闹钟设置以后时间才可以正常走时。

之后可以进行时间的调整或闹钟的重新调整。

 

目录

1概述3

1.1设计任务3

1.2设计要求3

1.3设计意义3

2系统总体方案与硬件选择设计4

2.1系统总体方案4

2.2硬件选择设计4

3软件设计9

3.1程序流程图9

3.2程序模块10

4Proteus软件仿真17

5课程设计体会19

参考文献19

附1:

源程序代码21

附2:

系统原理图33

1概述

1.1设计任务

在熟练掌握单片机及其仿真系统的使用方法的基础上,综合应用单片机原理,微机原理,微机接口技术等专业知识,设计采用一个AT89C51单片机控制的定时闹钟。

1.2设计要求

1)能够显示 时时-分分-秒秒。

2)设定定时时间、修改定时时间。

3)定时时间到能发出报警声或者启动继电器,从而控制电器的启停。

在此设计中该定时闹钟的报警启动继电器的动作用LED灯的变化来显示。

1.3设计意义

通过利用MCS-51单片机制作定时闹钟,可以更加深刻的理解单片机在自动化仪表中的作用以及掌握单片机的编程方法;从而进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤;通过设计定时数字闹钟数字输出输入及扫描显示模拟系统,熟练掌握单片机仿真软件Proteus的使用方法。

 

2系统总体方案与硬件选择设计

2.1系统总体方案

定时闹钟的系统可分为四个环节,分别是单片机控制系统、时间显示模块、控制键模块和闹铃模块。

通过若干模块的协调工作就可以完成相应的时间调整和定时闹钟的相应功能以及显示功能。

模块的相互连接如下图(图1)所示:

 

图1

2.2硬件选择设计

1单片机控制系统与相关附件

可编程可擦除只读存储器AT89C51(如图2)

图2

(1)简介该元件由CPU、振荡器与时序电路、4KB的ROM、256B的RAM、两个16位的定时器/计数器T0和T1、4个8位的I/O端口(P0、P1、P2、P3)、串行口等组成。

其中振荡器时序电路与外时钟组成了定时控制部件。

(2)CPU的主要功能是产生各种控制信号,控制存储器、输入/输出接口的数据传送、数据的算术运算、逻辑运算以及位操作处理等。

它是单片机的头脑。

(3)CPU从功能上可以分为运算器和控制器两部分。

其中运算器由算术逻辑运算部件ALU、累加器、暂存器、程序状态字寄存器、BCD码运算调整电路等组成。

为了提高数据处理和位操作能力,片内增加了一个通用寄存器B和一些专用寄存器,还增加了位处理逻辑电路的功能。

主要完成对数据进行算术四则运算和逻辑运算、移位操作、位操作等。

控制器由程序计数器、指令寄存器、指令译码器、定时控制与条件转移逻辑电路等组成。

主要功能是对来自存储器中的指令进行译码,通过定时控制电路,在规定的时刻发出各种操作所需的全部内部和外部控制信号,协调各功能元件的工作,完成指令所规定的功能。

而控制器中的定时控制部件与时序是在规定时刻发出各种操作所需的全部内部和外部控制信号,使各功能元件能够协调工作,完成指令所规定动作的功能。

主要任务是产生一个工作时序,其工作需要时钟电路提供一个工作频率。

(4)管脚说明

VCC:

供电电压

GND:

接地

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口作为地址的高8位。

在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流,当P3口写入1后,它们被内部上拉为高电平,并用作输入.作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

2系统时钟电路如图3

图3

MCS-51内部有一个用于构成振荡器的高增益反相放大器,此放大器的输入和输出端分别是引脚XTAL1和XTAL2,在XTAL1和XTAL2上外接时钟源即可构成时钟电路。

单片机的生产工艺不同,时钟的产生方式也不同,有内部和外部两种时钟产生方式。

根据该设计的需要,采取了内部方式。

(1)HMOS型MCS-51外部时钟源的接法。

内部时钟产生方式:

XTAL1和XTAL2两端跨接晶体或陶瓷振谐器,与内部反相器构成稳定的自激振荡器。

其发出的时钟脉冲直接送入片内定时控制部件。

C1、C2对频率有微调作用。

(2)CHMOS型的外部时钟源的接法与HMOS型的单片机内部时钟电路不同:

(2.1)内部时钟信号取自反相放大器的输入端。

(2.2)振荡器的工作可编程控制。

即当相应的部件进入掉电保护,系统进入低功耗运行。

因内部时钟发生器的信号取自放大器的输入端,故采用外部时钟源时,接线方法与HMOS型的单片机有所不同。

3同相三态双向总线收发器74LS245如图4

图4

用来驱动LED或其他的设备,可双向传输数据.还具有三态功能,既可以输出,也可以输入数据。

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

(2)控制键模块(如图5)

图5

K1键为时间设置和正常走时的设置键。

第一次长按该键即可进行分钟的设置状态,调整的部分为闪烁状态,之后短按该键每按下一次即可在要设置的分钟上加1。

设置完成以后再次长按该键即可进入小时的设置,分钟的显示位置不再闪烁。

而小时的显示位置为闪烁状态,之后短按该键每按下一次即可在要设置的小时上加1。

设置完成之后再次长按该键(显示部分无闪烁状态),即可显示设置时间后的正常走时。

K2键为闹钟设置键和正常走时的调整键。

调整的过程与时间的设置过程类似。

第一次长按该键即可进行分钟的调整状态,调整的部分为闪烁状态,之后短按该键每按下一次即可在要设置的分钟上加1。

设置完成以后再次长按该键即可进入小时的设置,分钟的显示位置不再闪烁。

而小时的显示位置为闪烁状态,之后短按该键每按下一次即可在要调整的小时上加1。

调整完成以后长按该键(显示部分无闪烁状态),即可显示正常走时。

须注意:

该定时闹钟在定时之后才可以正常走时。

(3)时间显示模块显示部分(如图6)

图6

显示部分采用六位一体共阳数码管,自左到右分别显示时时-分分-秒秒。

在进行时间的闹钟设置和时间的调整过程中相应的设置或调整的单元部分为闪烁状态。

(4)闹铃模块(如图7)

图7

警示灯,定时时间输出低电平,LED灯两端存在电位差即灯亮。

 

3软件设计

3.1程序流程图

3.2程序模块

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;主程序;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

START:

MOVR0,#70H

MOVR7,#0BH

MOV20H,#00H

CLEARDISP:

MOV@R0,#00H

INCR0

DJNZR7,CLEARDISP;/给显示缓冲单元70-75H赋初值/

MOV7AH,#0AH

MOV3AH,#0AH

MOVR0,#30H

MOVR7,#0BH

MOV20H,#00H

CLEARdDISP:

MOV@R0,#00H

INCR0

DJNZR7,CLEARdDISP

MOV3AH,#0AH

MOVTMOD,#11H;/定时器等状态初始化/

MOVTL0,#0B0H

MOVTH0,#3CH

MOVTL1,#0B0H

MOVTH1,#3CH

SETBEA;/开中断/

SETBET0

SETBTR0;/T0开始工作/

MOVR4,#14H

start1:

LCALLDISPLAY

JNBP3.2,SETMM1

JNBP3.3,DSETMM1

SJMPStart1

SETMM1:

LJMPSETMM

DSETMM1:

LJMPDSETMM

程序开始先调用调整与正常走时显示程序,判断K1键是否按下,若按下择调用时钟调整程序,若无按下则判断K2是否按下,若按下则调用闹钟设置程序。

若无键按下则返回主程序继续循环

当定时器计数满溢出时,调用计时秒进位程序,时钟每增加一秒,通过以下语句:

CJNEa,70H,yyy

MOVa,31H

CJNEa,71H,yyy

MOVa,32H

CJNEa,72H,yyy

MOVa,33H

CJNEa,73H,yyy

MOVA,34H

CJNEA,74H,yyy

MOVA,35H

CJNEA,75H,yyy

判断定时时间是否到,若没有则返回主程序,若有则调用闹钟服务子程序。

由于定时设置时的初值和正常走时的初值全部为00H,所以在刚开始运行时灯直接亮。

之后可以通过长按k2键设置定时闹钟的时间进而实现该闹钟的正常走时。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;计时秒进位程序;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

INTT0:

PUSHACC

PUSHPSW

CLRET0

CLRTR0

MOVA,#0B7H;中断同步修正

ADDA,TL0

MOVTL0,A

MOVA,#3CH

ADDA,TH0

MOVTH0,A

SETBTR0

DJNZR4,OUTT0

ADDSS:

MOVR4,#14H

MOVR0,#71H

ACALLADD1;加1程序

MOVA,R3

CLRC

CJNEA,#60H,ADDMM

ADDMM:

JCOUTT0

ACALLCLR0

MOVR0,#77H

ACALLADD1

MOVA,R3

CLRC

CJNEA,#60H,ADDHH

ADDHH:

JCOUTT0

ACALLCLR0

MOVR0,#79H

ACALLADD1

MOVA,R3

CLRC

CJNEA,#24H,HOUR

HOUR:

JCOUTT0

ACALLCLR0

OUTT0:

MOV72H,76H

MOV73H,77H

MOV74H,78H

MOV75H,79H

MOVA,30H

CJNEA,70Hyyy

MOVA,31H

CJNEA,71H,yyy

MOVA,32H

CJNEA,72H,yyy

MOVA,33H

CJNEA,73H,yyy

MOVA,34H

CJNEA,74H,yyy

MOVA,35H

CJNEA,75H,yyy

CLRp1.0

LCALLALARMPROCESS

yyy:

POPPSW

POPACC

SETBET0

RETI

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;时钟调整程序;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;

SETMM:

cLRET0

CLRTR0

LCALLDL1S

JBP3.2,CLOSEDIS

MOVR2,#06H

SETBET1

SETBTR1

SET2:

JNBP3.2,SET1

SETB00H

SET4:

JBP3.2,SET3

LCALLDL05S

JNBP3.2,SETHH

MOVR0,#77H;加1分程序

LCALLADD1

MOVA,R3

CLRC

CJNEA,#60H,HHH

HHH:

JCSET4

LCALLCLR0

CLRC

AJMPSET4

CLOSEDIS:

SETBET0

SETBTR0

CLOSE:

JBP3.2,CLOSE

LCALLDISPLAY

JBP3.2,CLOSE

WAITH:

JNBP3.2,WAITH

LJMPSTART1

SETHH:

CLR00H

SETHH1:

JNBP3.2,SET5

SETB01H

SET6:

JBP3.2,SET7

LCALLDL05S

JNBP3.2,SETOUT

MOVR0,#79H

LCALLADD1

MOVA,R3

CLRC

CJNEA,#24H,HOUU

HOUU:

JCSET6

LCALLCLR0

AJMPSET6

SETOUT:

JNBP3.2,SETOUT1

LCALLDISPLAY

JNBP3.2,SETOUT

CLR01H

CLR00H

CLR02H

CLRTR1

CLRET1

SETBTR0

SETBET0

LJMPSTART1

SET1:

LCALLDISPLAY

AJMPSET2

SET3:

LCALLDISPLAY

AJMPSET4

SET5:

LCALLDISPLAY

AJMPSETHH1

SET7:

LCALLDISPLAY

AJMPSET6

SETOUT1:

LCALLDISPLAY

AJMPSETOUT

;

调整通过判断按键按下时间的长短来判断是调小时还是调分,通过调用闪烁程序可以判断当前状态是调整小时或是调整分钟。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;闹铃时钟调整程序;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DSETMM:

CLRET0

CLRTR0

SETB04H

LCALLDDL1S

JBP3.3,DCLOSEDIS

MOVR2,#06H

SETBET1

SETBTR1

DSET2:

JNBP3.3,DSET1

SETB03H

DSET4:

JBP3.3,DSET3

LCALLDDL05S

JNBP3.3,DSETHH

MOVR0,#37H;加1分程序

LCALLADD1

MOVA,R3

CLRC

CJNEA,#60H,DHHH

DHHH:

JCDSET4

LCALLCLR0

CLRC

AJMPDSET4

DCLOSEDIS:

SETBET0

SETBTR0

DCLOSE:

JBP3.3,DCLOSE

LCALLDISPLAY2

JBP3.3,DCLOSE

DWAITH:

JNBP3.3,DWAITH

LJMPSTART1

DSETHH:

CLR03H

DSETHH1:

JNBP3.3,DSET5

SETB06H

DSET6:

JBP3.3,DSET7

LCALLDDL05S

JNBP3.3,DSETOUT

MOVR0,#39H

LCALLADD1

MOVA,R3

CLRC

CJNEA,#24H,DHOUU

DHOUU:

JCDSET6

LCALLCLR0

AJMPDSET6

DSETOUT:

JNBP3.3,DSETOUT1

LCALLDISPLAY2

JNBP3.3,DSETOUT

CLR06H

CLR03H

CLR05H

CLR04H

CLRTR1

CLRET1

SETBTR0

SETBET0

LJMPSTART1

DSET1:

LCALLDISPLAY2

AJMPDSET2

DSET3:

LCALLDISPLAY2

AJMPDSET4

DSET5:

LCALLDISPLAY2

AJMPDSETHH1

DSET7:

LCALLDISPLAY2

AJMPDSET6

DSETOUT1:

LCALLDISPLAY2

AJMPDSETOUT

设置通过判断按键按下时间的长短来判断是设置小时还是设置分钟,通过调用闪烁程序可以判断当前状态是设置小时或是设置分钟。

 

4Proteus软件仿真

正常走时的仿真图(如图8)

图8

定时时间到灯亮时的仿真图(如图9,图10)

图9

图10

 

5课程设计体会

当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。

单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

它在科学技术的发展与生活中的重要性随着时间的发展越来越显著。

通过这次单片机课程设计我对常用的单片机的工作原理与设置应用有了具体的操作上的认识。

对于程序中编程过程掌握欠缺的地方在此次单片机的课程设计中得到很大的提高。

对于指令的认识与运用在这次课程设计中有了更多的认识。

并且对PROTEUS软件与WAVE软件的应用得到了掌握。

并且通过这次单片机课程设计我深刻的感受到自己在编程以及硬件上的差距。

虽然实现了老师对这个课程设计的基本要求,但是对于编程过程中的许多细节上的东西处理的不好,以致在数码管的刚开始的显示中显示有点混乱,只有在若干次的按键才能正常显示。

并且开始的正常走时必须在定时的前提下才能正常走时。

我的这次课设存在瑕疵。

通过这次课设让我更深刻的感受到单片机是与实践是紧密联系在一起的.因此我更要在以后的学习中注重对这方面能力的培养!

为走向工作岗位增加自己的竞争力,也为更好的适应社会与时代的发展做准备!

参考文献

期刊论文:

[1]金素华,张尉.单片机调试方法的讨论.电子世界,2004,25(4):

34-65

[2]宋凤娟,廉文利,付云强.单片机89C51在调速系统中的应用.微计算机信息,2007,12(6):

113-114

书、专著:

[1]余发山.单片机原理及应用技术.中国矿业大学出版社,2003,21-30

[2]何立民编著.单片机中级教程(原理与应用).北京:

北京航天大学出版社,2000.78-100

[3]张迎新编著.单片微型计算机原理应用及接口技术.北京:

国防工业出版社,1993.67-89

电子文献:

[1]步步鱼.单片机AT89C51介绍.

2007-05-20/2007-08-06

[2]海子.同相三态双向总线收发器74LS245简介.

2007-04-12/2007-08-06

 

附1:

源程序代码

;显示缓冲单元在70H—75H,70H—71H显示秒,72H—73H显示分,74H—75H显示时

;定时缓冲单元在30H——35H,30H-31H显示秒,32H-33H显示分,34H-35H显示小时

;时间计数单元在70H—71H(秒)、76H—77H(分)、78H—79H(时),7AH单元放熄;灭符(#0AH)

;计数单元采用BCD码计数,定时器T0设置为50MS溢出中断,为秒计数用,定时器T1;为调整时闪烁用

;P3.2为调整按钮,P1口为字符输出口,采用共阳显示管。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;中断入口程序;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG0000H

LJMPSTART

ORG0003H

RETI

ORG000BH

LJMPINTT0

ORG0013H

RETI

ORG001BH

LJMPINTT1

ORG0023H

RETI

ORG002BH

RETI

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;主程序;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

START:

MOVR0,#70H

MOVR7,#0BH

MOV20H,#00H

CLEARDISP:

MOV@R0,#00H

INCR0

DJNZR7,CLEARDISP

MOV7AH,#0AH

MOV3AH,#0AH

MOVTMOD,#11H

MOVTL0,#0B0H

MOVTH0,#3CH

MOVTL1,#0B0H

MOVTH1,#3CH

SETBEA

SETBET0

SETBTR0

MOVR4,#14H

start1:

LCALLDISPLAY

JNBP3.2,SETMM1

JNBP3.3,DSETMM1

SJMPStart1

SETMM1:

LJMPSETMM

DSETMM1:

LJMPDSETMM

;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1