单片机课程设计最终版本.docx

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

单片机课程设计最终版本.docx

《单片机课程设计最终版本.docx》由会员分享,可在线阅读,更多相关《单片机课程设计最终版本.docx(18页珍藏版)》请在冰豆网上搜索。

单片机课程设计最终版本.docx

单片机课程设计最终版本

单片机课程设计报告

题目:

数字时钟

专业:

生产过程自动化

班级:

10自动化4班

姓名:

***************

学号:

10*********************

指导教师:

***********

时间:

2012年06月07日

 

目录

一、课程设计说明2

1-1设计题目2

1-2设计目的2

1-3设计目标2

1-4设计要求2

1-4-1基本要求2

1-4-2扩展部分2

二、系统概述2

2-1概述2

2-2原理框图3

三、原理概述3

3-1硬件3

3-1-1电源模块3

3-1-2主控模块STC89C524

3-1-3键盘电路设计4

3-1-4数码管显示模块及其驱动5

3-1-5LED结构原理图6

3-1-6蜂鸣器驱动模块6

3-2软件7

3-2-1程序流程图7

3-2-2按键读取流程8

3-2-3日历进位判断9

3-2-5P0口对应段码及数值11

四、附件12

4-1原理图12

4-2器件清单13

4-3使用说明书13

4-3-1功能说明13

4-3-2按键说明13

4-3-3时间设置说明14

4-3-4闹钟设置说明14

4-3-5整点报时开关说明14

五、实验总结及感想15

一、课程设计说明

1-1设计题目:

数字时钟

1-2设计目的:

应用单片机控制技术,以STC89C52单片机为核心的电子时钟。

1-3设计目标:

在数码管上显示相应的时间,并通过一个控制键来实现时间的调整。

1-4设计要求

1-4-1基本要求

1.在8位数码管上显示当前时间。

显示格式“时时-分分-秒秒”。

2.利用按键可对时间及闹玲进行设置。

1-4-2扩展部分

1.日历功能(能对年月日与星期进行显示,能自动进行分辨平,闰年以及确定各月天数,并自动调整当前的日期)。

2.闹铃(定时响铃)。

3.整点报时(在6~22点具有整点提示功能,响铃时间为5秒)。

4.贪睡功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调)。

5.按键发音。

二、系统概述

2-1概述

该电子时钟由STC89C52,八段数码管等构成,采用晶振电路作为驱动电路,中断产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天,然后根据平年与闰年的不同确定日期,再根据当日的日期,计算出本日为星期几。

从而达到计时的功能,是人民日常生活补课缺少的工具。

现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时·和分的校对,片选的灵活性好。

2-2原理框图

 

三、原理概述

3-1硬件

3-1-1电源模块

从外部引入4.5V的直流电,为单片机、复位电路提供电源。

3-1-2主控模块STC89C52

STC89C52是一个8位单片机,片内ROM全部采用FLASHROM技术,晶振时钟为12MHz。

STC89C52是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O端口,分别记作P0、P1、P2、P3。

第31引脚需要接高电位使单片机选用内部程序存储器;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS。

3-1-3键盘电路设计

该设计只用了四个键盘,但实现的功能却是比较完善,减少了硬件资源的损耗,该键盘可以实现日期、时间和闹钟的调节以及控制是否闹钟模式。

 

3-1-4数码管显示模块及其驱动

本电路的输出信号为8段数码管的位选和段选信号。

本实验的数码管是共阳的,为了防止段选信号不能驱动数码管,故在P1口连接上拉电阻后,再送段选信号,以提高驱动,位选信号直接从P2口接入,如下图:

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

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

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

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

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

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

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

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

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

静态显示就是数码管的8段输入及其公共端电平一直有效。

动态显示的原理是,各个数码管的相同段连接在一起,共同占用8位段引管线;每位数码管的阳极连在一起组成公共端。

利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。

3-1-5LED结构原理图

LED为发光二极管的简称,起体积小,耗电低,常被用为微型计算机与数字电路的输出装置,以显示信号。

本次试验LED的是以底电平驱动,共阳极的电路连接而成的。

3-1-6蜂鸣器驱动模块

蜂鸣器是一种一体化结构的电子讯响器,蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。

压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。

多谐振荡器由晶体管或集成电路构成。

当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。

压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。

3-2软件

3-2-1程序流程图

 

 

3-2-2按键读取流程

 

3-2-3日历进位判断

流程图如下:

 

首先,要考虑年份是不是闰年,闰年的判断方法是:

