基于单片机的定时闹钟课程设计报告书Word文件下载.docx

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

基于单片机的定时闹钟课程设计报告书Word文件下载.docx

《基于单片机的定时闹钟课程设计报告书Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的定时闹钟课程设计报告书Word文件下载.docx(23页珍藏版)》请在冰点文库上搜索。

基于单片机的定时闹钟课程设计报告书Word文件下载.docx

电路由下列部分组成:

时钟电路、复位电路、控制电路、LED显示、报警

电路,芯片选用STC89C52单片机。

数码显示

系统基本框图如图2.1所示:

时钟电路

STC89C52

报警电路

图2.1系统基本框图

3.方案说明

此设计主要是通过单片机系统,综合运用定时器、中断、数码显示等知识设计一个可定时的电子钟。

它包括系统总体方案及硬件设计,软件设计,Proteus

软件仿真等部分。

系统总体方案及硬件设计是本设计的重要组成部分,在这部分详细介绍了时钟原理,硬件设计,数码管LED,以及在设计过程中考虑到技术指标,机型的选择,器件的选择等一系列问题。

硬件设计的主要任务是根据总体设计要求,以及在所选机型的基础上,确定系统扩展所要用的存储器,I/O电路及有关外围电路等然后设计出系统的电路原理图。

合理的软件结构是设计出一个性能优良的单片机应用性系统软件的基础,因此必须充分重视。

在本设计中采用应用广泛的C语言。

用Proteus软件仿真检查

设计是否合理。

4.硬件方案设计

4.1单片机STC89C52

STC89C52是一个低电压,高性能CMOS型8位单片机,片内含8KB的可反复擦写的Flash只读程序存储器(ROM)和512B的随机存取数据存储器(RAM),器件采用STC公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的STC89C52提供了高性价比的解决方案。

其引脚图如下图4.1所示:

P1.0

1

40

VCc

P1.1

2

39

P0.0

P1.2

3

38

P0.1

P1.3

4

37

P0.2

P1.4

5

36

P0.3

P1.5

6

35

P0.4

P1.6

7

34

P0.5

P1.7

8

33

P0.6

RST

9

32

P0.7

P3.0

10

31

EA

P3.1

11

30

ALE

P3.2

12

29

PSEN

P3.3

13

28

P2.7

P3.4

14

27

P2.6

P3.5

15

26

P2.5

P3.6

16

25

P2.4

P3.7

17

24

P2.3

XTAL2

18

23

P2.2

XTAL1

19

22

P2.1

GND20

21

P2.0

图4.1STS89C52

STC89C52具体介绍如下:

1)主电源引脚(2根)

VCC(40):

电源输入,接+5V电源

GND(20):

接地线

2)外接晶振引脚(2根)

XTAL1(19):

片内振荡电路的输入端

XTAL2(18):

片内振荡电路的输出端

3)控制引脚(4根)

RST/VPP(9):

复位引脚,引脚上出现2个机器周期的高电平将使单片机复位

ALE/PROG(30):

地址锁存允许信号

PSEN(29)外部存储器读选通信号

EA/VPP(31):

程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。

4)可编程输入/输出引脚(32根)

STC89C52单片机有4组8位的可编程I/O口,分别为P0P1、P2、P3口,每个口有8位(8根引脚),共32根。

PO口(39〜32):

8位双向I/O口线,名称为P0.旷P0.7

P1口(1〜8):

