单片机课程设计报告单片机数字时钟课程设计报告.docx

上传人:b****5 文档编号:11569945 上传时间:2023-03-19 格式:DOCX 页数:26 大小:247.16KB
下载 相关 举报
单片机课程设计报告单片机数字时钟课程设计报告.docx_第1页
第1页 / 共26页
单片机课程设计报告单片机数字时钟课程设计报告.docx_第2页
第2页 / 共26页
单片机课程设计报告单片机数字时钟课程设计报告.docx_第3页
第3页 / 共26页
单片机课程设计报告单片机数字时钟课程设计报告.docx_第4页
第4页 / 共26页
单片机课程设计报告单片机数字时钟课程设计报告.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

单片机课程设计报告单片机数字时钟课程设计报告.docx

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

单片机课程设计报告单片机数字时钟课程设计报告.docx

单片机课程设计报告单片机数字时钟课程设计报告

惠州学院课程设计报告

单片机数字时钟课程设计报告

 

姓名:

班别:

学号:

 

设计任务:

1、 能够实现时间的精确显示,以数字的形式显示时间的时、分、秒。

 

2、 时间以24小时为进制,能够通过相应按键来调节时钟时间。

 

3、 能够实现按键启动与停止功能。

 

 

4、 能够实现秒表功能。

摘要

此电子钟采用c8951芯片,同时使用8位8段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求。

该电子钟有四个按键,进行相应的操作就可实现时间调整、年月查看与复位功能 。

整个过程就是先设计和焊接好硬件电路,再通过汇编语言编写应用程序来实现我们需要的功能,这期间,进行的软件仿真和调试是本设计的重点和难点。

关键词:

电子时钟、c8951芯片、程序设计、仿真调试

1.系统的功能分析与设计方案

1.1系统的主要功能

1.2数码管显示工作原理

1.3电路硬件设计

1.4各电路工作原理

 1.5设计原理框图

 1.6主芯片工作原理图

.1.7材料清单

1.8电路原理图及实物图

2. 软件设计

 2.1完整源程序

2.2系统安装与调试

 2.3硬件电路的安装

 2.4软件调试

2.5课程设计总结

3.参考文献

4.致谢

 

1.系统的功能分析与设计方案 

1.1系统的主要功能 

 利用89c51单片机内部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。

设计的电子时钟通过数码管显示,并能通过按键实现设置时间和复位控制等。

 

此外还要实现对时间的调整功能,89c51的P1.0、P1.1、RST外接三个独立按键,当按下P1.0按键时,系统进入调时间的状态或启动时间显示的功能;当按下P1.1按键时,对显示的数码管进行加一的功能,达到调整时间的目的;当按下RST按键时,实现对电子时钟进行复位的功能。

系统的设计方案  

整个系统采用应用广泛的AT89S52作为时钟控制芯片,利用单片机内部的定时器\计数器来实现的,它的处理过程如下:

首先设定单片机内部的一个定时器\计数器工作于定时方式,对机器周期计数形成基准时间,然后用另一个定时器\计数器或软件计数的方法对基准时间计数形成秒,秒计60次形成分,分计60次形成小时,小时计24次则计满一天。

然后通过数码管把它们的内容在相应位置显示出来即可。

 

数码管显示可以采用静态显示方法或动态显示方法。

静态显示方法需要数据锁存器等硬件,接口复杂,时钟显示一般用6个或8个数码管。

由于系统没有其他的复杂的任务处理,而且显示的时钟信息随时都可能变化,一般采用动态显示方式。

动态显示方法线路相对简单,但需动态扫描,扫描频率要大于人眼视觉暂留频率,信息看起来才稳定。

译码方式可分为软件译码和硬件译码,软件译码通过译码程序查得显示信息的字段码;硬件译码通过硬件译码器得到显示信息的字段码,实际中通常采用软件译码。

 

在具体处理时,定时器计数器采用中断方式工作,对时钟的形成在中断服务程序中实现。

在主程序中只需对定时器计数器初始化、调用显示子程序和控制子程序。

另外,为了使用方便,设计了简单的按键,可以通过按键实现时间调整和复位。

 

1.2数码管显示工作原理 

 

