单片机多功能时钟程序设计-毕业设计_第1页
单片机多功能时钟程序设计-毕业设计_第2页
单片机多功能时钟程序设计-毕业设计_第3页
单片机多功能时钟程序设计-毕业设计_第4页
单片机多功能时钟程序设计-毕业设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE36沈阳工程学院课程设计设计题目:多功能时钟程序设计

沈阳工程学院课程设计任务书课程设计题目:多功能时钟程序设计

多功能时钟程序设计成绩评定表指导教师评审意见评价内容具体要求权重评分加权分论证独立查阅文献,制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作。0.25432工作量按期圆满完成规定的设计任务,工作量饱满,0.25432说明书的质量说明书立论正确,论述充分,文字通顺,技术用语准确,符号统一,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以12)分加权分合计指导教师签名:年月日评阅教师评审意见评价内容具体要求权重评分加权分查文献查阅文献有广泛性,有综合归纳资料的能力0.25432工作量工作量饱满,难度适中0.55432说明书的质量说明书立论正确,论述充分,文字通顺,技术用语准确,符号统一,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以8)分加权分合计评阅教师签名:年月日课程设计总评成绩分系部:班级:学生姓名:中文摘要时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。数字电子钟的设计方法有多种,其中,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号。该数字钟采用液晶显示屏显示其时间与定时时间,即采用P6口输入,P7口输出,由R0输入需显示的时间,再通过延时程序将时间稳定的显示在液晶屏上。校准时间由外部中断4及开关按键控制;定时时间由外部中断3及开关按键控制,KEY3、KEY4键每按一次其时分秒的数字增加一。关键字:单片机,数字钟,校时,定时器目录TOC\o\h\z\u1 课程设计要求 11.1 设计主要内容及要求 11.2 对设计论文撰写内容、格式及字数的要求 11.3 时间进度安排 12 课程设计思路 22.1 计时 22.2 校时 22.3 闹铃 23 设计流程图 34 各模块设计 44.1 时钟部分 4 时钟程序分析 4 时钟部分程序 44.2 定时部分 6 定时程序分析 6 定时部分程序 64.3 校时部分 8 校时程序分析 8 校时部分程序 84.4 显示部分 10 显示程序分析 10 显示部分程序 105 工作过程分析 165.1 时钟程序分析 165.2 定时程序分析 175.3 校时程序分析 195.4 显示程序分析 206 主要元器件介绍 236.1 C8051F020单片机 236.2 液晶显示器 24总结 26致谢 27参考文献 27附录 28多功能时钟程序设计课程设计要求设计主要内容及要求编写多功能时钟程序能够显示时、分、秒的时钟程序。具有闹钟功能。能够进行时间调整。对设计论文撰写内容、格式及字数的要求课程设计论文是体现和总结课程设计成果的载体,一般不应少于3000字。学生应撰写时应做到文理通顺,内容正确完整,书写工整,装订整齐。论文要求打印,打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求课程设计论文装订顺序为:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、参考文献。时间进度安排顺序阶段日期计划完成内容地址11月教师讲解题目,学生查阅相关资料实训F42221月查阅相关资料、进行方案论证实训F42231月确定闹钟设置时间调整方法实训F42241月10、11、14日编写程序实训F42251月15、16日调试程序实训F42261月撰写论文实训F42271月论文答辩实训F422课程设计思路本文主要介绍用单片机编程来实现多功能时钟的方法,本设计由单片机C8051F芯片、LED灯液晶显示屏为核心,辅以必要的程序,构成了一个单片机数字时钟。与传统时钟相比,它具有走时精确,显示直观等特点。它的计时周期为12小时,分上下午,显满刻度为“11时59分59秒”,然后上下午交替,另外具有校时、闹钟显示星期等功能等特点。计时当T0进入中断后,先给T0计时1s,再计时60s;当秒计数满60s后开始分的计数,同时将秒清零,否则返回程序继续执行;同理当分计数到60min,开始时的计时并共计数12次,与此同时分、秒清零。当完成12小时的计时后,切换上下午,当从下午切换到上午时为12:00:00星期加一,加到8时再变到1,然后返回主程序继续。校时校时就是对时间进行调整,现将其赋一初值,然后将初值带入计时程序中,然后将其作为初值,计时从该值开始显示.。其中初值的设置由外部中断KEY3和开关按键设定,K1、K2、K3、K4、K6分别控制时、分、秒、上下午、星期。闹铃定时程序实则就是让系统设定一个闹铃时间,并使LED灯在到达时间时亮。先判断秒是否相等,不等则继续,相等则判断分,同理分相等时判断时、上下午、星期,当系统设定的秒、分、时、上下午、星期与显示的时间都相等时跳到程序TSR使LED亮。其中初值的设置由外部中断KEY4和开关按键设定,K1、K2、K3、K4、K6分别控制时、分、秒、上下午、星期。设计流程图主程序主程序定时50ms定时50ms显示显示秒加一秒加一校时判断是否为60s校时判断是否为60s分加一分加一定时定时判断是否为60m判断是否为60m时加一判断是否相等时加一判断是否相等判断是否为判断是否为12时加一时加一时加一时加一灯亮灯亮上下午翻转时加一上下午翻转时加一判断是否为下午判断是否为下午星期变为1返回主程序判断是否为8星期加一星期变为1返回主程序判断是否为8星期加一各模块设计时钟部分时钟程序分析主程序主要是使各端口使能,保证各端口正常使用(主程序请参考附录)。T0工作于定时方式1,进行16位计数。其中秒的地址为30H,分的地址为31H,小时的地址为32H,上下午的地址是50H,星期的地址是34H。当T0进入中断后,先给T0赋初值3CB0,定时50ms,循环20次计时1s,再跳入子程序ABC中循环60次计时60s;当秒计数满60s后开始分的计数,同时将秒清零重新计时,否则返回程序继续执行;同理当分计数到60min,程序开始时的计时并共计数12次,当计数满12次时,上下午翻转,计满13次时时针变为1,与此同时分、秒清零需重新开始计数,当从下午变成上午时,星期加1,星期计满7次变为1。时钟部分程序$INCLUDE(C8051F020.INC) ORG0000H AJMPMAIN ORG000BH AJMPT0 ORG0093H LJMPKEY3 ORG009BH LJMPKEY4 ORG0100HMAIN:MOVWDTCN,#0DEH;关看门狗MOVWDTCN,#0ADHMOVOSCICN,#05H;内部振荡4MHz MOVP1MDOUT,#0FFH;设置P1的输出方式MOVP74OUT,#0F0H;端口6、端口7输出方式为推挽输出MOVCKCON,#00H;T0定时器12分频MOVTMOD,#01H;T0处于工作方式一,16位MOVTCON,#10H;TR0=1,允许T0计数MOVXBR2,#40H;交叉开关总使能 MOVEIE2,#30H;中断6、中断7使能 MOVP3IF,#0CH;中断7上升沿触发MOV50H,#00H MOV60H,#00H MOVTH0,#3CH;赋初值MOVTL0,#0B0HMOV30H,#00H;秒存储地址MOV31H,#00H;分存储地址MOV32H,#12H;时存储地址 MOV33H,#00H;上下午储存地址MOV34H,#01H; 星期储存地址MOV40H,#00H MOV41H,#00H MOV42H,#12HMOV43H,#00H MOV44H,#01HMOVR1,#04H;1s循环次数MOVIE,#82H;中断使能AJMP$T0:MOVTL0,#0B0H;定时50msMOVTH0,#3CH DJNZR1,X;计时1sMOVR1,#04HLCALLABC;跳转到计时程序LCALLDING;跳转到定时程序 LCALLTIME;跳转到显示程序X:RETIABC:MOVA,30HADDA,#1;秒加1DAA;做十进制调整MOV30H,A CJNEA,#60H,Y;是否等于60s?若不是,则跳至Y MOV30H,#00H;若是,则30H清零MOVA,31HADDA,#1;分加1DAA;做十进制调整MOV31H,ACJNEA,#60H,Y;是否等于60s?若不是,则跳至YMOV31H,#00H;若是,则31H清零MOVA,32HADDA,#1;时加1DAA;做十进制调整MOV32H,A CJNEA,#12H,L MOVA,31H CJNEA,#00H,L MOVA,30H CJNEA,#00H,L MOVA,50H CPLA MOV50H,A CJNEA,#00H,Y MOVA,34H ADDA,#01H DAA MOV34H,A CJNEA,#08H,Y MOV34H,#01HL:MOVA,32HCJNEA,#13H,YMOV32H,#01H Y:RET定时部分定时程序分析定时程序实则就是人为设定一个闹铃时间,并使LED灯在到达时间时亮。将秒赋予A,判断系统是否与设定的一致,不等则继续执行下一条指令,相等则跳转到lop1判断分;再将分赋予A,判断系统是否与设定的一致,不等则继续执行下一条指令,相等则跳转到lop2判断时;然后将时赋予A,判断系统是否与设定的一致,不相等则继续下一条指令,相等则跳到LOP3判断上下午;再将上下午赋予A,判断系统是否与设定的一致,不相等则继续下一条指令,相等则跳到lop4判断星期,将星期赋予A,判断系统是否与设定的相等,不相等则继续下一条指令,相等时跳转到TSR子程序。定时时间由外部中断4控制,每按一下,其值增加一,时、分、秒、上下午星期由开关按键K1,K2,K3,K4、K6控制。判断位00H、01H、02H、03、05是否为0,哪个不为0跳转到相应的时、分、秒、上下午、星期程序中。在42H、41H、40H、60H、44H中存放时、分、秒、上下午、星期。当系统设定的秒、分、时、上下午、星期与显示的时间都相等时LED灯亮,表示闹铃时间到。将K1拨到0时,按下KEY4,可熄灭LED灯。定时部分程序DING:MOVA,30H;定时程序CJNEA,40H,N AJMPLOP1LOP1:MOVA,31HCJNEA,41H,NAJMPLOP2LOP2:MOVA,32HCJNEA,42H,NAJMPLOP3LOP3:MOVA,50HCJNEA,60H,N AJMPLOP4LOP4:MOVA,34HCJNEA,44H,N AJMPTSRN:RETTSR:MOVP1,#00HRETKEY4:LCALLT2LCALLTIMEMOVP3IF,#00H RETIT2:MOV20H,P5;定时程序 JNB00H,SHI1 JNB01H,FEN1 JNB02H,MIAO1JNB03H,XINGQI1 JNB05H,ZHOU1 RETZHOU1:MOVA,44HADDA,#1 DAA MOV44H,A CJNEA,#08H,MB MOV44H,#01H RETXINGQI1:MOVA,60HCPLA MOV60H,A RETSHI1:MOVP1,#0FFHMOVA,42HADDA,#1DAAMOV42H,ACJNEA,#13H,MB MOV42H,#1 RETFEN1:MOVA,41HADDA,#1DAAMOV41H,ACJNEA,#60H,MBMOV41H,#0 RETMIAO1:MOVA,40HADDA,#1DAAMOV40H,ACJNEA,#60H,MBMOV40H,#0MB:RET校时部分校时程序分析校时部分就是在系统时间不准确的情况下,给系统赋定值,使系统时间可以从该值开始变化,使用外部中断KEY3,先给30H、31H、32H、50H、34H赋所需时间,然后调用程序将其显示。其中进入中断后调用子程序T1可以由KEY3键设置所定时间每按一次KEY3键值增加一,是调整时还是分或秒,可由开关量输入键K1、K2、K3、K4、K5分别控制。其主程序中加入了外不中断的有关指令.但需注意的是,在调解时除打开时、分、秒上下午、星期控制键外还需打开K11键。(主程序只给出所加指令)校时部分程序KEY3:LCALLT1LCALLTIME MOVP3IF,#00HRETIT1:MOV20H,P5;校准程序 JNB00H,SHI JNB01H,FENJNB02H,MIAO JNB03H,XINGQI JNB05H,ZHOU RETZHOU:MOVA,34HADDA,#1 DAA MOV34H,A CJNEA,#08H,MN MOV34H,#01H RETXINGQI:MOVA,50HCPLAMOV50H,ARETSHI:MOVA,32HADDA,#1DAAMOV32H,ACJNEA,#13H,MN MOV32H,#01HRETFEN:MOVA,31HADDA,#1DAAMOV31H,ACJNEA,#60H,MNMOV31H,#0 RETMIAO:MOVA,30HADDA,#1DAAMOV30H,ACJNEA,#60H,MNMOV30H,#0MN:RET显示部分显示程序分析显示程序就是将程序中的时分秒显示在液晶显示屏上使其看起来更直观、方便。其中第一行显示系统运行时间,第二行显示定时时间。该程序主要根据老师所给程序改编,利用子程序LINE设定显示屏的主要参数.让时间显示在上一行且只显示一个时分秒,如“12:12:12PMXQ1”,不造成显示多个的后果。NCD为常函数表,将0-9、A、P、M、X、Q数字和字母依次存放到以左边标号为起始地址的存储单元中。TIME中就是将时分秒的十位、各位分别赋予R0,还有判断50H中是00H还是0FFH,如果是00H就显示上午AM,然后星期加一,如果是0FFH就显示下午PM,然背后调用查表程序将其显示在液晶屏上。值得注意的是:时与分、分与秒之间需将冒号也显示出来。显示部分程序TIME:CLRAMOVXBR0,A LCALLLCD MOVDPTR,#NCD MOVA,32H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,32H LCALLLINE1 LCALLDELAY MOVR0,#10 LCALLLINE1 LCALLDELAY MOVA,31H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,31H LCALLLINE1 LCALLDELAY MOVR0,#10 LCALLLINE1 LCALLDELAY MOVA,30H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,30H LCALLLINE1 LCALLDELAY MOVA,50H CJNEA,#0FFH,LOPA MOVR0,#12 LCALLLINE1 LCALLDELAY MOVR0,#13 LCALLLINE1 LCALLDELAY AJMPLOPP LOPA:MOVR0,#11 LCALLLINE1 LCALLDELAY MOVR0,#13 LCALLLINE1 LCALLDELAY LOPP:MOVR0,#14 LCALLLINE1 LCALLDELAY MOVR0,#15 LCALLLINE1 LCALLDELAY MOVR0,34H LCALLLINE1 LCALLDELAY MOVDPTR,#NED MOVP7,#0C0HMOVP6,#1H MOVP6,#0H MOVR0,#11 LCALLLINE1 LCALLDELAY MOVA,42H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,42H LCALLLINE1 LCALLDELAY MOVR0,#10 LCALLLINE1 LCALLDELAY MOVA,41H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,41H LCALLLINE1 LCALLDELAY MOVR0,#10 LCALLLINE1 LCALLDELAY MOVA,40H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,40H LCALLLINE1 LCALLDELAY MOVA,60H CJNEA,#0FFH,LOPA1 MOVR0,#12LCALLLINE1 LCALLDELAY MOVR0,#13 LCALLLINE1 LCALLDELAY LJMPLOP44 LOPA1:MOVR0,#11 LCALLLINE1 LCALLDELAY MOVR0,#13 LCALLLINE1 LCALLDELAYLOP44:MOVR0,#14 LCALLLINE1 LCALLDELAY MOVR0,#15 LCALLLINE1 LCALLDELAY MOVR0,44H LCALLLINE1 LCALLDELAY1 RETLINE1:MOVA,R0 ANLA,#0FHMOVCA,@A+DPTRMOVP7,AMOVP6,#05HMOVP6,#04HRETLCD:LCALLDELAYMOVP7,#38HMOVP6,#01HMOVP6,#00HLCALLDELAYMOVP7,#0EHMOVP6,#01HMOVP6,#00HLCALLDELAYMOVP7,#06HMOVP6,#01HMOVP6,#00HLCALLDELAYMOVP7,#01HMOVP6,#01HMOVP6,#00HLCALLDELAYRETDELAY:MOVR6,#50DELAY0:MOVR5,#50DJNZR5,$DJNZR6,DELAY0 RETDELAY1:MOVR4,#35;DDDELAY2:MOVR3,#150DELAY3:MOVR2,#250 DJNZR2,$ DJNZR3,DELAY3 DJNZR4,DELAY2 RETNCD:DB'0','1','2','3','4','5','6','7','8','9',':','A','P','M','X','Q','';常数表NED:DB'0','1','2','3','4','5','6','7','8','9',':','A','P','M','X','Q','';常数表 END工作过程分析时钟程序分析在设计时分秒的程序时,首先定时1s,然后循环60次,则计时60秒,再判断是否循环60次,没有则继续执行以完成秒的计时,若完成60次循环则分加一,同理当分计数满60时,时加一,在判断是否计数满12次,若完成12次则上下午翻转,在判断是否由下午变成上午,若是则星期加1,以此完成时时分秒上下午星期的计时并据此编写程序。(主程序未给出)T0:MOVTL0,#0B0H;定时50msMOVTH0,#3CH DJNZR1,X;计时1sMOVR1,#04HLCALLABC;跳转到计时程序LCALLDING;跳转到定时程序 LCALLTIME;跳转到显示程序X:RETIABC:MOVA,30HADDA,#1;秒加1DAA;做十进制调整MOV30H,A CJNEA,#60H,Y;是否等于60s?若不是,则跳至Y MOV30H,#00H;若是,则30H清零MOVA,31HADDA,#1;分加1DAA;做十进制调整MOV31H,ACJNEA,#60H,Y;是否等于60s?若不是,则跳至YMOV31H,#00H;若是,则31H清零MOVA,32HADDA,#1;时加1DAA;做十进制调整MOV32H,A CJNEA,#12H,L MOVA,31H CJNEA,#00H,L MOVA,30H CJNEA,#00H,L;是否为12:00:00?若不是,跳L MOVA,50H CPLA MOV50H,A;上下午翻转 CJNEA,#00H,Y MOVA,34H;判断是否是下午变成上午,若不是,跳Y ADDA,#01H;星期加1 DAA MOV34H,A CJNEA,#08H,Y MOV34H,#01HL:MOVA,32H;时钟是否为13,若不是,跳YCJNEA,#13H,YMOV32H,#01H ;若是,时钟变成1Y:RETT0进入中断,开始时分秒上下午星期的计时。最大显示为“11:59:59PMXQ7”定时程序分析定时程序实则就是让时钟设定一个闹铃时间,当系统时间与设定的时间一致时显示时间并使LED灯亮。先判断秒是否相等,不等则继续,相等则跳转到lop1判断分,同理相等时跳转到lop2、lop3、lop4判断时上下午、星期,当系统设定的与显示的时间都相等时跳到程序TSR使LED亮。闹钟时间由K4调整。DING:MOVA,30HCJNEA,40H,N;判断秒是否相等 AJMPLOP1LOP1:MOVA,31HCJNEA,41H,N;判断分是否相等AJMPLOP2LOP2:MOVA,32HCJNEA,42H,N;判断时是否相等AJMPLOP3LOP3:MOVA,50HCJNEA,60H,N;判断上下午是否相等 AJMPLOP4LOP4:MOVA,34HCJNEA,44H,N;判断星期是否相等 AJMPTSRN:RETTSR:MOVP1,#00HRETKEY4:LCALLT2LCALLTIMEMOVP3IF,#00H RETIT2:MOV20H,P5;定时程序 JNB00H,SHI1 JNB01H,FEN1 JNB02H,MIAO1 JNB03H,WU1 JNB05H,ZHOU1;判断加1的是哪个 RETZHOU1:MOVA,44HADDA,#1;星期加1 DAA MOV44H,A CJNEA,#08H,MB MOV44H,#01H RETWU1:MOVA,60HCPLA;上下午翻转 MOV60H,A RETSHI1:MOVP1,#0FFHMOVA,42HADDA,#1;时加1DAAMOV42H,ACJNEA,#13H,MB MOV42H,#1 RETFEN1:MOVA,41HADDA,#1;分加1DAAMOV41H,ACJNEA,#60H,MBMOV41H,#0 RETMIAO1:MOVA,40HADDA,#1;秒加1DAAMOV40H,ACJNEA,#60H,MBMOV40H,#0MB:RET开始我用P0和P1控制系统时间和闹钟时间的上下午,但是不成功,因为判断是否相等的时候没有适合的指令,之后我改用50H、60H分别控制,上下午切换时直接CPL50H、60H。校时程序分析校时程序在校时的时候,时间是不会停止走的,按下KEY3、KEY4,再根据K1、K2、K3、K4、K6的值分别时、分、秒、上下午、星期加1或翻转。KEY3:LCALLT1LCALLTIME MOVP3IF,#00HRETIT1:MOV20H,P5;校准程序 JNB00H,SHI JNB01H,FENJNB02H,MIAO JNB03H,WU JNB05H,ZHOU;判断调整哪个RETZHOU:MOVA,34HADDA,#1;星期加1 DAA MOV34H,A CJNEA,#08H,MN MOV34H,#01H RETWU:MOVA,50HCPLAMOV50H,ARETSHI:MOVA,32HADDA,#1DAAMOV32H,ACJNEA,#13H,MN MOV32H,#01HRETFEN:MOVA,31HADDA,#1DAAMOV31H,ACJNEA,#60H,MNMOV31H,#0 RETMIAO:MOVA,30HADDA,#1DAAMOV30H,ACJNEA,#60H,MNMOV30H,#0MN:RET;显示程序分析该部分主要是将随时变化的时间及定时时间显示到液晶显示屏上,开始我用ASCII表示,但是太麻烦,而且网上找的ASCII表有些还不适合我们这款单片机,因此我用''这种方法,直接往里面打上需要显示的字母和数字,然后按排列顺序往LCD显示屏上送,便可以方便的将要显示的东西显示出来。TIME:CLRA;累加器清零MOVXBR0,A LCALLLCD MOVDPTR,#NCD MOVA,32H SWAPA;高地位交换 MOVR0,A LCALLLINE1;显示小时的十位 LCALLDELAY MOVR0,32H LCALLLINE1;显示小时的个位 LCALLDELAY MOVR0,#10;显示(:) LCALLLINE1 LCALLDELAY MOVA,31H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,31H LCALLLINE1 LCALLDELAY MOVR0,#10 LCALLLINE1 LCALLDELAY MOVA,30H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,30H LCALLLINE1 LCALLDELAY MOVA,50H CJNEA,#0FFH,LOPA;判断上下午 MOVR0,#12 LCALLLINE1 LCALLDELAY MOVR0,#13 LCALLLINE1 LCALLDELAY AJMPLOPP LOPA:MOVR0,#11 LCALLLINE1 LCALLDELAY MOVR0,#13 LCALLLINE1 LCALLDELAY LOPP:MOVR0,#14 LCALLLINE1 LCALLDELAY MOVR0,#15 LCALLLINE1 LCALLDELAY MOVR0,34H;显示星期 LCALLLINE1 LCALLDELAY MOVDPTR,#NED MOVP7,#0C0HMOVP6,#1H MOVP6,#0H MOVR0,#11;换行 LCALLLINE1 LCALLDELAY MOVA,42H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,42H LCALLLINE1 LCALLDELAY MOVR0,#10 LCALLLINE1 LCALLDELAY MOVA,41H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,41H LCALLLINE1 LCALLDELAY MOVR0,#10 LCALLLINE1 LCALLDELAY MOVA,40H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,40H LCALLLINE1 LCALLDELAY MOVA,60H CJNEA,#0FFH,LOPA1 MOVR0,#12 LCALLLINE1 LCALLDELAY MOVR0,#13 LCALLLINE1 LCALLDELAY LJMPLOP44 LOPA1:MOVR0,#11 LCALLLINE1 LCALLDELAY MOVR0,#13 LCALLLINE1 LCALLDELAYLOP44:MOVR0,#14 LCALLLINE1 LCALLDELAY MOVR0,#15 LCALLLINE1 LCALLDELAY MOVR0,44H LCALLLINE1 LCALLDELAY1 RETLINE1:MOVA,R0 ANLA,#0FH;屏蔽高4位MOVCA,@A+DPTR;查表MOVP7,AMOVP6,#05HMOVP6,#04HRET由于LCD一次只能显示一个数字或字母,所以显示时间时,先将高地位交换,再屏蔽高4位,便可将时针的十位送入显示屏中,然后将时钟不交换高地位,直接屏蔽高4位,便可将小时的个位送入显示屏中,以此类推,便可显示出时、分、秒、上下午、星期。主要元器件介绍C8051F020单片机C8051F系列单片机是cygnal出的一种混合信号系统级单片机。片内含CIP-51的CPU内核,其指令系统与MCS-51完全兼容。而C8051F020单片机是该系列中一个比较有代表性的型号,它是完全集成的混合信号系统级SCM芯片,含有64kB片内Flash程序存储器,4352B的RAM、8个I/O端口共64根I/O口线、一个12位A/D转换器和一个8位A/D转换器以及一个双12位D/A转换器、2个比较器、5个16位通用定时器、5个捕捉/比较模块的可编程计数/定时器阵列、看门狗定时器、VDD监视器和温度传感器等部分。C8051F020单片机支持双时钟。其工作电压范围为2.7~3.6V(端口I/O,RST和JTAG引脚的耐压为5V)。与以前的51系列单片机相比,C8051F020增添了许多功能,同时其可靠性和速度也有了很大提高。其原理图如下图所示:图6.1液晶显示器液晶显示屏(LCD)用于数字型钟表和许多便携式计算机的一种显示器类型。LCD显示使用了两片极化材料,在它们之间是液体水晶溶液。电流通过该液体时会使水晶重新排列,以使光线无法透过它们。因此,每个水晶就像百叶窗,既能允许光线穿过又能挡住光线。液晶显示器(LCD)目前科技信息产品都朝着轻、薄、短、小的目标发展,在计算机周边中拥有悠久历史的显示器产品当然也不例外。在便于携带与搬运为前题之下,传统的显示方式如CRT映像管显示器及LED显示板等等,皆受制于体积过大或耗电量甚巨等因素,无法达成使用者的实际需求。而液晶显示技术的发展正好切合目前信息产品的潮流,无论是直角显示、低耗电量、体积小、还是零辐射等优点,都能让使用者享受最佳的视觉环境。液晶显示器,依驱动方式来分类可分为静态驱动(Static)、单纯矩阵驱动(SimpleMatrix)以及主动矩阵驱动(ActiveMatrix)三种。其中,被动矩阵型又可分为扭转式向列型(TwistedNematic;TN)、超扭转式向列型(SuperTwistedNematic;STN)及其它被动矩阵驱动液晶显示器;而主动矩阵型大致可区分为薄膜式晶体管型(ThinFilmTransistor;TFT)及二端子二极管型(Metal/Insulator/Metal;MIM)二种方式。其样式如下图所示:图6.2总结两周的课程设计终于结束了。在这两周的时间里,我学到了很多。通过这两周的课设,我学到了更多单片机技术方面的知识,所学的课本知识也更加扎实。除此之外,我还从中体会到了这门课的趣味性。在做课程设计之前,我先查阅了与题目有关的一些资料,了解相关的知识,然后以课本为主,根据所学的基本知识,再加上老师所讲的一些方法、步骤,对自己的题目有了一个大致的构思。在做课程设计时,根据自己的思路与想法,我先编写出了各个模块的程序,然后根据题目所给的要求,反复进行编程并不断修改程序,最终完成了总程序。在课程设计期间,总会有这样那样的问题困扰着我。每当我找不出原因时,我都会感到很沮丧,但我仍旧坚持了下来。或找老师问,或与同学交流,而在交流的同时我又会学到很多,正是因为这样,我才完成了课设。同时我也明白:在做事时,不能仅仅靠自己的力量,而是要与周围的同学互相帮助,共同完成。一个人的力量是有限的,众人拾柴火焰高,对自己不会的问题要不耻下问,虚心请教,这样才能使自己的设计更完整、更全面。总之,对我而言,这两周虽然很累,但我过得很充实。在这期间,我体会到了学习的快乐,明白了很多做人做事的道理。这对我来说将会是我人生中很宝贵的经验。同时我也会更加努力,争取在期末取得好成绩。致谢感谢吕老师对我的帮助!感谢鞠智恒对我的帮助!参考文献【1】胡伟,季晓衡编著。单片机C语言设计及应用实例。北京:人民邮电出版社,2003【2】杨居义、刘青.孟凡玉.单片机课程设计实例教程.北京.清华大学出版社.2010【3】鲍可进.赵念强.陈向益.C8051F单片机原理及应用.北京.中国电力出版社.2006附录$INCLUDE(C8051F020.INC) ORG0000H AJMPMAIN ORG000BH AJMPT0 ORG0093H LJMPKEY3 ORG009BH LJMPKEY4 ORG0100HMAIN:MOVWDTCN,#0DEHMOVWDTCN,#0ADHMOVOSCICN,#05H MOVP1MDOUT,#0FFHMOVP74OUT,#0F0HMOVCKCON,#00HMOVTMOD,#01HMOVTCON,#10HMOVXBR2,#40H MOVEIE2,#30H MOVP3IF,#0CHMOV50H,#00H MOV60H,#00H MOVTH0,#3CHMOVTL0,#0B0HMOV30H,#00HMOV31H,#00HMOV32H,#12H MOV33H,#00HMOV34H,#01HMOV40H,#00H MOV41H,#00H MOV42H,#12H MOV43H,#00H MOV44H,#01HMOVR1,#04HMOVIE,#82HAJMP$T0:MOVTL0,#0B0HMOVTH0,#3CH DJNZR1,XMOVR1,#04HLCALLABCLCALLDING LCALLTIMEX:RETIABC:MOVA,30HADDA,#1DAAMOV30H,A CJNEA,#60H,Y MOV30H,#00HMOVA,31HADDA,#1DAAMOV31H,ACJNEA,#60H,YMOV31H,#00HMOVA,32HADDA,#1DAAMOV32H,A CJNEA,#12H,L MOVA,31H CJNEA,#00H,L MOVA,30H CJNEA,#00H,L MOVA,50H CPLA MOV50H,A CJNEA,#00H,Y MOVA,34H ADDA,#01H DAA MOV34H,A CJNEA,#08H,Y MOV34H,#01HL:MOVA,32HCJNEA,#13H,YMOV32H,#01H Y:RETDING:MOVA,30H;定时程序CJNEA,40H,N AJMPLOP1LOP1:MOVA,31HCJNEA,41H,NAJMPLOP2LOP2:MOVA,32HCJNEA,42H,NAJMPLOP3LOP3:MOVA,50HCJNEA,60H,N AJMPLOP4LOP4:MOVA,34HCJNEA,44H,N AJMPTSRN:RETTSR:MOVP1,#00HRETKEY3:LCALLT1LCALLTIME MOVP3IF,#00HRETIT1:MOV20H,P5;校准程序 JNB00H,SHI JNB01H,FENJNB02H,MIAO JNB03H,WU JNB05H,ZHOU RETZHOU:MOVA,34HADDA,#1 DAA MOV34H,A CJNEA,#08H,MN MOV34H,#01H RETWU:MOVA,50HCPLAMOV50H,ARETSHI:MOVA,32HADDA,#1DAAMOV32H,ACJNEA,#13H,MN MOV32H,#01HRETFEN:MOVA,31HADDA,#1DAAMOV31H,ACJNEA,#60H,MNMOV31H,#0 RETMIAO:MOVA,30HADDA,#1DAAMOV30H,ACJNEA,#60H,MNMOV30H,#0MN:RETKEY4:LCALLT2LCALLTIMEMOVP3IF,#00H RETIT2:MOV20H,P5;定时程序 JNB00H,SHI1 JNB01H,FEN1 JNB02H,MIAO1 JNB03H,WU1 JNB05H,ZHOU1 RETZHOU1:MOVA,44HADDA,#1 DAA MOV44H,A CJNEA,#08H,MB MOV44H,#01H RETWU1:MOVA,60HCPLAMOV60H,ARETSHI1:MOVP1,#0FFHMOVA,42HADDA,#1DAAMOV42H,ACJNEA,#13H,MB MOV42H,#1 RETFEN1:MOVA,41HADDA,#1DAAMOV41H,ACJNEA,#60H,MBMOV41H,#0 RETMIAO1:MOVA,40HADDA,#1DAAMOV40H,ACJNEA,#60H,MBMOV40H,#0MB:RETTIME:CLRAMOVXBR0,A LCALLLCD MOVDPTR,#NCD MOVA,32H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,32H LCALLLINE1 LCALLDELAY MOVR0,#10 LCALLLINE1 LCALLDELAY MOVA,31H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,31H LCALLLINE1 LCALLDELAY MOVR0,#10 LCALLLINE1 LCALLDELAY MOVA,30H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,30H LCALLLINE1 LCALLDELAY MOVA,50H;AM CJNEA,#0FFH,LOPA MOVR0,#12 LCALLLINE1 LCALLDELAY MOVR0,#13 LCALLLINE1 LCALLDELAY AJMPLOPP LOPA:MOVR0,#11 LCALLLINE1 LCALLDELAY MOVR0,#13 LCALLLINE1 LCALLDELAY LOPP:MOVR0,#14 LCALLLINE1 LCALLDELAY MOVR0,#15 LCALLLINE1 LCALLDELAY MOVR0,34H LCALLLINE1 LCALLDELAY MOVDPTR,#NED MOVP7,#0C0HMOVP6,#1H MOVP6,#0H MOVR0,#11 LCALLLINE1 LCALLDELAY MOVA,42H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,42H LCALLLINE1 LCALLDELAY MOVR0,#10 LCALLLINE1 LCALLDELAY MOVA,41H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,41H LCALLLINE1 LCALLDELAY MOVR0,#10 LCALLLINE1 LCALLDELAY MOVA,40H SWAPA MOVR0,A LCALLLINE1 LCALLDELAY MOVR0,40H LCALLLINE1 LCALLDELAY MOVA,60H CJNEA,#0FFH,LOPA1 MOVR0,#12 LCALLLINE1 LCALLDELAY MOVR0,#13 LCALLLINE1 LCALLDELAY LJMPLOP44 LOPA1:MOVR0,#11 LCALLLINE1 LCA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论