基于单片机课程设计时钟已实现.docx

上传人:b****3 文档编号:4953878 上传时间:2023-05-07 格式:DOCX 页数:18 大小:156.90KB
下载 相关 举报
基于单片机课程设计时钟已实现.docx_第1页
第1页 / 共18页
基于单片机课程设计时钟已实现.docx_第2页
第2页 / 共18页
基于单片机课程设计时钟已实现.docx_第3页
第3页 / 共18页
基于单片机课程设计时钟已实现.docx_第4页
第4页 / 共18页
基于单片机课程设计时钟已实现.docx_第5页
第5页 / 共18页
基于单片机课程设计时钟已实现.docx_第6页
第6页 / 共18页
基于单片机课程设计时钟已实现.docx_第7页
第7页 / 共18页
基于单片机课程设计时钟已实现.docx_第8页
第8页 / 共18页
基于单片机课程设计时钟已实现.docx_第9页
第9页 / 共18页
基于单片机课程设计时钟已实现.docx_第10页
第10页 / 共18页
基于单片机课程设计时钟已实现.docx_第11页
第11页 / 共18页
基于单片机课程设计时钟已实现.docx_第12页
第12页 / 共18页
基于单片机课程设计时钟已实现.docx_第13页
第13页 / 共18页
基于单片机课程设计时钟已实现.docx_第14页
第14页 / 共18页
基于单片机课程设计时钟已实现.docx_第15页
第15页 / 共18页
基于单片机课程设计时钟已实现.docx_第16页
第16页 / 共18页
基于单片机课程设计时钟已实现.docx_第17页
第17页 / 共18页
基于单片机课程设计时钟已实现.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于单片机课程设计时钟已实现.docx

《基于单片机课程设计时钟已实现.docx》由会员分享,可在线阅读,更多相关《基于单片机课程设计时钟已实现.docx(18页珍藏版)》请在冰点文库上搜索。

基于单片机课程设计时钟已实现.docx

基于单片机课程设计时钟已实现

 

湖南第一师范学院

课程设计

 

课程

单片机原理与应用

题目

基于单片机的数字钟设计

学生姓名

xxxx

学号

xxxx

指导教师

xxxx

系(部)

信息科学与工程系

专业班级

应用电子技术一班

完成时间

2011年12月26日

 

目录

第1章绪论2

第2章设计内容3

第3章MCS-51单片机系统简介3

第4章课程设计原理5

第5章课程设计代码7

第6章仿真与编译13

第7章设计总结15

参考文献:

15

附录:

16

 

基于LED的数字时钟设计

摘要:

近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

关键字:

单片机时钟设计MC51

第1章绪论

单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快、单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。

由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。

这次毕业设计通过对它的学习、应用,以AT89C51芯片为核心,加以辅助电路,设计了一个简易的电子时钟,它由直流电源供电,通过数码管能够准确显示时间。

数字时钟是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,各种体育赛事及我们每个人的日常生活中都发挥着重要的作用。

本系统是基于AT89C51单片机设计的一个具有四位数码管显示的数字时实时钟,该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。

数字单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。

在这几方面,较为典型地说明了数字单片机的水平。

在目前,用户对单片机的需要越来越多,但是,要求也越来越高。

下面分别就这几个方面说明单片机的技术进步状况。

 

第2章设计内容

利用单片机的定时/计数器,中断系统,以及键盘和LED显示器进行设计。

在数码管显示器上实现电子时钟,显示格式为00-00-00,并且能进行设置时间和整点提示、提示功能使能控制。

 

第3章MCS-51单片机系统简介

MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。

INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。

以后我们将用89C51、89S51来完成一系列的实验。

MCS-51系列单片机

MCS-51系列单片机分为两大系列,即51子系列与52子系列。

51子系列:

基本型,根据片内ROM的配置,对应的芯片为8031、8051、8751、8951

52子系列:

增强型,根据片内ROM的配置,对应的芯片为8032、8052、8752、8952

这两大系列单片机的主要硬件特性如下表:

上表中可以看到,8031、8031、8032、80C32片内是没有ROM的,对应着上表看,我们可以发现,51系列的单片机的RAM大小为128B,52系列的RAM大小为256B,51系列的计数器为两个16位的,52系列的计数器为三个16位计数器。

51系列的中断源为5个,52系列的中断源为6个。

MCS-51单片机内部定时器/计数器中断系统简介

5个中断源的符号、名称及产生的条件如下。

INT0:

外部中断0,由P3.2端口线引入,低电平或下跳沿引起。

INT1:

外部中断1,由P3.3端口线引入,低电平或下跳沿引起。

T0:

定时器/计数器0中断,由T0计满回零引起。