数码管是一种把多个LED显示段集成在一起的显示设备。

有两种类型,一种是共阳型,一种是共阴型。

共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。

共阴型就是把多个LED显示段的阴极接在一起,即为公共商。

阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。

通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中DP 是小数点位段。

而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。

即,所有的A段都会连在一起,其它的段也是如此,这是实际最常用的用法。

数码管显示方法可分为静态显示和动态显示两种。

 

静态显示:

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

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

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

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

 

动态显示:

所谓动态显示,就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。

利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。

显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。

调整参数可以实现较高稳定度的显示。

动态显示节省了I/O口,降低了能耗。

 

从节省I/O口和降低能耗出发,本设计采用动态显示。

1.3 电路硬件设计 

 

1.31 设计原理框图 

 

此设计原理框图如图1所示,此电路包括以下六个部分:

单片机,按键,指示灯,复位电路,晶振及显示电路。

 

       

 设计原理框图 

按键

单片机

显示电路

晶振

复位电路

指示灯

 

电路设计分为复位电路、指示灯电路、按键电路、时钟电路及数码管连接电路,总电路工作原理图如下图所示

89c51芯片

该系列单片机是采用高性能的静态80C51设计由先进CMOS工艺制造并带有非易失性Flash程序存储器

全部支持12时钟和6时钟操作

 

P89C51X2和P89C52X2/54X2/58X2分别包含128字节和256字节RAM32条I/O口线3个16位

定时/计数器6输入4优先级嵌套中断结构1个串行I/O口可用于多机通信I/O扩展或全双工UART

以及片内振荡器和时钟电路 

此外由于器件采用了静态设计可提供很宽的操作频率范围频率可降至0可实现两个由软件选择的节电模式

空闲模式和掉电模式空闲模式冻结CPU但RAM定时器串口和中断系统仍然工作

掉电模式保存RAM的内容

但是冻结振荡器导致所有其它的片内功能停止工作

由于设计是静态的

时钟可停止而不会丢失用户数据

运行可从时钟停止处恢复

 

4个中断优先级 y󰀃6个中断源 4个8位I/O口 

全双工增强型UART ―帧数据错误检测 ―自动地址识别 

󰀃3个16位定时/计数器T0T1

标准80C51

和增加的T2

捕获和比较

 

可编程时钟输出 异步端口复位 

低EMI (禁止ALE以及6时钟模式) 掉电模式可通过外部中断唤醒 

其引脚图如下所示

材料清单       

8051芯片1个

瓷介电容2个

极性电容1个

芯片底座1个

4位7段数码管2个

10K欧电阻1个

电池盒1个

电池2个

独立按键5个

自锁开关1个

排阻1个

12M晶振1个

2软件设计 

 

2.1 软件设计流程 

 

电子时钟的软件系统由主程序和子程序组成,主程序程序包含初始化参数设置、按键处理、数码管显示模块等, 

(1)主程序 

主程序先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有键按下,则转入相应的功能程序。

主程序执行流程如图

 

2)定时器/计数器T0中断程序 

定时器/计数器T0用于时间计时。

选择方式1,重复定时,定时时间设为20ms,定时时间到则中断,在中断程序中用一个计数器对20ms计数,计50次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。

在对各单元计数的同时,把它们的值放到存储单元的指定位置。

定时器/计数器T0中断程序流程图如图

 

SETBIT0

SETBTR0

SETBPT0

MAIN:

CLRP3.7

JNBP1.7,LOOP

LCALLDISPLAY

LCALLKEY

SETBEX0

LJMPMAIN

LOOP:

MOVS6,#09H

ZN:

MOVS7,#0FFH

SETZH:

CLRP3.2

SETBP3.2

LCALLKEY

DJNZS7,SETZH

DJNZS6,ZN

LJMPMAIN

 

SHOW:

PUSHACC

PUSHPSW

LCALLDISPLAY1

POPPSW

POPACC

RETI

ZDN:

PUSHACC

PUSHPSW

INCR7

CJNER7,#200,ZD

MOVR7,#00H

INCS0

MOVA,S0

CJNEA,#20,ZD

MOVS0,#00H

INCR0

CJNER0,#60,ZD

