基于单片机技术数字钟电路的设计.docx

上传人:b****8 文档编号:9588033 上传时间:2023-02-05 格式:DOCX 页数:31 大小:1.51MB
下载 相关 举报
基于单片机技术数字钟电路的设计.docx_第1页
第1页 / 共31页
基于单片机技术数字钟电路的设计.docx_第2页
第2页 / 共31页
基于单片机技术数字钟电路的设计.docx_第3页
第3页 / 共31页
基于单片机技术数字钟电路的设计.docx_第4页
第4页 / 共31页
基于单片机技术数字钟电路的设计.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

基于单片机技术数字钟电路的设计.docx

《基于单片机技术数字钟电路的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机技术数字钟电路的设计.docx(31页珍藏版)》请在冰豆网上搜索。

基于单片机技术数字钟电路的设计.docx

基于单片机技术数字钟电路的设计

目录

第1章

引言4

第2章

设计方案的选择与论证5

第3章

系统原理设计7

1、

设计思想7

2、

系统框图7

第4章

硬件设计8

1、

元器件清单8

2、

电路设计及工作原理9

1.

控制部分9

2.

数码管显示部分11

3.

按钮与开关部分13

4.

原理图部分15

5.

PCB实物图部分16

第5章

软件设计17

1、

程序原理概述17

2、

总的设计思想17

3、

流程图17

4、

程序代码20

第6章

调试26

1、

程序下载26

2、

硬件调试28

3、

实物图28

第7章

结束语29

第8章

参考文献31

 

基于单片机的多功能数字钟

苏州工业职业技术学院电子10C1周霞

指导教师:

刘训非

第一章引言

本系统采用单片机STC89S52RC控制,以STC89S52RC为核心,它完成整个系统的信息处理及协调功能,本次设计我们选用ATMEL公司的STC89S52RC芯片,其功能强大,兼容性好,还支持软件选择的空间和掉电两种节电方式。

本设计的软件,硬件都采用模块化的设计方法,提高了设计的效率。

本次设计通过对一个实现定时、时钟显示、报时、闹钟、无线电控制等功能的时间系统的设计,其中结合了数据转换显示、数码管显示、动态扫描、单片机定时中断等技术。

系统由STC89C52RC、LED数码管、按键、三极管、74LS244N、MAX202CPE、DS1302、电阻等组成。

能实现时钟时、分、秒的显示。

也具有时间设置、制式切换、无线控制。

文章后附有电路图、程序清单。

ThefirstsectionIntroduction

ThissystemusesthemonolithicintegratedcircuitSTC89C52RCcontrol,takeSTC89C52RCasthecore,itcompletesoverallsystem'sinformationprocessingandthecoordinatedfunction,thistimedesignsustoselectATMELCorporation'sSTC89C52RSchip,itsfunctionisformidable,thecompatibilityisgood,butalsosupportsthespacewhichthesoftwarechoosesandpowerfailuretwoelectricitysavingways.Thisdesign'ssoftware,thehardwareusesmodularthedesignmethod,raisedthedesignefficiency.

Thisdesignthroughrealizesfixedtime,theclocktoonetodemonstratethattoreporttime,functionandsoonalarmclock,radiocontroltimesystem'sdesigns,unifiedtechnologiesandsoondataconversiondemonstration,nixietubedemonstration,dynamicscanning,monolithicintegratedcircuittimerinterruption.ThesystembySTC89C52RC,theLEDnixietube,thepressedkey,thetriode,74LS244N,MAX202CPE,DS1302,theresistanceandsooniscomposed.Canrealizewhentheclock,divides,aseconddemons.

第二章设计方案的选择与论证

该课题主要有两种方案:

一种是用数字电路通过硬件实现,另一种是用单片机通过软件编程实现。

在以上两种方案中:

第一种是直接采用的是数字电路,但是在外围电路和控制比较麻烦,需要比较多的器件来控制;第二种是采用软件来实现一些特定功能,硬件电路只需要一些显示部件和控制部件,其他的都是由软件来实现。