T1:

定时器/计数器l中断,由T1计满回零引起。

TI/RI:

串行I/O中断,串行端口完成一帧字符发送/接收后引起。

MCS-51单片机中断系统的结构

第4章课程设计原理

单片机控制的数字钟的硬件结构与软件设计,给出了汇编语言源程序。

此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。

显示器件选用LED七段数码管。

在显示电路输出的驱动下,显示出清晰、直观的数字符号。

针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。

使用动态数码显示的方法,运用独立式按键识别过程,按“时”,“分”,“秒”数据送出显示处理方法,另外时钟还设置专门的针对于整点报时的按键,以时钟个位变化为标志当前后两位的值不相等时将蜂鸣器置高电平时蜂鸣器响。

具体硬件整体框图如下:

4.1数值时钟整体框图

软件设计框图如下:

4.2软件简单流程图

第5章课程设计代码

;简要说明:

实现24小时制电子钟,6位数码管显示,显示时分秒

;显示格式:

00-00-00

;P0口输出段选信号,P2口输出位选信号,到整点进行提示提示时间为30s

;P1.0为调时按钮,P1.1为调分按钮;P1.3为秒复位晶振12M

ORG0000H;程序入口地址

LJMPSTART

ORG000BH;定时器0中断入口地址

LJMPTIMER_0

K1BITP3.7;定义调时按键

K2BITP3.6;定义调分按键

K3BITP3.5;秒清零

K4BITP3.4;停止蜂鸣器

FLAGBIT37H;蜂鸣器响标志位1为蜂鸣器没有叫,0代表蜂鸣器正在叫

MODEBIT38H;报时使能位1为能够报时0为否

FLAG1BIT38H

START:

MOVTMOD,#01H;定时器0,工作模式1

MOVTH0,#03CH

MOVTL0,#0B0H;赋初值,定时50ms

SETBEA;开中断总开关

SETBTR0;开启定时器0

SETBET0;定时器0中断允许位

MOVR6,#0;用于控制走时的基准时钟源,计中断次数

MOVR5,#0;R5用于控制扫描按键的时间间隔

MOV20H,#0;秒个位寄存器清零

MOV21H,#0;秒十位寄存器清零

MOV22H,#0;分个位寄存器清零

MOV23H,#0;分十位寄存器清零

MOV24H,#0;时个位寄存器清零

MOV25H,#0;时十位寄存器清零

CLRP0.0;将蜂鸣器置0停止

SETBFLAG;将蜂鸣器响清零

SETBMODE;默认置为能够报时

MOV30H,24H

MOV31H,30H

LJMPDISPLAY

TIMER_0:

CLREA

INCR6

ADD_TIME:

CJNER6,#20,NEXT;定时器中断20次,1秒到

MOVR6,#0

INC20H

MOVA,20H

CJNEA,#10,NEXT;如果秒个位等于10,清零

MOV20H,#00H

INC21H

MOVA,21H

CJNEA,#6,NEXT;如果秒十位等于6,清零

MOV21H,#00H

INC22H

NEXT:

MOVTH0,#03CH

MOVTL0,#0B0H;重新赋初值,定时50ms

SETBEA

RETI

DISPLAY:

LCALLTIME

INCR5

MOVDPTR,#TABLE

MOVA,20H

MOVCA,@A+DPTR

MOVP1,A

CLRP2.0

LCALLDELAY

SETBP2.0;显示秒个位

MOVA,21H

MOVCA,@A+DPTR

MOVP1,A

CLRP2.1

LCALLDELAY

SETBP2.1;显示秒十位

MOVDPTR,#TABLE

MOVA,22H

MOVCA,@A+DPTR

MOVP1,A

CLRP2.3

LCALLDELAY

SETBP2.3;显示分个位

MOVDPTR,#TABLE

MOVA,23H

MOVCA,@A+DPTR

MOVP1,A

CLRP2.4

LCALLDELAY

SETBP2.4;显示分十位

MOVP1,#0BFH

CLRP2.2

LCALLDELAY

SETBP2.2

MOVP1,#0BFH

CLRP2.5

LCALLDELAY

SETBP2.5

MOVDPTR,#TABLE

MOVA,24H

MOVCA,@A+DPTR

MOVP1,A

CLRP2.6

LCALLDELAY

SETBP2.6;显示时个位

MOVDPTR,#TABLE;该位使用TABLE1以消除前置0

MOVA,25H

MOVCA,@A+DPTR

MOVP1,A

CLRP2.7

LCALLDELAY

SETBP2.7;显示时十位

MOVA,31H

CJNEA,30H,CONTINUE

JNBFLAG,COMPARE;如果蜂鸣器正在响则比较