MOVR0,#00H

INCR1

CJNER1,#60,ZD

 完整源程序:

S0EQU31H

S1EQU32H

S2EQU33H

S3EQU34H

S4EQU35H

S5EQU36H

S6EQU37H

S7EQU38H

S8EQU39H

S9EQU40H

S10EQU41H

ORG0000H

AJMPSTART

ORG000BH

AJMPZDN

ORG0003H

LJMPSHOW

ORG0045H

START:

MOVR0,#57

MOVR1,#59

MOVR2,#12

MOVR3,#20

MOVR4,#11

MOVR5,#15

MOVR6,#20

MOVR7,#00H

MOVS0,#00H

MOVS1,#00H

MOVS2,#00H

MOVS3,#00H

MOVS4,#00H

MOVS5,#00H

MOVS6,#00H

MOVS7,#00H

MOVS8,#00H

MOVS9,#00H

MOVS10,#00H

MOVTMOD,#02H

MOVTH0,#06H

MOVTL0,#06H

MOVIE,#83H

L1:

MOVA,R5

MOVB,#4

DIVAB

MOVA,B

CJNEA,#0,PINGNIAN

L2:

CJNER3,#30,L3

MOVR3,#01H

INCR4

PINGNIAN:

CJNER3,#29,L3

MOVR3,#01H

INCR4

L3:

RET

DISPLAY:

MOVDPTR,#TAB

CJNER0,#0,BB

CJNER1,#0,BB

SETBP3.7

LCALLDELAY10MS

CLRP3.7

BB:

MOVA,R0

MOVB,#10

DIVAB

MOVS9,A

MOVS10,B

MOVA,B

MOVCA,@A+DPTR

MOVP0,A

CLRP2.7

LCALLDELAY

SETBP2.7

MOVA,S9

MOVCA,@A+DPTR

MOVP0,A

CLRP2.6

LCALLDELAY

SETBP2.6

MOVA,#10

MOVCA,@A+DPTR

MOVP0,A

MOVR1,#00H

INCR2

CJNER2,#24,ZD

MOVR2,#00H

INCR3

CJNER4,#2,LOOP31

LCALLJUDGE_Y

LCALLZD

LOOP31:

CJNER4,#4,V1

AJMPSMALL

V1:

CJNER4,#6,V2

AJMPSMALL

V2:

CJNER4,#9,V3

AJMPSMALL

V3:

CJNER4,#11,MAX

SMALL:

CJNER3,#31,ZD

MOVR3,#01H

INCR4

MAX:

CJNER3,#32,ZD

MOVR3,#01H

INCR4

CJNER4,#12,ZD

MOVR4,#01H

INCR5

CJNER5,#99,ZD

MOVR5,#00H

INCR6

CJNER6,#99,ZD

MOVR6,#00H

ZD:

POPPSW

POPACC

RETI

JUDGE_Y:

MOVA,R5

CJNEA,#0,L1

MOVA,R6

MOVB,#4

DIVAB

MOVA,B

CJNEA,#0,PINGNIAN

LJMPL2

MOVCA,@A+DPTR

MOVP0,A

CLRP2.0

LCALLDELAY

SETBP2.0

RET

TAB:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H;

 

DISPLAY1:

MOVDPTR,#TAB1

MOVA,R3

MOVB,#10

DIVAB

MOVS9,A

MOVS10,B

MOVA,B

MOVCA,@A+DPTR

MOVP0,A

CLRP2.7

LCALLDELAY

SETBP2.7

MOVA,S9

MOVCA,@A+DPTR

MOVP0,A

CLRP2.6

LCALLDELAY

SETBP2.6

MOVA,#10

MOVCA,@A+DPTR

MOVP0,A

CLRP2.5

LCALLDELAY

SETBP2.5

 

MOVA,R4

MOVB,#10

DIVAB

MOVS9,A

MOVS10,B

CLRP2.5

LCALLDELAY

SETBP2.5

 

MOVA,R1

MOVB,#10

DIVAB

MOVS9,A

MOVS10,B

MOVA,B

MOVCA,@A+DPTR

MOVP0,A

CLRP2.4

LCALLDELAY

SETBP2.4