第一种一切都由硬件实现,几乎没有软件编程,但电路复杂、芯片多、后续制板及硬件调试麻烦而且成本高;第二种虽电路简单、芯片少、成本低,但编写程序相当复杂。

经过一番利弊的权衡及对今后电子业发展趋势的考量,最后敲定用单片机方案实现。

另外用单片机实现本设计也有两种可选的子方案:

第一种,用软件编程实现设计中的钟控功能;另一种则选用单片机加时钟芯片实现钟控功能。

在本次主要的是时间的设计,因此对时间的精度要求是比较高的,竟量是误差减少到最小值,但是为了更好的练习复习自己在以前所学习的编程能力,所以不采用单片机加时钟芯片的方案,直接用软件编程实现钟控功能。

总的来看,单片机已成为工控领域、尖端武器、日常生活中最广泛使用的计算机,且将进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格方向发展,因此敲定用单片机加软编程方案符合今后电子业发展趋势;另外运用此方案既能将自己以前学过的模拟电路、数字电路、单片机、汇编语言、Protel99等知识结合实践进行一次全面的检测,又能为将来实际制作电路积累宝贵的经验。

第3章系统原理设计

一.设计思想

单片机控制系统是整个控制系统的核心,它完成整个系统的信息处理及协调功能。

本次我们选用ATMEL公司的STC89S52RC芯片;其功能强大,兼容性好。

STC89S52RC是与8051兼容的CHMOS微控制器。

与CHMOS工艺的8051一样,支持软件选择的空闲和掉电两种节电方式。

在STC89S52RC的P0.0—P0.7是数码管的段选;P2.0—P2.5是数码管的位选。

P1.0用来调整设置时间的单片机输入端,接收按钮S2的电信号来调整时间。

二.系统框图

第四章硬件设计

1.元器件清单

元件分析表

品名

元件名

型号规格

实测

封装

功能

1

电阻R1

1/4W-100

99.99

0805

限流分压、保护三极管

2

电阻R2

1/4W-2K

1.989K

0805

分压偏置

3

电阻R3

1/4W-5.1K

5.07K

0805

分压

4

电阻R4

1/4W-100

99.89

0805

限流分压、保护三极管

5

电阻R5

1/4W-2K

1.989K

0805

分压偏置

6

电阻R6

1/4W-5.1K

5.07K

0805

分压

7

电阻R7

1/4W-100

99.99

0805

限流分压、保护三极管

8

电阻R8

1/4W-2K

1.989K

0805

分压偏置

9

电阻R9

1/4W-5.1K

5.07K

0805

分压

10

电阻R10

1/4W-100

99.99

0805

限流分压、保护三极管

11

电阻R11

1/4W-2K

1.989K

0805

分压偏置

12

电阻R12

1/4W-5.1K

5.07K

0805

分压

13

电阻R13

1/4W-200

198

0805

滤波

14

电阻R14

1/4W-100

99.99

0805

限流分压、保护三极管

15

电阻R15

1/4W-2K

1.989K

0805

分压偏置

16

电阻R16

1/4W-5.1K

5.07K

0805

分压

17

电阻R17

1/4W-2K

99.99

0805

限流分压、保护三极管

18

电阻R18

1/4W-5.1K

1.989K

0805

分压偏置

19

电阻R19

1/4W-1K

5.07K

0805

分压

20

电阻R20

1/4W-100

0.995K

0805

高电平复位

21

排阻RN1

10K*8

9.98K

DIP-9

上拉电阻,保证高电平输出

22

电容C7

0.1uF

0.096uF

0603

滤波

23

电容C9

30pF

0.027nF

0603

保证温漂

24

电容C10

0.1uF

0.096uF

0603

滤波

25

电容C11

30pF

0.027nF

0603

保证温漂

26

电解C6

100uF/25V

102.3uF

