单片机设计方案.docx
《单片机设计方案.docx》由会员分享,可在线阅读,更多相关《单片机设计方案.docx(23页珍藏版)》请在冰豆网上搜索。
单片机设计方案
单片机设计方案
电脑钟设计报告
一、概要:
现在电子钟与机械时钟相比已具有了更高的准确性和直观性,切无机械装置,具有更长的使用寿命。
现在,电子钟的制作不仅需要数字电路技术而且需要模拟电路技术和单片机技术,所以设计时可以方便的增加电子钟原有的功能。
电子钟的设计与制作可以采用数字电路实现,也可以采用单片机来完成。
若采用数字电路完成,所设计的电路相当复杂,大概需要十几块数字集成块,焊接复杂成本高。
若用单片机来设计制作完成,其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且成本也有所降低,所以在该设计与制作中采用单片机来完成。
电子钟电路可以由实时时钟模块、人机接口模块、报警模块等部分组成。
利用软件编程尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,见此奥因元器件精度不够引起的误差,但还是电子钟还是可以改进和提高,如选用更精密的元器件。
因此本设计的目的就是利用单片机来研制更具使用价值的电子钟。
二、实验目的:
1.实时显示当前时间即北京时间(时、分)
2.可修改北京时间(时、分)。
3.可设定闹铃时间(时、分)。
三、系统设计方案
根据系统功能要求,可将系统组成结构分成四大部分:
单片机控制中心、键盘接口、时钟显示和声音报时,如下图为系统的组成结构图。
其中,单片机控制中心是核心。
MCU根据按键输入,可切换不同的显示模式或设置不同的参数。
时钟显示完成北京时间或秒表时钟的信息。
声音报时可完成闹铃的提示。
四、系统功能
根据系统功能描述,可以将功能大致分成两类:
北京时间,闹铃功能。
系统设有六个数码管,12个按键,采用菜单式人机对话,便于操作,所以可以分成多个菜单功能键切换菜单,C/R或ALM键设置时间,确定菜单。
整个程序采用的是按键输入,数码管显示。
所以数码管采用动态扫描原理。
所以系统需使用单片机定时器资源。
定时时间可设为5ms,即六位数码管,每5ms扫描一位数码管,30ms循环一次。
按键接普通IO口,所以按键管理程序所涉及到的识键、译键均需采用软件扫描的方法。
这里选用定时扫描控制方式。
,通过用定时器0来实现计时功能。
五、试验设计所需硬件
89C51单片机芯片一个、LED数码显示管六个,低压电源,开关、电阻、电容及导线若干。
采用proteus软件进行模拟设计及调试工作。
六、设计原理图
最小系统有一个6MHZ单片机的晶振组成的时钟电路,和一个复位电路还有单片机组成。
显示电路的数码管由六个位选端口和八个段选端口组成。
本次选用的是共阴极数码管,并采用的是动态的显示方式段选择先全部并在一起,有统一的I/O资源来控制,公共端也由I/O资源来控制。
采用了矩阵式键盘可以减少I/O资源的使用
程序框图:
程序代码:
ORG0000H
AJMPMAIN
ORG000BH
AJMPCLOCK
ORG0030H
DISP0EQU30H
DISP1EQU31H
DISP2EQU32H
DISP3EQU33H
DISP4EQU34H
DISP5EQU35H
HOUREQU3CH
MINEQU3DH
SECEQU3EH
MSECEQU3FH
AHOUREQU40H
AMINEQU41H
ASECEQU42H
;F0BITPSW.5
F1BITPSW.1
MAIN:
MOVSP,#50H
CLRF0
CLRF1
MOVAHOUR,#0FFH
MOVAMIN,#0FFH
MOVASEC,#0FFH
;---------------------------------------
MOVR7,#10H;16个字节
MOVR0,#DISP0
CLRA
LOOP:
MOV@R0,A
INCR0
DJNZR7,LOOP
;MOVHOUR,#11
;MOVMIN,#59
;MOVSEC,#57
MOVTMOD,#01H
MOVTL0,#0B0H
MOVTH0,#3CH
SETBTR0
SETBEA
SETBET0
BEGIN:
ACALLALARM
ACALLKEYSCAN
CJNEA,#0AH,NEXT1
CLRTR0
MOVR1,#HOUR
AJMPMODE
NEXT1:
CJNEA,#0BH,BEGIN
JBF1,NEXT2
MOVR1,#AHOUR
MODE:
SETBF0
ACALLMODIFY
SETBTR0
CLRF0
AJMPBEGIN
NEXT2:
SETBP2.7
CLRF1
AJMPBEGIN
MODIFY:
ACALLKEYIN
ACALLCOMB
RET
KEYIN:
PUSHPSW
PUSHACC
SETBRS1
RS1RS0=10
MOVR0,#DISP0
MOVR7,#06H
L1:
CLRRS1
ACALLKEYSCAN
SETBRS1
CJNEA,#0AH,L2
L2:
JNCL1
MOV@R0,A
INCR0
DJNZR7,L1
CLRRS1
POPACC
POPPSW
;CLRRS1
RET
KEYSCAN:
ACALLTEST
JNZREMOV
ACALLDISPLAY
ACALLALARM
AJMPKEYSCAN
REMOV:
ACALLDISPLAY
ACALLTEST
JNZLIST
ACALLDISPLAY
ACALLALARM
AJMPKEYSCAN
LIST:
MOVR2,#0FEH
MOVR3,#00H
LINE0:
MOVA,R2
;MOVP2,A
MOVP0,A
;MOVA,P0
MOVA,P2
JBACC.0,LINE1
MOVA,#00H
AJMPTRYK
LINE1:
JBACC.1,LINE2
MOVA,#04H
AJMPTRYK
LINE2:
JBACC.2,NEXT
MOVA,#08H
AJMPTRYK
NEXT:
INCR3
MOVA,R2
JNBACC.3,EXIT
RLA
MOVR2,A
AJMPLINE0
EXIT:
AJMPKEYSCAN
TRYK:
ADDA,R3
PUSHACC
LETK:
ACALLTEST
JNZLETK
POPACC
RET
;----------------------------
TEST:
MOVA,#00H
;MOVP2,A
MOVP0,A
;MOVA,P0
MOVA,P2
CPLA
ANLA,#07H
RET
DISPLAY:
JBF0,DISP
ACALLSEPA
DISP:
PUSHPSW
PUSHACC
SETBRS0
MOVA,#0FFH
;MOVP2,A
MOVP0,A
MOVR0,#DISP0
MOVR7,#00H
MOVR6,#06H
MOVR5,#0FEH
DIS1:
MOVP0,#0FFH
MOVDPTR,#TAB
MOVA,@R0
MOVCA,@A+DPTR
MOVP1,A
MOVA,R5
MOVP0,A
DJNZR7,$
DJNZR7,$
INCR0
MOVA,R5
RLA
MOVR5,A
DJNZR6,DIS1
CLRRS0
POPACC
POPPSW
RET
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
COMB:
MOVR0,#DISP1
ACALLCOMB1;合字
CJNEA,#24,CHK
CHK:
JNCEXIT1
MOV@R1,A;
INCR1
MOVR0,#DISP3
ACALLCOMB1
CJNEA,#60,CHK1
CHK1:
JNCEXIT1
MOV@R1,A
INCR1
MOVR0,#DISP5
ACALLCOMB1
CJNEA,#60,CHK2
CHK2:
JNCEXIT1
MOV@R1,A
RET
EXIT1:
AJMPMAIN
COMB1:
MOVA,@R0
ANLA,#0FH
MOV43H,A
DECR0;
MOVA,@R0
ANLA,#0FH
MOVB,#10
MULAB
ADDA,43H
RET
SEPA:
PUSHPSW
PUSHACC
SETBRS0
MOVR0,#DISP5
MOVA,SEC
ACALLSEPA1
MOVR0,#DISP3
MOVA,MIN
ACALLSEPA1
MOVR0,#DISP1
MOVA,HOUR
ACALLSEPA1
CLRRS0
POPACC
POPPSW
;CLRRS0
RET
SEPA1:
MOVB,#10
DIVAB
MOV@R0,B
DECR0
MOV@R0,A
;MOV44H,A
;ANLA,#0FH
;MOV@R0,A
;DECR0
;MOVA,44H
;ANLA,#0F0H
;SWAPA
;MOV@R0,A
RET
ALARM:
MOVA,ASEC
CJNEA,SEC,BACK
MOVA,AMIN
CJNEA,MIN,BACK
MOVA,AHOUR
CJNEA,HOUR,BACK
CLRP2.7
SETBF1
BACK:
RET
CLOCK:
MOVTL0,#0B7H
MOVTH0,#3CH
PUSHPSW
PUSHACC
INCMSEC
MOVA,MSEC
CJNEA,#0AH,DONE;
MOVMSEC,#00H
MOVA,SEC
INCA
DAA
MOVSEC,A
CJNEA,#60,DONE
MOVSEC,#00H
MOVA,MIN
INCA
;DAA
MOVMIN,A
CJNEA,#60,DONE
MOVMIN,#00H
MOVA,HOUR
INCA
;DAA
MOVHOUR,A
CJNEA,#24,DONE
MOVHOUR,#00H
DONE:
POPACC
POPPSW
RETI
END
_
七、设计总结
经过了这一个学期的学习,我学会了对单片机的一写简单的设计及操作。
因此,我们设计了这一个电脑时钟的单片机系统,通过这个时钟可以控制北京时间,闹铃功能,达到了我们的初级要求。
通过一个简单的电脑时钟,我们熟悉和掌握了单片机的许多应用对我们以后的工作中有很大的帮助。