将年份除以100,若能整除,则将年份除以400,若还能整除,则为闰年,若不能,则为平年;若不能被100整除,则判断是否能被4整除,若能,则为闰年,若不能则为平年。

只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判断是不是2月,若是则在相应的年中进行日期的增加,若不是则转入平时的月份。

其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月为每月30天。

3-2-4计算某一天是星期几的公式:

星期制度是一种有古老传统的制度。

据说因为《圣经·创世纪》中规定上帝用了六天时间创世纪,第七天休息,所以人们也就以七天为一个周期来安排自己的工作和生活,而星期日是休息日。

从实际的角度来讲,以七天为一个周期,长短也比较合适。

所以尽管中国的传统工作周期是十天(比如王勃《滕王阁序》中说的“十旬休暇”,即是指官员的工作每十日为一个周期,第十日休假),但后来也采取了西方的星期制度。

在日常生活中,我们常常遇到要知道某一天是星期几的问题。

有时候,我们还想知道历史上某一天是星期几。

通常,解决这个方法的有效办法是看日历,但是我们总不会随时随身带着日历,更不可能随时随身带着几千年的万年历。

假如是想在计算机编程中计算某一天是星期几,预先把一本万年历存进去就更不现实了。

这时候是不是有办法通过什么公式,从年月日推出这一天是星期几呢?

W=(Y-1)*365+[(Y-1)/4]-[(Y-1)/100]+[(Y-1)/400]+D.

(1)

其中D是这个日子在这一年中的累积天数。

算出来的W就是公元前1年(或公元0年)12月31日到这一天之间的间隔日数。

把W用7除,余数是几,这一天就是星期几。

比如我们来算2004年5月1日:

W=(2004-1)*365+[(2004-1)/4]-[(2004-1)/100]+[(2004-1)/400]+31+29+31+30+1)

=731702,

731702/7=104528……6,余数为六,说明这一天是星期六。

这和事实是符合的。

  上面的公式

(1)虽然很准确,但是计算出来的数字太大了,使用起来很不方便。

仔细想想,其实这个间隔天数W的用处仅仅是为了得到它除以7之后的余数。

这启发我们是不是可以简化这个W值,只要找一个和它余数相同的较小的数来代替,用数论上的术语来说,就是找一个和它同余的较小的正整数,照样可以计算出准确的星期数。

 

显然,W这么大的原因是因为公式中的第一项(Y-1)*365太大了。

其实,

(Y-1)*365=(Y-1)*(364+1)=(Y-1)*(7*52+1)=52*(Y-1)*7+(Y-1)

这个结果的第一项是一个7的倍数,除以7余数为0,因此(Y-1)*365除以7的余数其实就等于Y-1除以7的余数。

这个关系可以表示为:

(Y-1)*365≡Y-1(mod7).

其中,≡是数论中表示同余的符号,mod7的意思是指在用7作模数(也就是除数)的情况下≡号两边的数是同余的。

因此,完全可以用(Y-1)代替(Y-1)*365,这样我们就得到了那个著名的、也是最常见到的计算星期几的公式:

W=(Y-1)+[(Y-1)/4]-[(Y-1)/100]+[(Y-1)/400]+D.

(2)

  这个公式虽然好用多了。

3-2-5P0口对应段码及数值

P0口对应段码及数值

显示

数字

P0.7

P0.6

P0.5

P0.4

P0.3

P0.2

P0.1

P0.0

16进制代码

dp

g

f

e

d

c

b

a

0

1

1

0

0

0

0

0

0

0xc0

1

1

1

1

1

1

0

0

1

0xf9

2

1

0

1

0

0

1

0

0

0xa4

3

1

0

1

1

0

0

0

0

0xb0

4

1

0

0

1

1

0

0

1

0x99

5

1

0

0

1

0

0

1

0

0x92

6

1

0

0

0

0

0

1

0

0x82

7

1

1

1

1

1

0

0

0

0xf8

8

1

0

0

0

0

0

0

0

0x80

9

1

0

0

1

0

0

0

0

0x90

-

1

0

1

1

1

1

1

1

0xbf

1

1

1

1

1

1

1

1

0xff

P

1

0

0

0

1

1

0

0

0x8c

四、附件

4-1原理图

4-2器件清单

元件名称

规格型号

单位

数量

单片机芯片

STC89C52

1

晶振

12MHz

1

八段数码管

7SEG-4IN1

2

瓷片电容

104

1

瓷片电容

22

2

电阻

4.7k

8

电阻

470

8

电阻

220