MOVA,S9

MOVCA,@A+DPTR

MOVP0,A

CLRP2.3

LCALLDELAY

SETBP2.3

 

MOVA,#10

MOVCA,@A+DPTR

MOVP0,A

CLRP2.2

LCALLDELAY

SETBP2.2

MOVA,R2

MOVB,#10

DIVAB

MOVS9,A

MOVS10,B

MOVA,B

MOVCA,@A+DPTR

MOVP0,A

CLRP2.1

LCALLDELAY

SETBP2.1

MOVA,S9

MOVS10,B

MOVA,B

MOVCA,@A+DPTR

MOVP0,A

CLRP2.1

LCALLDELAY

SETBP2.1

MOVA,S9

MOVCA,@A+DPTR

MOVP0,A

CLRP2.0

LCALLDELAY

SETBP2.0

RET

TAB1:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,80H;

 

KEY:

MOVP1,#0FFH

MOVA,P1

CPLA

ANLA,#70H

JZRET1

LCALLDELAY10MS

MOVA,P1

CPLA

ANLA,#70H

JZRET1

JBACC.4,MKEY

JBACC.5,ADDKEY

JBACC.6,DECKEY

RET1:

RET

 

MKEY:

CLRTR0

LCALLK1

LJMPDISPLAY

ADDKEY:

LCALLK2

LJMPDISPLAY

DECKEY:

LCALLK3

LJMPDISPLAY

MOVA,B

MOVCA,@A+DPTR

MOVP0,A

CLRP2.5

LCALLDELAY

SETBP2.5

MOVA,S9

MOVCA,@A+DPTR

MOVP0,A

CLRP2.4

LCALLDELAY

SETBP2.4

 

MOVA,#10

MOVCA,@A+DPTR

MOVP0,A

CLRP2.3

LCALLDELAY

SETBP2.3

MOVA,R5

MOVB,#10

DIVAB

MOVS9,A

MOVS10,B

MOVA,B

MOVCA,@A+DPTR

MOVP0,A

CLRP2.3

LCALLDELAY

SETBP2.3

MOVA,S9

MOVCA,@A+DPTR

MOVP0,A

CLRP2.2

LCALLDELAY

SETBP2.2

MOVA,R6

MOVB,#10

DIVAB

MOVS9,A

N8:

CJNER4,#11,MAX1

SMALL1:

CJNER3,#30,LOOP9

MOVR3,#01H

LJMPLOOP15

LOOP9:

INCR3

LJMPLOOP15

MAX1:

CJNER3,#31,LOOP35

MOVR3,#01H

LJMPLOOP15

LOOP35:

INCR3

LJMPLOOP15

LOOP8:

CJNEA,#5,LOOP10

CLREX0

CJNER2,#23,LOOP11

MOVR2,#00H

LJMPLOOP15

LOOP11:

INCR2

LJMPLOOP15

LOOP10:

CJNEA,#6,LOOP12

CJNER1,#59,LOOP13

MOVR1,#00H

LJMPLOOP15

LOOP13:

INCR1

LJMPLOOP15

LOOP12:

CJNEA,#7,LOOP15

CJNER0,#59,LOOP14

MOVR0,#00H

LJMPLOOP15

LOOP14:

INCR0

LOOP15:

RET

 

JUDGE_Y1:

MOVA,R5

CJNEA,#0,N1

MOVA,R6

MOVB,#4

DIVAB

MOVA,B

CJNEA,#0,PINGNIAN1

LJMPN2

K1:

MOVA,S8

CJNEA,#9,LOOP1

MOVS8,#00H

LJMPFH

LOOP1:

INCS8

CJNEA,#8,FH

SETBTR0

FH:

RET

 

K2:

MOVA,S8

CJNEA,#1,LOOP2

CJNER6,#99,LOOP3

MOVR6,#00H

LJMPLOOP15

LOOP3:

INCR6

LJMPLOOP15

LOOP2:

CJNEA,#2,LOOP4

CJNER5,#99,LOOP5

MOVR5,#00H

LJMPLOOP15

LOOP5:

INCR5

LJMPLOOP15

LOOP4:

CJNEA,#3,LOOP6

