电子时钟 1.docx
《电子时钟 1.docx》由会员分享,可在线阅读,更多相关《电子时钟 1.docx(19页珍藏版)》请在冰豆网上搜索。
电子时钟1
南京工程学院
课程设计任务书
课程名称:
单片机原理及应用A
院(系、部、中心):
自动化学院
专业:
自动化(数控技术应用)
班级:
数控061
姓名:
吴胡
起止日期:
2008.12.17~2008.12.21
指导教师:
孙来业
电子时钟课程设计
一、设计目的
1、进一步掌握定时器的使用功能的使用和编程方法
2、进一步掌握中断处理程序的编程方法
3、进一步掌握数码显示电路的驱动方法
二、设计要求
利用CPU的定时器和试验仪上的提供的数码显示电路,设计一个电子时钟。
格式如下:
XXXXXX由左向右分别为:
时、分、秒
三、设备仪器
1、LAB6000微控制器试验系统
2、PC机一台
3、试验导线若干
四、试验步骤
1、硬件电路设计
本试验连接只需要接上显示/键盘的选择信号即可。
显示电路见附表中的键盘及LED显示电路或数码管显示试验。
2、程序框图
电子钟程序框图
3、程序流程图:
OUTSEGEQU08004H
OUTBITEQU08002H
ORG0000H
AJMPMAIN
ORG000BH
AJMPTIME
ORG0300H
MAIN:
mov20h,#00h
MOV21H,#00H
MOV22H,#00H
MOV23H,#00H
MOVIP,#02H、
MOVIE,#82H
MOVTMOD,#01H、
MOVTL0,#0B0H
MOVTH0,#3CH
SETBTR0、
MOVSP,#40H、
NEXT:
LCALLDISP、
LCALLKEY、
JZNEXT;
LCALLANKEY、
SJMPNEXT、
NOP
NOP
NOP
TIME:
PUSHACC
PUSHPSW
MOVTL0,#0B4H;¸
MOVTH0,#3CH
INC20H;
MOVA,20H
CJNEA,#10,RETI1
MOV20H,#00H
MOVA,21H
ADDA,#01H
DAA
MOV21H,A
CJNEA,#60H,RETI1
MOV21H,#00H
MOVA,22H
ADDA,#01H
DAA
MOV22H,A
CJNEA,#60H,RETI1
MOV22H,#00H
MOVA,23H
ADDA,#01H
DAA
MOV23H,A
CJNEA,#24H,RETI1
MOV23H,#00H
RETI1:
POPPSW;
POPACC
RETI;
NOP
NOP
DISP:
ANL2FH,#10H;MOVA,21H;´
ANLA,#0FH
ORLA,2FH
MOV2FH,A
MOVA,21H
ANLA,#0F0H
SWAPA
MOV2EH,A
ANL2DH,#10H
MOVA,22H;
ANLA,#0FH
ORLA,2DH
MOV2DH,A
MOVA,22H
ANLA,#0F0H
SWAPA
MOV2CH,A
ANL2BH,#10H
MOVA,23H;´
ANLA,#0FH
ORLA,2BH
MOV2BH,A
MOVA,23H
ANLA,#0F0H
SWAPA
MOV2AH,A
MOVR0,#2FH
MOVR3,#06H
MOVDPTR,#TABLE
MOVA,#01H
LOOP1:
MOVB,A;
MOVDPTR,#OUTBIT
MOVA,#0
MOVX@DPTR,A
MOVA,@R0
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVDPTR,#OUTSEG
MOVX@DPTR,A
MOVDPTR,#OUTBIT
MOVA,B
MOVX@DPTR,A
MOVR2,#01H;
DJNZR2,$
DECR0
MOVA,B
RLA
DJNZR3,LOOP1
RET
TABLE:
db3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
KEY:
MOVP3,#0FFH;
MOVA,P3
CPLA
ANLA,#3CH
JZRETX
LCALLDISP;
LCALLDISP
MOVA,P3
CPLA
ANLA,#3CH
JZRETX
MOVR6,A
LOOP2:
LCALLDISP;
MOVA,P3
CPLA
ANLA,#3CH
JNZLOOP2
MOVA,R6
RETX:
RET
NOP
NOP
ANKEY:
CLREA;
LX:
MOVA,R6
JBACC.2,L1;
JBACC.3,L2
JBACC.4,L3;
JNBACC.5,L12;
JB2BH.4,L6
JB2DH.4,L8
JB2FH.4,L9
L12:
LCALLDISP
LCALLDISP
LCALLKEYJZL12
LJMPLX
L2:
MOV25H,#00H;
CLR2BH.4
CLR2DH.4
CLR2FH.4
SETBEA
RET
L3:
JB2BH.4,L61
JB2DH.4,L81
JB2FH.4,L91
AJMPL12
L1:
MOVA,25H
JZLB1
JBACC.0,LB2
JBACC.1,LB3
JNBACC.2,L12
LB1:
MOV25H,#01H
SETB2BH.4
CLR2DH.4
CLR2FH.4
AJMPL12
LB3:
MOV25H,#04H
SETB2FH.4
CLR2DH.4
CLR2BH.4
AJMPL12
LB2:
MOV25H,#02H
SETB2DH.4
CLR2BH.4
CLR2FH.4
AJMPL12
L61:
AJMPL611;
L81:
AJMPL811;
L91:
AJMPL911
L6:
MOVA,23H
ADDA,#01H
DAA
MOV23H,A
CJNEA,#24H,L15
L15:
JCL112
MOV23H,#00H
L112:
AJMPL12
L8:
MOVA,22H;
ADDA,#01H
DAA
MOV22H,A
CJNEA,#60H,L16
L16:
JCL112
MOV22H,#00H
AJMPL12
L9:
MOVA,21H
ADDA,#01H
DAA
MOV21H,A
CJNEA,#60H,L17
L17:
JCL112
MOV21H,#00H
AJMPL12
L611:
MOVA,23H
ADDA,#99H
DAA
MOV23H,A
CJNEA,#99H,L112
MOV23H,#23H
AJMPL12
L811:
MOVA,22H;
ADDA,#99H
DAA
MOV22H,A
CJNEA,#99H,L112
MOV22H,#59H
AJMPL12
L911:
MOVA,21H
ADDA,#99H
DAA
MOV21H,A
CJNEA,#99H,L112
MOV21H,#59H
AJMPL12
NOP
NOP
END
4、程序调试:
调试程序:
打开LAB6000软件,录入程序以.ASM保存,编译,全速执行,观察试验结果。
问题分析:
1、在试验的时候发现数码管没有任何显示?
分析:
经过分析发现,在程序中没有写入数码管段控制符、位控制符,在添加段控制符、位控制符后可以观察到正确的结果,数码管可以正常显示,结果符合要求。
2、在试验的时候发现不能正常改变时间?
分析:
无法实现正常的时间分析调节,经过分析明白在试验的时候键盘调用错误,经过正确改正后,可以通过键盘的确认键、秒更改建、分更改建、时更改建来改变时间进行正确的时间调节。
3、在试验的时候试验控制程序没有问题,当没有结果显示?
分析:
经检查发现程序中采用外部中断1,而外部中断接线却接在了外部中断0上,经过改动后,可以看到正常的结果。
五、程序清单:
OUTSEGEQU08004H
OUTBITEQU08002H
ORG0000H
AJMPMAIN
ORG000BH
AJMPTIME
ORG0300H
MAIN:
mov20h,#00h
MOV21H,#00H
MOV22H,#00H
MOV23H,#00H
MOVIP,#02H
MOVIE,#82H
MOVTMOD,#01H
MOVTL0,#0B0H
MOVTH0,#3CH
SETBTR0
MOVSP,#40H
NEXT:
LCALLDISP;
LCALLKEY
JZNEXT;
LCALLANKEY;
SJMPNEXT
NOP
NOP
NOP
TIME:
PUSHACC;
PUSHPSW
MOVTL0,#0B4H;¸
MOVTH0,#3CH
INC20H;
MOVA,20H
CJNEA,#10,RETI1
MOV20H,#00H
MOVA,21H
ADDA,#01H
DAA
MOV21H,A
CJNEA,#60H,RETI1
MOV21H,#00H
MOVA,22H
ADDA,#01H
DAA
MOV22H,A
CJNEA,#60H,RETI1
MOV22H,#00H
MOVA,23H
ADDA,#01H
DAA
MOV23H,A
CJNEA,#24H,RETI1
MOV23H,#00H
RETI1:
POPPSW;
POPACC
RETI
NOP
NOP
DISP:
ANL2FH,#10H;
MOVA,21H;´
ANLA,#0FH
ORLA,2FH
MOV2FH,A
MOVA,21H
ANLA,#0F0H
SWAPA
MOV2EH,A
ANL2DH,#10H
MOVA,22H
ANLA,#0FH
ORLA,2DH
MOV2DH,A
MOVA,22H
ANLA,#0F0H
SWAPA
MOV2CH,A
ANL2BH,#10H
MOVA,23H;´
ANLA,#0FH
ORLA,2BH
MOV2BH,A
MOVA,23H
ANLA,#0F0H
SWAPA
MOV2AH,A
MOVR0,#2FH
MOVR3,#06H
MOVDPTR,#TABLE
MOVA,#01H
LOOP1:
MOVB,A;
MOVDPTR,#OUTBIT
MOVA,#0
MOVX@DPTR,A
MOVA,@R0
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVDPTR,#OUTSEG
MOVX@DPTR,A
MOVDPTR,#OUTBIT
MOVA,B
MOVX@DPTR,A
MOVR2,#01H
DJNZR2,$
DECR0
MOVA,B
RLA
DJNZR3,LOOP1
RET
TABLE:
db3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
KEY:
MOVP3,#0FFH;
MOVA,P3
CPLA
ANLA,#3CH
JZRETX;
LCALLDISP;
LCALLDISP
MOVA,P3
CPLA
ANLA,#3CH
JZRETX
MOVR6,A
LOOP2:
LCALLDISP;
MOVA,P3
CPLA
ANLA,#3CH
JNZLOOP2;
MOVA,R6
RETX:
RET
NOP
NOP
ANKEY:
CLREA
LX:
MOVA,R6
JBACC.2,L1
JBACC.3,L2
JBACC.4,L3
JNBACC.5,L12;
JB2BH.4,L6
JB2DH.4,L8
JB2FH.4,L9
L12:
LCALLDISP
LCALLDISP
LCALLKEY
JZL12
LJMPLX
L2:
MOV25H,#00H
CLR2BH.4
CLR2DH.4
CLR2FH.4
SETBEA
RET
L3:
JB2BH.4,L61
JB2DH.4,L81
JB2FH.4,L91
AJMPL12
L1:
MOVA,25H
JZLB1
JBACC.0,LB2
JBACC.1,LB3
JNBACC.2,L12
LB1:
MOV25H,#01H;
SETB2BH.4
CLR2DH.4
CLR2FH.4
AJMPL12
LB3:
MOV25H,#04H
SETB2FH.4
CLR2DH.4
CLR2BH.4
AJMPL12
LB2:
MOV25H,#02H
SETB2DH.4
CLR2BH.4
CLR2FH.4
AJMPL12
L61:
AJMPL611;
L81:
AJMPL811;
L91:
AJMPL911
L6:
MOVA,23H
ADDA,#01H
DAA
MOV23H,A
CJNEA,#24H,L15
L15:
JCL112
MOV23H,#00H
L112:
AJMPL12
L8:
MOVA,22H;·
ADDA,#01H
DAA
MOV22H,A
CJNEA,#60H,L16
L16:
JCL112
MOV22H,#00H
AJMPL12
L9:
MOVA,21H
ADDA,#01H
DAA
MOV21H,A
CJNEA,#60H,L17
L17:
JCL112
MOV21H,#00H
AJMPL12
L611:
MOVA,23H
ADDA,#99H
DAA
MOV23H,A
CJNEA,#99H,L112
MOV23H,#23H
AJMPL12
L811:
MOVA,22H;
ADDA,#99H
DAA
MOV22H,A
CJNEA,#99H,L112
MOV22H,#59H
AJMPL12
L911:
MOVA,21H
ADDA,#99H
DAA
MOV21H,A
CJNEA,#99H,L112
MOV21H,#59H
AJMPL12
NOP
NOP
END
六、试验体会
通过本次试验,我感受颇深,在试验的时候让我明白了数码管显示程序的编程方法,掌握了键盘调用的程序编程方法,掌握了时间延时程序的编程方法,熟悉了中断程序的编程方法,在做电子钟程序设计的时候,能够中断程序、延时程序、数码管显示程序、键盘调用程序有机的结合在一起构成一个完整的控制程序,实现了电子钟的计时、时间调节的控制,同时在试验过程中熟悉了8051编程方法,巩固了已学知识,提高了自己的动手能力,加强了理论知识与实际相联系的能力,同时诚挚感谢在试验中老师孜孜不倦的给予我们帮助和鼓励,老师诲人不倦的精神值得我们永远去坚持和追求,不论做学问还是做人这种精神都不可以丢,不断在以后的学习工作中提高自己的科学严谨的作风,诚恳虚心的为人作风,不断奋斗进去。