8位准双向I/O口线,名称为P1.(〜P1.7

P2口(21〜28):

8位准双向I/O口线,名称为P2.0-P2.7

P3口(10〜17):

8位准双向I/O口线,名称为P3.C〜P3.7

4.2时钟电路

单片机的时钟产生方法有两种:

内部时钟方式和外部时钟方式。

本系统中STC89C52单片机采用内部时钟方式。

最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。

振荡晶体可在1.2MHz〜12MHz之间。

电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pF〜100pF之间取值。

STC89C52单片机的时钟电路如图4.2所示。

图4.2时钟电路

4.3数码管显示电路

单片机中通常使用7段LED,LED是发光二极管显示器的缩写。

LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。

LED显

示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相

应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。

LED显示器有多种形式口:

“米”字型显示器,点阵显示器和七段数码显示器等,在单片机系统中使用最多的是七段数码显示器。

LED七段数码显示器由8个发光二极管组成显示字符,根据内部发光二极管

的连接形式不同,LED有共阴极和共阳极两种,如图431所示为4为7段共阴数码管的引脚图。

A1afA2A3b

11

11[1

000D0

1111

<

I□i1口

DDD1—11—1

□(1(1nnn

]

□I

111

iii

eddpcgA4

图4314段共阴数码管引脚图

采用高亮共阴型S位数码管,为示区别,显示秒的两个数码管个头较小,另外4个较大。

共阴数码管连接线路如下:

一般用7个发光二极管构成显示数字和符号,另外还用一段发光二极管显示小数点。

这种显示器一般分为两种,共阳极显示器和共阴极显示器,共阳极显示器是把每个二极管的正端连在一起,共阴极显示器是把每个二极管的阴极连在一起。

一只显示器是有8个发光二极管构成,

当把某段加正向电压时,则该段所对应的笔划亮,不加正向电压则暗,为了保护各段不受损坏需要加限流电阻,无论是共阳极显示器还是共阴极显示器,它的8

段排列顺序都是一样的:

A段、B段、C段、D段、E段、F段、G段和DP段。

在单片机中通常使用7段LED。

数码管的显示电路如下图432所示:

图432数码管的显示电路

数码管中二极管电流的计算

二极管本身有2V的电压降,一般二极管电流取10mA,则需添加的电阻为

R=(U-ULed)/ILed,

代入相关数值,即为300Q。

本设计中,选用的电阻为470Q,则电流为

I=(U-5ed)/R;

代入实际数值,即为6.4mA,能够满足显示效果。

4.4键盘电路

设计方案中使用的是3个开关键组成的键盘电路,如下图4.4所示:

图4.4键盘电路图

4.5报警电路

设计方案中,采用的是蜂鸣器和PNP型三极管组成的报警电路。

如下图4.5

所示:

图4.5报警电路

5■软件方案设计

5.1系统软件设计

该系统软件主要有主程序模块,定时中断服务程序,中断等待服务程序,键盘程序,显示子程序服务程序等六大模块组成,因为C语言容易理解和记忆,

所以我们用C语言来写此程序。

5.2键盘程序

键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有键按下,便转向相应的子程序处理,处理结束后再返回

5.3LED

七段LED由七个发光二极管按日字排开,所有发光二极管的阳极连在一起成共阳极,阴极连在一块称共阴极接法。

当采用芯片驱动时不需要加限流电阻,其他情况下一般应外接限流电阻。

动态显示电路有显示块,字形码封锁驱动器,字位锁存驱动器三部分组成。

5.4音响报警电路

在STC89C52外围的一个管口上加蜂鸣器,通过软件与硬件的结合可实现定时闹钟功能。

5.5程序流程图

开始

图5.5程序流程图

6调试

设几个按键从左往右为K1,K2,K3。

K1与P1.0相连,K2与P1.1相连,K3与

P1.2相连。

按一下启动开关,显示为时间显示。

按一下K1,进入时间显示的小时设定

状态;

按两下K1,进入时间显示的分钟设定状态;

按三下K1,进入定时的小时

设定状态;

四下K1,进入定时的分钟设定状态;

按五下K1,退出设定,进入当前时间

显示状态;

K2和K3分别是对当前设定值的加和减。

如下图6.1和6.2所示

6.1调时仿真效果图

图6.2定时仿真效果图

7•小结

在做课程设计的过程中,我进一步认识到全面专业知识以及逻辑思考方式对研究问题的重要性,同时我也更加具体的掌握了课程设计的基本方法。

经过不断的努力,我终于完成了这次课程设计,总的来说,我学到了不少的东西,知道了理论联系实际的重要性。

在设计过程中我遇到了很多的困难,但没放弃,查阅了许多相关的书籍,自己独立思考和借鉴了前人的许多优秀成果,并与所学的知识紧密的结合了起来。

我相信这过程对我今后的学习和工作有着积极的影响,并搭好了平台。

通过这次设计,我对这门课有了更好的理解,尤其结合了这几年学的相关的专业知识,对各门课都有了一个较全面的理解。

这必将对我以后的学习和工作有很大的帮助。

本次课程设计的定时闹钟电路,可以满足人们的基本要求,但因为

知识水平有限,此电路中存在一定的问题,虽可以通过增加电路解决,但过于复杂和现有水平有

限,本次设计就未深入涉及,想要更好的改进电路,需要进一步的努力,如果有好的意见,希望老师给予支持指导

8.参考文献

[1]何立民.单片机应用技术选编10.北京:

北京航空航天大学出版社

[2]林立.单片机原理及应用.北京:

电子工业出版社

[3]沙占友等.单片机外围电路设计.西安:

[4]江力.蔡骏.王艳春.董泽芳.单片机原理与应用技术.北京,清华大学出版社

[5]潘永红.柳殊.单片机原理与应用.西安,西安电子科技大学出版社

定时闹钟源程序

#include<

reg52.h>

unsignedcharled[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};

//用一维数组定义0-9、横杠、全灭

unsignedchara[8];

unsignedcharsecond=0,minute=0,hour=1;

unsignedcharminute1=0,hour1=0;

unsignedcharb[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

//扫描

unsignedchark=0;

unsignedinttemp;

//记录毫秒为秒的变量

unsignedcharM,S_flag;

//M是模式,更新时间的种模式加上正常模式S_flag闪烁标志

sbitK仁P1A0;

sbitK2=PM1;

sbitK3=P1A2;

sbitBEEP=P3A3;

voiddelay(unsignedn)//0.2毫秒

{

intx,y;

for(x=0;

x<

n;

x++)

for(y=0;

y<

24;

y++);

voidtime1()interrupt3

TH1=0xfc;

TL1=0x18;

temp++;

if(temp==1000)

temp=0;

second++;

}if(second==59)

second=0;

if(minute<

59)minute++;

else

//定时器中断函数

//定时ms

//配合定时器定时s

{minute=0;

hour++;

hour%=24;

 

}

//闹钟时间到

if(hour1==hour&

&

minute1==minute&

second<

10){

if(M==0)

BEEP=!

BEEP;

if(temp%250==0)//每ms

S_flag=!

S_flag;

//闪烁标志位取反if(k==8)k=0;

P0=a[k];

P2=b[k++];

delay

(1);

P2=0xff;

voiddisplay()

switch(M)

case0:

a[2]=led[10];

a[3]=led[minute/10];

a[4]=led[minute%10];

a[5]=led[10];

a[6]=led[second/10];

a[7]=led[second%10];

}break;

case1:

if(S_flag==1)

a[0]=led[hour/10];

a[1]=led[hour%10];

a[0]=led[11];

a[1]=led[11];

}break;

case2:

a[1]=led[hour%10];

a[2]=led[10];

}else

a[3]=led[11];

a[4]=led[11];

case3:

a[0]=led[hour1/10];

a[1]=led[hour1%10];

a[3]=led[minute1/10];

a[4]=led[minute1%10];

a[5]=led[11];

a[6]=led[11];

a[7]=led[11];

case4:

voidkey_prc()

if(K1==0)

delay(10);

//延时去抖

//按K1进行模式切换

{M++;

if(M==5)

M=0;

while(!

K1);

//等待按键释放

if(M!

=0)

//模式--调时

if(K2==0)

//延时去抖

if(K2==0)//加键按下{

if(hour<

23)hour++;

elsehour=0;

K2);

//等待按键释放

if(K3==0)

if(hour>

0)hour--;

elsehour=23;

K3);

}break;

//模式--调分

if(minute<

elseminute=0;

if(minute>

0)minute--;

elseminute=59;

//模式--闹钟调时

if(hour1<

23)

hour1++;

elsehour1=0;

{if(hour1>

0)

hour1--;

elsehour1=23;

//模式--闹钟调分

if(minute1<

59)minute1++;

elseminute1=0;

//延时去抖if(K3==0)//减键按下

{if(minute1>

minute1--;

elseminute1=59;

voidmain()

S_flag=0;

//闪烁标志位

TMOD=0x10;

//定时器以方式定时

EA=1;

//打开总中断

ET1=1;

//允许定时器中断

TR1=1;

//开启定时器(开始定时计数)

while

(1)

key_prc();

display();

如有侵权请联系告知删除,感谢你们的配合!

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

当前位置:首页 > 表格模板 > 合同协议

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

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