CJNER4,#12,LOOP7

MOVR4,#01H

LJMPLOOP15

LOOP7:

INCR4

LJMPLOOP15

LOOP6:

CJNEA,#4,LOOP8

CJNER4,#2,LOOP32

LCALLJUDGE_Y1

LJMPLOOP15

LOOP32:

CJNER4,#4,N6

AJMPSMALL1

N6:

CJNER4,#6,N7

AJMPSMALL1

N7:

CJNER4,#9,N8

AJMPSMALL1

AJMPSMALL2

M6:

CJNER4,#6,M7

AJMPSMALL2

M7:

CJNER4,#9,M8

AJMPSMALL2

M8:

CJNER4,#11,MAX2

SMALL2:

CJNER3,#01,LOOP23

MOVR3,#30

LJMPLOOP30

LOOP23:

DECR3

LJMPLOOP30

MAX2:

CJNER3,#01,LOOP34

MOVR3,#31

LJMPLOOP30

LOOP34:

DECR3

LJMPLOOP30

LOOP22:

CJNEA,#5,LOOP24

CLREX0

CJNER2,#0,LOOP25

MOVR2,#23

LJMPLOOP30

LOOP25:

DECR2

LJMPLOOP30

LOOP24:

CJNEA,#6,LOOP26

CJNER1,#0,LOOP27

MOVR1,#59

LJMPLOOP30

LOOP27:

DECR1

LJMPLOOP30

LOOP26:

CJNEA,#7,LOOP30

CJNER0,#0,LOOP28

MOVR0,#59

LOOP28:

DECR0

LOOP30:

RET

JUDGE_Y2:

MOVA,R5

CJNEA,#0,M1

MOVA,R6

MOVB,#4

DIVAB

N1:

MOVA,R5

MOVB,#4

DIVAB

MOVA,B

CJNEA,#0,PINGNIAN1

N2:

CJNER3,#29,N3

MOVR3,#01H

LJMPN5

N3:

INCR3

LJMPN5

PINGNIAN1:

CJNER3,#28,N4

MOVR3,#01H

LJMPN5

N4:

INCR3

N5:

RET

 

K3:

MOVA,S8

CJNEA,#1,LOOP16

CJNER6,#0,LOOP17

MOVR6,#99

LJMPLOOP30

LOOP17:

DECR6

LJMPLOOP30

LOOP16:

CJNEA,#2,LOOP18

CJNER5,#0,LOOP19

MOVR5,#99

LJMPLOOP30

LOOP19:

DECR5

LJMPLOOP30

LOOP18:

CJNEA,#3,LOOP20

CJNER4,#01H,LOOP21

MOVR4,#12

LJMPLOOP30

LOOP21:

DECR4

LJMPLOOP30

LOOP20:

CJNEA,#4,LOOP22

CJNER4,#2,LOOP33

LCALLJUDGE_Y2

LJMPLOOP30

LOOP33:

CJNER4,#4,M6

MOVA,B

CJNEA,#0,PINGNIAN2

LJMPM2

M1:

MOVA,R5

MOVB,#4

DIVAB

MOVA,B

CJNEA,#0,PINGNIAN2

M2:

CJNER3,#01H,M3

MOVR3,#29

LJMPM5

M3:

DECR3

LJMPM5

PINGNIAN2:

CJNER3,#01H,M4

MOVR3,#28

LJMPM5

M4:

DECR3

M5:

RET

 

DELAY10MS:

MOVS3,#200

D4:

MOVS4,#200

D3:

DJNZS4,D3

DJNZS3,D4

RET

DELAY:

MOVS1,#5

D1:

MOVS2,#248

D2:

DJNZS2,D2

DJNZS1,D1

RET

 

END

 

课程设计总结与心得:

经过几周的准备与查阅资料,我总算是弄懂了设计的流程与原理。

本设计主分为硬件电路的设计排布与软件部分的编写仿真。

这些都是从课堂上学习与书籍资料查阅而来,不得不说让我懂得了许多。

其中让我更加了解89c51芯片的结构功能,让我学会了运用proteus仿真软件。

虽然在焊接一

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

当前位置:首页 > 经管营销 > 经济市场

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

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