PTF:

CJNER5,#80,DISPLAY;当R5到4时,扫描按键

MOVR5,#0

LJMPKEY_SCAN

COMPARE:

MOVA,20H

SUBBA,33H

JZCONTINUE1

MOV33H,20H

CPLP0.0

CONTINUE1:

MOVA,21H

SUBBA,32H

CJNEA,#3,PTF

SETBFLAG

CLRP0.0

LJMPPTF

CONTINUE:

JNBMODE,NRS

MOV31H,30H

MOV33H,20H

SETBP0.0

SETBFLAG1

CLRFLAG;设置标志位为0

MOV32H,21H

NRS:

CJNER5,#80,EXIT0;当R5到4时,扫描按键

MOVR5,#0

KEY_SCAN:

JNBK1,ADD_HOUR

JNBK2,ADD_MIN

JNBK3,CLEAR

JNBK4,STOP

LJMPDISPLAY;无键按下,跳至走时

EXIT0:

LJMPDISPLAY

ADD_HOUR:

INC24H;小时加1

LJMPDISPLAY;更新

ADD_MIN:

INC22H;分钟加1

LJMPDISPLAY;更新

CLEAR:

;秒清零

MOV20H,#00H

MOV21H,#00H

LJMPDISPLAY

STOP:

JBFLAG,OFF

CLRP0.0;

SETBFLAG;

LJMPDISPLAY

OFF:

JNBMODE,OPEN

CLRMODE;清除报时控制位

MOVR0,#0EFH

LOOP1:

MOVR1,#03H

LOOP11:

MOVP1,#0C0H

CLRP2.5

LCALLDELAY

SETBP2.5

MOVP1,#8EH

CLRP2.4

LCALLDELAY

MOVP1,#8EH

SETBP2.4

CLRP2.3

LCALLDELAY

SETBP2.3

DJNZR1,LOOP11

DJNZR0,LOOP1

LJMPDISPLAY

OPEN:

SETBMODE

MOVR0,#0EFH

LOOP2:

MOVR1,#03H

LOOP21:

MOVP1,#0C0H

CLRP2.4

LCALLDELAY

SETBP2.4

MOVP1,#0C8H

CLRP2.3

LCALLDELAY

SETBP2.3

DJNZR1,LOOP21

DJNZR0,LOOP2

LJMPDISPLAY

DELAY:

MOVR7,#150;扫描延时

DJNZR7,$

RET

 

TIME:

MIN:

MOVA,22H

CJNEA,#10,HOUR;如果分个位等于10,清零

MOV22H,#00H

INC23H

MOVA,23H

CJNEA,#6,HOUR;如果分十位等于6,清零

MOV23H,#00H

INC24H

MOV30H,24H

HOUR:

MOVA,25H

CJNEA,#2,LOOP;如果时十位等于2,检查时个位

MOVA,24H

CJNEA,#4,EXIT;如果时个位等于4,清零

MOV24H,#00H;清零时个位

MOV25H,#00H;清零时十位

LJMPEXIT

LOOP:

MOVA,24H

CJNEA,#10,EXIT;如果时个位等于10,清零

MOV24H,#00H

INC25H

LJMPEXIT

EXIT:

RET

TABLE:

;数码管字形显示编码表

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;字形显示编码

END;程序结束

第6章仿真与编译

编译

正常时仿真:

当需要关闭整点提示时显示器显示如下:

打开时显示如下:

 

第7章设计总结

虽然毕业设计内容繁多,过程繁琐但我的收获却更加丰富。

通过这次对数字钟的设计,我摆脱了单纯的理论知识学习状态,和实际操作的结合锻炼了我。

综合运用了所学的专业基础知识,解决实际使用过程中存在的问题,同时也提高我查阅文献资料、设计规范以及电脑制图等其他专业能力水平。

通过整体的设计,局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,并且磨练了我的意志力,抗压能力及耐力也都得到了不同程度的提升。

通过对系统的分析与设计过程,我学到了许多新的知识,并且对我在这几年所学习机电和电子方面的专业知识进行巩固。

本次毕业设计能顺利如期的完成给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心。

参考文献:

《单片机原理及应用技术》李全利、《数字电子技术基础》杨建良、《模拟电子技术》胡宴如第二版。

 

附录:

参考元器件清单:

单片机:

80C521片

三极管9014NPN型1个

74ls04非门:

2片

按键:

BUTTON4个

电阻:

RES若干

电容:

CAP30pF,10uF等若干

晶振:

CRYSTAL12MHZ1个

8连七段LED数码管:

1个

电源:

POWER+5V

 

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

当前位置:首页 > 解决方案 > 学习计划

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

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