基于单片机技术数字钟电路的设计Word文档下载推荐.docx
- 文档编号:22724051
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:31
- 大小:1.51MB
基于单片机技术数字钟电路的设计Word文档下载推荐.docx
《基于单片机技术数字钟电路的设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机技术数字钟电路的设计Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。
系统由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
分压偏置
3
电阻R3
1/4W-5.1K
5.07K
分压
4
电阻R4
99.89
5
电阻R5
6
电阻R6
7
电阻R7
8
电阻R8
9
电阻R9
10
电阻R10
11
电阻R11
12
电阻R12
13
电阻R13
1/4W-200
198
滤波
14
电阻R14
15
电阻R15
16
电阻R16
17
电阻R17
18
电阻R18
19
电阻R19
1/4W-1K
20
电阻R20
0.995K
高电平复位
21
排阻RN1
10K*8
9.98K
DIP-9
上拉电阻,保证高电平输出
22
电容C7
0.1uF
0.096uF
0603
23
电容C9
30pF
0.027nF
保证温漂
24
电容C10
25
电容C11
26
电解C6
100uF/25V
102.3uF
RB.2/.4
复位
27
电解C8
28
二极管D2
IN4148
正常
正向导通、反向截止,与C8、R13、R20、S1构成复位电路
29
稳压管D1
5.1V/1W
IN4733
保护电路,使输入电压不大于5.1V
30
三极管Q1
8550
SOT-23
控制数码管亮、灭、起开关作用
31
三极管Q2
32
三极管Q3
33
三极管Q4
34
三极管Q5
35
三极管Q6
36
数码管U1
LG5641BH
正常共阳
SMG1
显示时分值
37
数码管U3
LG5621DH
SMG2
显示秒值
38
晶振X1
11.0592M
XTAL1
提供时序频率
39
小方键S1
AN
40
小方键S2
调整时间
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:
秒
min:
分
hour:
时
ms50_1:
存放多少个50ms,用于记录按键时间
SetPos:
设置位置
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:
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
秒加1
CJNE@R1,#60,ExitInt1
MOV@R1,#0
分加1
时加1
CJNE@R1,#24,ExitInt1
ExitInt1:
SETBF0
ExitInt:
POP01H
RETI
INT_Timer1:
INCms50_1
HexToBCD:
MOVB,#10
DIVAB
MOV@R0,B
INCR0
MOV@R0,A
RET
AdjustBuffer:
MOVR0,#buffer
MOVA,sec
ACALLHexToBCD
MOVA,min
MOVA,hour
显示
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
RLA
JNBACC.6,Display2
MOVB,A
SJMPDisplay1
Display2:
POP00H
POPDPH
POPDPL
POPACC
POPB
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,$
设置功能
SetFunTab:
AJMPNoSet;
不需要调整
AJMPSetHour;
调整小时
AJMPSetMin;
调整分钟
AJMPSetSec;
调整秒钟
NoSet:
CLRbTwinkle
RET;
不在设置状态
SetHour:
INChour
CJNEA,#24,SetHour1
MOVhour,#0
SetHour1:
SJMPSetFun1
SetMin:
INCmin
CJNEA,#60,SetMin1
MOVmin,#0
SetMin1:
SetSec:
INCsec
CJNEA,#60,SetFun1
MOVsec,#0
SetFun1:
调整闪烁位置
SetPosTab:
AJMPNoSetPos
AJMPSetHourPos
AJMPSetMinPos
AJMPSetSecPos
NoSetPos:
MOVSetPos1,#0
SetHourPos:
MOVSetPos1,#30H
SetMinPos:
MOVSetPos1,#0CH
SetSecPos:
MOVSetPos1,#03H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 技术 数字 电路 设计