首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
8279显示电子钟的设计与程序源代码
来源:本站整理  作者:佚名  2010-02-01 10:40:53



可以看看时钟程序是怎么样设计的。

MCS51单片机汇编程序

Z8279 EQU 08701H ;8279 状态/命令口地址

D8279 EQU 08700H ;8279 数据口地址

LEDMOD EQU 00H;左边输入 八位字符显示

;外部译码键扫描方式,双键互锁

LEDFEQ EQU 2FH;扫描速率

LEDCLS EQU 0C1H ;清除显示 RAM

LEDWR0 EQU 80H;设定的将要写入的显示RAM地址

ORG 0000H

AJMP START

ORG 001BH ;INT T1 入口地址

AJMP INT_T1

ORG 0040H

START:

MOV SP,#60H

LCALL INIT8279;初始化8279

MOV R3,#0H ;时

MOV R2,#0H ;分

MOV R1,#0H ;秒

MOV R6,#0H ;标志

MOV TMOD,#10H

MOV TL1,#00H ;50 MS 的时间常数

MOV TH1,#04CH

MOV R0,#20

SETB TR1

SETB ET1

SETB EA ;允许中断

WAIT: CJNE R6,#0FFH,WAIT

LCALL DISPLAY

MOV R6,#0

SJMP WAIT

INIT8279:

;8279初始化子程序

PUSH DPH ;保存现场

PUSH DPL

PUSH ACC

LCALL DELAY ;延时

MOV DPTR ,#Z8279

MOV A,#LEDMOD ;置8279工作方式

MOVX @DPTR,A

MOV A,#LEDFEQ ;置键盘扫描速率

MOVX @DPTR,A

MOV A,#LEDCLS ;清除 LED 显示

MOVX @DPTR,A

LCALL DELAY ;延时

POP ACC ;恢复现场

POP DPL

POP DPH

RET

;显示字符子程序

;输入R4,位置 R5,值

DISLED: PUSH DPH ;保存现场

PUSH DPL

PUSH ACC

MOV A,#LEDWR0 ;置显示起始地址

ADD A,R4 ;加位置偏移量

MOV DPTR,#Z8279

MOVX @DPTR,A ;设定显示位置

MOV DPTR,#LEDSEG ;置显示常数表起始位置

MOV A,R5

MOVC A,@A+DPTR;查表

MOV DPTR,#D8279

MOVX @DPTR,A ;显示数据

POP ACC ;恢复现场

POP DPL

POP DPH

RET

DELAY: ;延时子程序

PUSH 0 ;保存现场

PUSH 1

MOV 0,#0H

DELAY1: MOV 1,#0H

DJNZ 1,$

DJNZ 0,DELAY1

POP 1 ;恢复现场

POP 0

RET

INT_T1: ;INT_T1中断服务子程序

PUSH DPH ;保护现场

PUSH DPL

PUSH ACC

PUSH PSW

CLR TR1

MOV TL1,#00H ;50MS 定时常数

MOV TH1,#4CH

SETB TR1

DJNZ R0,EXIT ;判断毫秒=0

MOV R0,#20 ;DELAY 1 SECOND

MOV R6,#0FFH ;置秒标志

CJNE R1,#59H,SECOND ;判断秒=59

MOV R1,#99H

CJNE R2,#59H,MINUTE ;判断分=59

MOV R2,#99H

CJNE R3,#23H,HOUR ;判断时=23

MOV R3,#99H

HOUR:

MOV A,R3

ADD A,#1 ;时加1

DA A

MOV R3,A

MINUTE:

MOV A,R2

ADD A,#1 ;分加1

DA A

MOV R2,A

SECOND:

MOV A,R1

ADD A,#1 ;秒加1

DA A

MOV R1,A

EXIT:

POP PSW ;恢复现场

POP ACC

POP DPL

POP DPH

RETI ;中断返回

DISPLAY:

MOV A,R3

ANL A,#0FH

MOV R5,A

MOV R4,#6

LCALL DISLED ;显示小时低位

MOV A,R3

SWAP A

ANL A,#0FH

MOV R5,A

MOV R4,#7

LCALL DISLED ;显示小时高位

MOV A,R2

ANL A,#0FH

MOV R5,A

MOV R4,#3

LCALL DISLED ;显示分钟低位

MOV A,R2

SWAP A

ANL A,#0FH

MOV R5,A

MOV R4,#4

LCALL DISLED ;显示分钟高位

MOV A,R1

ANL A,#0FH

MOV R5,A

MOV R4,#0

LCALL DISLED ;显示秒低位

MOV A,R1

SWAP A

ANL A,#0FH

MOV R5,A

MOV R4,#1

LCALL DISLED ;显示秒高位

RET

LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'

DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'

DB 6DH,02H,08H,00H,59H,0FH,76H;'U,-,_, ,I,O,P, '

END

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:189,531.30000 毫秒