单片机课程设计数字时钟

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华北电力大学

科技学院

单片机课程设计报告

(20 —20 年度第学期)

题目:电子时钟(LCD)

院系:动力工程系

题目:数字时钟

专业班级:

学号:

姓名:

指导老师:

一、功能

能实现定时、时间的调整(只能加不能减)、闹钟的设定(只能加不能减),当闹钟按键按下就进入闹钟设定,再按下那个键就进入时间显示,并且闹钟响铃时间是10秒钟。

其整个设计的电路图如下:

其中显示的是8个8段LED显示,单片机是80C51,外部晶振是12MHZ,其中和晶振连接的是两个47pF的电容。单片机的p1.0~p1.3作为地址总线起到控制作用,p1.7在电路中用一个灯泡代替,在实际中接喇叭,起到闹钟的作用。P0.0~p0.7作为数据总线,把单片机的信号输入到显示器上,p2.0~p2.7作为单片机的额数据总线,其作用在显示总起到位选的作用,决定8段LED的亮灭。最下面的那个是RESPACK-8排阻,在电路中防止输入到显示的电压很小,是为输出提供电源的装置,配合显示器的显示。

在整个程序中时间的秒、分、时的计数分别存放在20H、21H、22H,闹钟的秒、分、时的计数分别存放在40H、41H、42H。

实现定时闹钟的程序有以下几个部分组成:

二、流程图

1、定时程序(时间的设定)

其程序流程图如下:

3、显示的流程图(因为显示的刚好是8个,所以不要去考虑左移的个数,直接

4、闹钟设定

三、总程序

ORG 0000H

MOV P0,#00H

MOV P2,#00H

MOV SP,#60H

CLR 20H

CLR 21H

CLR 22H

CLR 40H

CLR 41H

CLR 42H

MOV DPTR,#TAB

VV: MOV R6,#1

MM: MOV R5,#4

NN: MOV R4,#100

BB: JNB P1.3,LPP

SJMP LL

LPP: JNB P1.3,LPP0

SETB 30H

AAC: MOV R3,#1

AAB: MOV R2,#4

AAA: MOV R1,#100

CC0: JNB P1.0,CC1 ;判断p1.0是否为按下

SJMP DD0

CC1: JNB P1.0,LPP1 ;判断p1.0是否松开,松开秒钟加1 MOV A,40H

ADD A,#01H

DA A

CJNE A,#60H,CC2

CLR A

CC2: MOV 40H,A

DD0: JNB P1.1,DD1 ;判断p1.1是否按下

SJMP EE0

DD1: JNB P1.1,LPP2 ;判断p1.1是否松开,松开分钟加1 MOV A,41H

ADD A,#01H

DA A

CJNE A,#60H,DD2

CLR A

DD2: MOV 41H,A

EE0: JNB P1.2,EE1 ;判断p1.2是否按下

SJMP HH1

EE1: JNB P1.2,LPP3 ;判断p1.2是否松开,松开时钟加1 MOV A,42H

ADD A,#01H

DA A

CJNE A,#24H,EE2 CLR A

EE2: MOV 42H,A

HH1:LCALL LP

JNB P1.3,LP1

DJNZ R1,CC0

DJNZ R2,AAA

DJNZ R3,AAB

LCALL B2

SJMP AAC

LP1:JNB P1.3,LPP4 LL: CLR 30H

LCALL C0

DJNZ R4,BB

DJNZ R5,NN

DJNZ R6,MM

LCALL B2

SJMP VV

LPP0:LCALL LP

NOP

NOP

NOP

SJMP LPP

LPP1:LCALL LP

NOP

NOP

NOP

SJMP CC1

LPP2:LCALL LP

NOP

NOP

NOP

SJMP DD1

LPP3:LCALL LP

NOP

NOP

NOP

SJMP EE1

LPP4:LCALL LP

NOP

NOP

NOP

SJMP LP1

C0: JNB P1.0,C1 ;判断p1.0是否为按下

SJMP D0

C1: JNB P1.0,LLP ;判断p1.0是否松开,松开秒钟加1

MOV A,20H

ADD A,#01H

DA A

CJNE A,#60H,C2

CLR A

C2: MOV 20H,A

D0: JNB P1.1,D1 ;判断p1.1是否按下

SJMP E0

D1: JNB P1.1,LLP1 ;判断p1.1是否松开,松开分钟加1

MOV A,21H

ADD A,#01H

DA A

CJNE A,#60H,D2

CLR A

D2: MOV 21H,A

E0: JNB P1.2,E1 ;判断p1.2是否按下

AJMP H0

E1: JNB P1.2,LLP2 ;判断p1.2是否松开,松开时钟加1

MOV A,22H

ADD A,#01H

DA A

CJNE A,#24H,E2

CLR A

E2: MOV 22H,A

H0: LCALL LP

RET

LLP: LCALL LP

NOP ;3个空指令是消除松开时执行指令的时间差 NOP

NOP

SJMP C1

LLP1:LCALL LP

NOP

NOP

NOP

SJMP D1

LLP2:LCALL LP

NOP

NOP

NOP

SJMP E1

相关文档
最新文档