RB.2/.4

复位

27

电解C8

100uF/25V

102.3uF

RB.2/.4

复位

28

二极管D2

IN4148

正常

IN4148

正向导通、反向截止,与C8、R13、R20、S1构成复位电路

29

稳压管D1

5.1V/1W

正常

IN4733

保护电路,使输入电压不大于5.1V

30

三极管Q1

8550

正常

SOT-23

控制数码管亮、灭、起开关作用

31

三极管Q2

8550

正常

SOT-23

控制数码管亮、灭、起开关作用

32

三极管Q3

8550

正常

SOT-23

控制数码管亮、灭、起开关作用

33

三极管Q4

8550

正常

SOT-23

控制数码管亮、灭、起开关作用

34

三极管Q5

8550

正常

SOT-23

控制数码管亮、灭、起开关作用

35

三极管Q6

8550

正常

SOT-23

控制数码管亮、灭、起开关作用

36

数码管U1

LG5641BH

正常共阳

SMG1

显示时分值

37

数码管U3

LG5621DH

正常共阳

SMG2

显示秒值

38

晶振X1

11.0592M

正常

XTAL1

提供时序频率

39

小方键S1

正常

AN

复位

40

小方键S2

正常

AN

调整时间

41

电源座JP2

正常

42

白色3芯座JP3

正常

SIP-3

信号输入口,提供电源

43

IC座U4

HD74LS244P

正常

DIP20

驱动芯片

44

IC座U5

P8952X2BN

正常

DIP40

单片机主控制芯片

45

IC座U2

MAX202CPE

正常

DIP-16

2.电路设计及其工作原理

1控制部分:

STC89C52RC单片机

STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。

该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

STC89C52C是STC公司产生的以8051为内核芯片的单片机:

内部含有FlashE2PROM存储器:

内部含有8K的程序存储空间;内部RAM(随机读写存储器)为521位;具有可ISP可在线编程功能,不用买昂贵的编程器,只需搭建简单的TTL-RS232的电平转换电路,很适合无经济基础的毕业生,这里选用美信公司的MAX232芯片;DIP-40封装。

STC89C51RC是一个低电压,高性能CMOS8位单片机,片内含有4Kbytes的可反复擦写的Flas只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATAML公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,内置功能强大的微型计算机的STC89C51RC提供了高性价比的解决方案。

 

STC89C52RC时钟电路连接

在本设计中STC89C52RC的时钟电路采用内部时钟方式,此方式是在X1和X2两端跨接晶体或陶瓷谐振器。

在本设计中X1和X2两端跨接11.0592MHz晶体振荡器,其发出的脉冲直接送入内部时钟电路。

本设计采用按键手动复位的按键电平复位 。

STC89C52RC外部复位电路设计

STC89C52RC在本设计中的I/O口应用:

STC89C52RC的P0.0~P0.7控制74LS244N实现数码管段选;STC89C52RC的P2.0~P2.6控制74LS244N实现数码管位选;STC89C52RC的P1.0连接按钮,用于输入校时、定时信号和停止信号。

2数码管显示部分

本设计中所涉及数码管皆采用共阳数码管,显示电路为动态扫描式显示。

数码管显示位选:

STC89C52RC的P2.0~P2.6输出控制数码管位选,在本次设计的电路中,因为是使用的是共阳数码管,因此由STC89C52RC的P2.0~P2.6的输出控制74LS244N,使之输出相应的端口为高电平,控制数码管点亮。

 

数码管位选原理

数码管段选STC89C52RC的P0.0~P0.7控制74LS244N实现数码管段选,在本次设计的电路中,由于二级管使用的是共阳数码管,在输出的是要低电平。

在设计的时候,怕在芯片输出的电流信号过大,因此在输出的时候加了限流电阻,为保护数码管,防止烧坏。

数码管段选原理

3按钮与开关部分

模块通电后,6位数码管显示12:

59:

