电脑钟设计报告
一、概要:
现在电子钟与机械时钟相比已具有了更高的准确性和直观性,切无机械装置,具有更长的使用寿命。现在,电子钟的制作不仅需要数字电路技术而且需要模拟电路技术和单片机技术,所以设计时可以方便的增加电子钟原有的功能。电子钟的设计与制作可以采用数字电路实现,也可以采用单片机来完成。若采用数字电路完成,所设计的电路相当复杂,大概需要十几块数字集成块,焊接复杂成本高。若用单片机来设计制作完成,其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且成本也有所降低,所以在该设计与制作中采用单片机来完成。电子钟电路可以由实时时钟模块、人机接口模块、报警模块等部分组成。利用软件编程尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,见此奥因元器件精度不够引起的误差,但还是电子钟还是可以改进和提高,如选用更精密的元器件。因此本设计的目的就是利用单片机来研制更具使用价值的电子钟。
二、实验目的:
1. 实时显示当前时间即北京时间(时、分)
2. 可修改北京时间(时、分)。
3.可设定闹铃时间(时、分)。
三、系统设计方案
根据系统功能要求,可将系统组成结构分成四大部分:单片机控制中心、键盘接口、时钟显示和声音报时,如下图为系统的组成结构图。其中,单片机控制中心是核心。MCU根据按键输入,可切换不同的显示模式或设置不同的参数。时钟显示完成北京时间或秒表时钟的信息。声音报时可完成闹铃的提示。
四、系统功能
根据系统功能描述,可以将功能大致分成两类:北京时间,闹铃功能。 系统设有六个数码管,12个按键,采用菜单式人机对话,便于操作,所以可以分成多个菜单功能键切换菜单,C/R或ALM键设置时间,确定菜单。整个程序采用的是按键输入,数码管显示。所以数码管采用动态扫描原理。所以系统需使用单片机定时器资源。定时时间可设为5ms,即六位数码管,每5ms扫描一位数码管,30ms循环一次。按键接普通IO口,所以按键管理程序所涉及到的识键、译键均需采用软件扫描的方法。这里选用定时扫描控制方式。,通过用定时器0来实现计时功能。
五、试验设计所需硬件
C51单片机芯片一个、LED数码显示管六个,低压电源,开关、电阻、电容及导线若干。采用proteus软件进行模拟设计及调试工作。
六、设计原理图
最小系统有一个6MHZ单片机的晶振组成的时钟电路,和一个复位电路还有单片机组成。显示电路的数码管由六个位选端口和八个段选端口组成。本次选用的是共阴极数码管,并采用的是动态的显示方式段选择先全部并在一起,有统一的I/O资源来控制,公共端也由I/O资源来控制。采用了矩阵式键盘 可以减少I/O资源的使用
程序框图:
程序代码:
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP CLOCK
ORG 0030H
DISP0 EQU 30H
DISP1 EQU 31H
DISP2 EQU 32H
DISP3 EQU 33H
DISP4 EQU 34H
DISP5 EQU 35H
HOUR EQU 3CH
MIN EQU 3DH
SEC EQU 3EH
MSEC EQU 3FH
AHOUR EQU 40H
AMIN EQU 41H
ASEC EQU 42H
;F0 BIT PSW.5
F1 BIT PSW.1
MAIN: MOV SP, #50H
CLR F0
CLR F1
MOV AHOUR,#0FFH
MOV AMIN, #0FFH
MOV ASEC, #0FFH
;---------------------------------------
MOV R7,#10H ;16个字节
MOV R0,#DISP0
CLR A
LOOP: MOV @R0,A
INC R0
DJNZ R7,LOOP
;MOV HOUR, #11
;MOV MIN, #59
;MOV SEC, #57
MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#3CH
SETB TR0
SETB EA
SETB ET0
BEGIN: ACALL ALARM
ACALL KEYSCAN
CJNE A,#0AH,NEXT1
CLR TR0
MOV R1,#HOUR
AJMP MODE
NEXT1: CJNE A,#0BH,BEGIN
JB F1,NEXT2
MOV R1,#AHOUR
MODE: SETB F0
ACALL MODIFY
SETB TR0
CLR F0
AJMP BEGIN
NEXT2: SETB P2.7
CLR F1
AJMP BEGIN
MODIFY:ACALL KEYIN
ACALL COMB
RET
KEYIN: PUSH PSW
PUSH ACC
SETB RS1
RS1 RS0=10
MOV R0,#DISP0
MOV R7,#06H
L1: CLR RS1
ACALL KEYSCAN
SETB RS1
CJNE A,#0AH,L2
L2: JNC L1
MOV @R0,A
INC R0
DJNZ R7,L1
CLR RS1
POP ACC
POP PSW
; CLR RS1
RET
KEYSCAN: ACALL TEST
JNZ REMOV
ACALL DISPLAY
ACALL ALARM
AJMP KEYSCAN
REMOV: ACALL DISPLAY
ACALL TEST
JNZ LIST
ACALL DISPLAY
ACALL ALARM
AJMP KEYSCAN
LIST: MOV R2,#0FEH
MOV R3,#00H
LINE0: MOV A,R2
;MOV P2,A
MOV P0,A
;MOV A,P0
MOV A,P2
JB ACC.0,LINE1
MOV A,#00H
AJMP TRYK
LINE1: JB ACC.1,LINE2
MOV A,#04H
AJMP TRYK
LINE2: JB ACC.2,NEXT
MOV A,#08H
AJMP TRYK
NEXT: INC R3
MOV A,R2
JNB ACC.3,EXIT
RL A
MOV R2,A
AJMP LINE0
EXIT: AJMP KEYSCAN
TRYK: ADD A,R3
PUSH ACC
LETK: ACALL TEST
JNZ LETK
POP ACC
RET
;----------------------------
TEST:
MOV A,#00H
;MOV P2,A
MOV P0,A
;MOV A, P0
MOV A,P2
CPL A
ANL A,#07H
RET
DISPLAY: JB F0,DISP
ACALL SEPA
DISP: PUSH PSW
PUSH ACC
SETB RS0
MOV A,#0FFH
;MOV P2,A
MOV P0,A
MOV R0,#DISP0
MOV R7,#00H
MOV R6,#06H
MOV R5,#0FEH
DIS1: MOV P0,#0FFH
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
MOV A,R5
MOV P0,A
DJNZ R7,$
DJNZ R7,$
INC R0
MOV A,R5
RL A
MOV R5,A
DJNZ R6,DIS1
CLR RS0
POP ACC
POP PSW
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
COMB: MOV R0,#DISP1
ACALL COMB1 ;合字
CJNE A,#24,CHK
CHK: JNC EXIT1
MOV @R1,A ;
INC R1
MOV R0,#DISP3
ACALL COMB1
CJNE A,#60,CHK1
CHK1: JNC EXIT1
MOV @R1,A
INC R1
MOV R0,#DISP5
ACALL COMB1
CJNE A,#60,CHK2
CHK2: JNC EXIT1
MOV @R1,A
RET
EXIT1: AJMP MAIN
COMB1:
MOV A,@R0
ANL A,#0FH
MOV 43H,A
DEC R0 ;
MOV A,@R0
ANL A,#0FH
MOV B,#10
MUL AB
ADD A,43H
RET
SEPA: PUSH PSW
PUSH ACC
SETB RS0
MOV R0,#DISP5
MOV A,SEC
ACALL SEPA1
MOV R0,#DISP3
MOV A,MIN
ACALL SEPA1
MOV R0,#DISP1
MOV A,HOUR
ACALL SEPA1
CLR RS0
POP ACC
POP PSW
;CLR RS0
RET
SEPA1: MOV B,#10
DIV AB
MOV @R0,B
DEC R0
MOV @R0,A
;MOV 44H,A
;ANL A,#0FH
;MOV @R0,A
;DEC R0
;MOV A,44H
;ANL A,#0F0H
;SWAP A
;MOV @R0,A
RET
ALARM: MOV A,ASEC
CJNE A,SEC,BACK
MOV A,AMIN
CJNE A,MIN,BACK
MOV A,AHOUR
CJNE A,HOUR,BACK
CLR P2.7
SETB F1
BACK: RET
CLOCK:
MOV TL0,#0B7H
MOV TH0,#3CH
PUSH PSW
PUSH ACC
INC MSEC
MOV A, MSEC
CJNE A,#0AH,DONE ;
MOV MSEC,#00H
MOV A,SEC
INC A
DA A
MOV SEC,A
CJNE A,#60,DONE
MOV SEC,#00H
MOV A,MIN
INC A
; DA A
MOV MIN,A
CJNE A,#60,DONE
MOV MIN,#00H
MOV A,HOUR
INC A
; DA A
MOV HOUR,A
CJNE A,#24,DONE
MOV HOUR,#00H
DONE: POP ACC
POP PSW
RETI
END
_
七、设计总结
经过了这一个学期的学习,我学会了对单片机的一写简单的设计及操作。因此,我们设计了这一个电脑时钟的单片机系统,通过这个时钟可以控制北京时间,闹铃功能,达到了我们的初级要求。通过一个简单的电脑时钟,我们熟悉和掌握了单片机的许多应用对我们以后的工作中有很大的帮助。