1

电阻

1K

2

电阻

10K

4

电阻

10k

4

三极管

9012

9

二极管

1N4148

9

按键

TackSwitch

5

开关

PwrSwitch

1

电源座

5.5DC

1

电源线

USB转DC5.5

1

电源

WWY-0510

1

排阻

9A103G

1

蜂鸣器

脉冲型

1

4-3使用说明书

4-3-1功能说明

1.利用单片机内部的定时器,在两个4位数码管上显示日期,如20120510;时间08-45-20;星期-------4(其中日期/时间/星期幻灯播放显示,间隔4秒)。

2.年月日、时间可设置,所有正在设置的项目间隔0.5秒闪烁显示

3.星期自动对应,闰年、大、小月份自动调整。

4.有四个按键:

“设置/确定”、“+/整点报时开关”、“-”、“取消/闹铃”;按键具有优先级:

“取消/闹铃”>“设置/确定”>“+”、“—”。

即在设置时间时+、-键有效;在任何状态“取消/闹铃”键都可以退出人为操作。

5.具有闹铃功能,闹铃每次响一分钟,也可手动关闭,闹钟时间可设置。

6.具有贪睡的功能。

7.具有整点报时功能(6~22时).

4-3-2按键说明

1.选择按键,选择对年、月、日、时、分等的选中操作,当其中一个被选中的时候,该项产生间隔0.5秒的闪烁,并可以进行时间的调整。

2.增加按键,对年、月、日、时、分的增加操作。

3.减少按键,对年、月、日、时、分的减少操作。

4.取消按键,对当前设置的内容不保存,并退出设置。

4-3-3时间设置说明

1.第一次按下“设置/确定”键,“年”位开始闪烁,此时按“+”“-”键可调节年;

2.第二次按下“设置/确定”键,“月”位开始闪烁,此时按“+”“-”键可调节月;

3.第三次按下“设置/确定”键,“日”位开始闪烁,此时按“+”“-”键可调节日;

4.第四次按下“设置/确定”键,“时”位开始闪烁,此时按“+”“-”键可调节时;

5.第五次按下“设置/确定”键,“分”位开始闪烁,此时按“+”“-”键可调节分;

6.第六次按下“设置/确定”键,设置完毕,时钟开始正常走动。

在设置过程的任何时刻,“取消/闹铃”键都可以取消当前的设置操作并退出本次设置操作。

4-3-4闹钟设置说明

1.闹钟设置:

在日期/时间/星期幻灯播放显示的状态下:

Ø第一次按下“取消/闹铃”键,进入闹钟设置模式,“闹钟时”开始闪烁,此时按“+”“-”键可调节闹钟时;

Ø第二次按下“取消/闹铃”键,“闹钟分”位开始闪烁,此时按“+”“-”键可调节闹钟分;

Ø第三次按下“取消/闹铃”键,“闹钟开关”位开始闪烁,此时按“+”“-”键切换P0/P1;P0为闹钟开,P1为闹钟关。

Ø第四次按下“取消/闹铃”键,设置完毕,时钟开始正常走动。

在此过程中,“设置/确定”键都可以保存本次的闹铃设定并退出设置。

2.关闭闹铃,当时间走到闹钟设置时间时,闹铃响起,持续一分钟后自动关闭,在此过程中,可按下“取消/闹铃”键来手动退出当前闹铃。

闹铃会在下一次闹钟时间再次响起。

3.贪睡功能,在闹铃响的过程中,可按下“设置/确定”键。

闹铃立即关闭并在五分钟后响起。

4-3-5整点报时开关说明

在非时间设置与非闹铃设置过程的时刻,“+/整点报时开关”键可以取消与打开整点报时的功能。

当开启整点报时功能是,P0^7端口的所接LED灯会亮起来;关闭整点报时功能P0^7端口的所接LED灯会不会亮起来。

五、实验总结及感想

一分耕耘,一分收获。

通过这次的设计使我认识到本人对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,尤其是对程序设计语句的理解和运用,不能够充分理解每个语句的具体含义,导致编程的程序过于复杂,使得需要的存储空间增大。

损耗了过多的内存资源。

本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。

在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争,同时在查找资料的过程中我也学到了许多新的知识,在和同学协作过程中增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。

我知道,今后我的路还是很长,我要学的东西也有很多。

通过这次实习,我深刻的认识到计算机专业的路的不平坦,但我会以一种良好的态度去迎接每一个挫折和挑战。

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

当前位置:首页 > 医药卫生 > 基础医学

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

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