50秒,正常运行,长按S2键(约3秒)松开,第一第二个数码管闪烁,此时轻按S2键,可设置“时”(0~23),再长按S2键(约3秒)松开,第三第四个数码管闪烁,此时轻按S2键,可设置“分”(0~59),再长按S2键(约3秒)松开,第五第六个数码管闪烁,此时轻按S2键,可设置“秒”(0~59),如此循环。

设置完再长按S2键(约3秒)松开即进入正常运行状态,S1键是复位键。

 

按键电路原理

3原理图部分

 

原理图

5PCB及实物图部分

第5章软件设计

一.程序原理概述

在程序设计这一环节,本次将其分为时钟中断程序、时钟显示程序、键盘程序、闹钟定时控制程序、闹钟响闹程序、音乐响闹程序、主程序、各程序衔接程序。

在以下几节中将根据实际各个部分的编程及调试顺序,依次介绍各程序的设计思想和流程。

二.总的设计思想

在本次主要是使用的是数字闹钟,因此主要部分是数字钟的实现,因此要实现这样的功能必须要在硬件的电路上实现数字钟的实现,然后在此基础上逐步实现其他的功能,

数字电子钟的程序大概可以分为三个部分:

时钟主程序、时钟显示程序、时钟中断程序。

时钟主程就是对时钟的各个模块的实现。

将分个位、分十位、时个位、时十位数据存储单元的计时数据通过设置段选和位选、由74LS244N段选显示在相应的数码管上。

时钟中断程序则通过重设计时、1秒计时与时钟程序相结合实现秒个位、秒十位、分个位、分十位、时个位、时十位数据存储单元的数据按计时规则加1进位和清零,以配合时钟显示程序实现数字电子钟。

在实现数字电子钟的基础上,逐一添加调试键盘程序、闹钟定时程序,闹钟音乐程序,最后实现设计目标。

键盘程序就是通过软件扫描各按键状态来实现各按钮的功能。

三.流程图:

在以下流程图中只描述了基本的功能,如给显示位加点,中断程序状态调整,加一操作,显示状态的切换,在流程图中都没有描述。

但其设计就是基于以上介绍的显示指针,和状态指针的思想。

在程序中用@P0,@P1充当此指针。

四.程序代码

DATA_SEGSEGMENTDATA;定义一个DATA段

STACKSEGMENTIDATA;定义一个堆栈段

BIT_SEGSEGMENTBIT;定义一个位段

bKeyBITP1.0;

IdleConstEQU50

RSEGSTACKDS10H;16个字节的堆栈

RSEGDATA_SEG;开始DATA_SEG段

buffer:

DS6;6个字节的显示缓冲区

ms50:

DS1;50ms计数

ms250:

DS1;250ms计数

sec:

DS1;秒

min:

DS1;分

hour:

DS1;时

ms50_1:

DS1;存放多少个50ms,用于记录按键时间

SetPos:

DS1;设置位置

SetPos1:

DS1;需要屏蔽的数码管

RSEGBIT_SEG

bIdle:

DBIT1;省电模式

bTwinkle:

DBIT1;当前设置位置闪烁

CSEGAT0;相当于小汇编的ORG

AJMPMAIN

CSEGAT000BH;定时器T0中断处理入口地址

LJMPINT_Timer0

CSEGAT001BH;定时器T1中断处理入口地址

LJMPINT_Timer1

CSEGAT0100H

MAIN:

MOVSP,#STACK-1;堆栈

CLRbIdle

CLRbTwinkle

MOVms50,A;清零ms50

MOVms250,A

MOVhour,#12;设定初值:

12:

59:

50

MOVmin,#59

MOVsec,#50

MOVTH0,#60;定时中断计数器初值

MOVTL0,#176;定时50ms

MOVTMOD,#11H;定时器0,1:

方式一

MOVIE,#8AH;中断初始化,EA=1,ET0=1,ET1=1

SETBTR0;开定时器T0

