基于单片机数字钟的设计

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

课题四基于单片机的数字钟的设计

一、设计要求

(1)系统实现每日24小时的时钟,用数码管显示时、分、秒。

(2)实现时间的调整。

(3)实现整点报时功能。

二、提交的文件

1、毕业论文

2、原程序或原文件

3、产品调试运行结果

三、资料

3.1 设计思想

单片机控制系统是整个控制系统的核心,它完成整个系统的信息处理及协调功能。本次我们选用ATMEL公司的AT89C51芯片;其功能强大,兼容性好。AT89C51是与8051兼容的CHMOS微控制器。与CHMOS工艺的8051一样,支持软件选择的空闲和掉电两种节电方式。

在AT89C51的P2.0—P2.3是数码管的段选;P2.4—P2.6是数码管的位选。P1.0和P1.1是发光二极管。是显示制式切换后的工作制式.P1.2是蜂鸣器,作闹铃和准点报时用。P0.0—P0.7是按键的判断输入口,是对时间调整\闹铃时间设置,和其他功能的区分。

3.2系统框图

图3-1

第4节硬件设计4.1元器件清单

表4-1 元器件清单表

码管

F3

5.2程序代码

k0 bit p0.0

k1 bit p0.1

k2 bit p0.2

k3 bit p0.3

k4 bit p0.4

k5 bit p0.5

k6 bit p0.6

k7 bit p0.7

xiaoshi data 2ah

fengzhong data 2bh

miao data 2ch

org 0000h

jmp start

org 000bh

jmp tim0

start: mov sp,#70h ;设置堆栈在70H

mov 28h,#00 ;显示寄存器初值为12H mov 2ah,#12h

mov 2bh,#00

mov 2ch,#00

mov tmod,#00000001b

mov th0,#high(65536-4000)

mov tl0,#low(65536-4000)

mov ie,#10000010b

mov r4,#250

setb tr0

loop: jb p0.0,n2

call delay

mov a,2ch

add a,#01h

da a

mov 2ch,a

cjne a,#60h,n1

mov 2ch,#00

n1: jnb p0.0,$

call delay

n2: jb p0.1,n4

call delay

mov a,2bh

add a,#01h

da a

mov 2bh,a

cjne a,#60h,n3

mov 2bh,#00

n3: jnb p0.1,$

call delay

n4: jb p0.2,loop

call delay

mov a,2ah

add a,#01

da a

mov 2ah,a

cjne a,#24h,n5

mov 2ah,#00

n5: jnb p0.2,$

call delay

jmp loop

tim0: mov th0,#high(65536-4000) mov tl0,#low(65536-4000) push acc

push psw

djnz r4,x2

mov r4,#250

call clock

call disp

x2: call saomiao

pop psw

pop acc

reti

saomiao: mov r0,#28h

inc @r0

cjne @r0,#6,x3

mov @r0,#0

x3: mov a,@r0

add a,#20h

mov r1,a

mov a,@r0

swap a

orl a,@r1

mov p2,a

ret

clock: mov a,2ch

add a,#1

da a

mov 2ch,a

cjne a,#60h,x4

mov 2ch,#00

mov a,2bh

add a,#1

da a

mov 2bh,a

cjne a,#60h,x4

mov 2bh,#00

mov a,2ah

add a,#1

da a

mov 2ah,a

cjne a,#24h,x4

mov 2ah,#00

x4: ret

disp: mov r1,#20h mov a,2ch mov b,#10h div ab

mov @r1,b inc r1

mov @r1,a inc r1

mov a,2bh mov b,#10h div ab

mov @r1,b inc r1

mov @r1,a inc r1

mov a,2ah mov b,#10h div ab

mov @r1,b inc r1

mov @r1,a ret

delay: mov r6,#60

d1: mov r7,#248 djnz r7,$

djnz r6,d1 ret

end

相关文档
最新文档