MOVSetPos,#0FFH;

MAIN1:

ACALLAdjustBuffer;调整显示缓冲区

MAIN2:

ACALLKey;调用键扫描

ACALLDisplay

JNBF0,MAIN2

CLRF0

SJMPMAIN1;需要刷新显示时间

;中断服务程序

INT_Timer0:

MOVTL0,#176+5

MOVTH0,#60

PUSH01H

MOVR1,#ms50

INC@R1;50ms单元加1

CJNE@R1,#5,ExitInt

MOV@R1,#0;恢复初值

INCR1

MOVA,SetPos

CJNEA,#0FFH,INT_Timer0_1

SJMPINT_Timer0_2

INT_Timer0_1:

CPLbTwinkle

SJMPExitInt1

INT_Timer0_2:

INC@R1

CJNE@R1,#4,ExitInt

MOV@R1,#0;恢复初值

INCR1

INC@R1;秒加1

CJNE@R1,#60,ExitInt1

MOV@R1,#0

INCR1

INC@R1;分加1

CJNE@R1,#60,ExitInt1

MOV@R1,#0

INCR1

INC@R1;时加1

CJNE@R1,#24,ExitInt1

MOV@R1,#0

ExitInt1:

SETBF0

ExitInt:

POP01H

RETI

;中断服务程序

INT_Timer1:

MOVTL0,#176+5

MOVTH0,#60

INCms50_1

RETI

HexToBCD:

MOVB,#10

DIVAB

MOV@R0,B

INCR0

MOV@R0,A

INCR0

RET

AdjustBuffer:

MOVR0,#buffer

MOVA,sec

ACALLHexToBCD

MOVA,min

ACALLHexToBCD

MOVA,hour

ACALLHexToBCD

RET

;显示

Display:

JNBbIdle,Display3

RET;省电模式

Display3:

PUSHB

PUSHACC

PUSHDPL

PUSHDPH

PUSH00H

MOVR0,#buffer

MOVB,#0FEH

MOVDPTR,#SEG_TAB

Display1:

MOVA,@R0

MOVCA,@A+DPTR;取段码

MOVP0,A

MOVA,B

JNBbTwinkle,Display4

ORLA,SetPos1

Display4:

MOVP2,A;选种数码管

CALLDelay1ms

MOVA,B

RLA

JNBACC.6,Display2

MOVB,A

INCR0

SJMPDisplay1

Display2:

POP00H

POPDPH

POPDPL

POPACC

POPB

RET

SEG_TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;段码

DB080H,90H,88H,83H,0C6H,0A1H,86H,8EH

DB0FFH,0BFH

;延时1ms

Delay1ms:

PUSHACC

MOVA,#230

DJNZACC,$

MOVA,#230

DJNZACC,$

POPACC

RET

;设置功能

SetFunTab:

AJMPNoSet;不需要调整

AJMPSetHour;调整小时

AJMPSetMin;调整分钟

AJMPSetSec;调整秒钟

NoSet:

CLRbTwinkle

RET;不在设置状态

SetHour:

INChour

MOVA,hour

CJNEA,#24,SetHour1

MOVhour,#0

SetHour1:

SJMPSetFun1

SetMin:

INCmin

MOVA,min

CJNEA,#60,SetMin1

MOVmin,#0

SetMin1:

SJMPSetFun1

SetSec:

INCsec

MOVA,sec

CJNEA,#60,SetFun1

MOVsec,#0

SetFun1:

SETBF0

RET

;调整闪烁位置

SetPosTab:

AJMPNoSetPos

AJMPSetHourPos

AJMPSetMinPos

AJMPSetSecPos

NoSetPos:

MOVSetPos1,#0

RET

SetHourPos:

MOVSetPos1,#30H

RET

SetMinPos:

MOVSetPos1,#0CH

RET

SetSecPos:

MOVSetPos1,#03H

RET

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

当前位置:首页 > 高等教育 > 文学

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

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