| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 533 人关注过本帖
标题:请给点提示!
取消只看楼主 加入收藏
tdjlyt
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-5-31
收藏
 问题点数:0 回复次数:1 
请给点提示!
这是个从网上得到的一个电子钟程序.我想加入7个定时时间从P1.0和P1.1来控制继电器的通断,一秒钟后复位,不知用什么方法可以实现,以何种方式加入程序?那位能给解一解,本人感激了!

显示缓冲单元在70H—75H,70H—71H显示秒,72H—73H显示分,74H—75H显示时 *
;时间计数单元在70H—71H(秒)、76H—77H(分)、78H—79H(时), *
;7AH单元放熄灭符(#0AH)计数单元采用BCD码计数定时器T0设置为50MS溢出中断为秒计数 *
;定时器T1为调整时闪烁用;P3.2为调整按钮,P1口为字符输出口,采用共阳显示管。 *

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 中断入口程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 0000H
LJMP START
ORG 0003H
RETI
ORG 000BH
LJMP INTT0
ORG 0013H
RETI
ORG 001BH
LJMP INTT1
ORG 0023H
RETI
ORG 002BH
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 主 程 序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
START: MOV R0, #70H
MOV R7, #0BH
MOV 20H, #00H
CLEARDISP: MOV @R0, #00H
INC R0
DJNZ R7,CLEARDISP
MOV 7AH,#0AH
MOV TMOD,#11H
MOV TL0, #0B0H
MOV TH0, #3CH
MOV TL1, #0B0H
MOV TH1, #3CH
SETB EA
SETB ET0
SETB TR0
MOV R4,#14H
start1: LCALL DISPLAY
JNB P3.2,SETMM1
SJMP Start
SETMM1: LJMP SETMM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 1秒定时程 序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTT0: PUSH ACC
PUSH PSW
CLR ET0
CLR TR0
MOV A,#0B7H ;中断同步修正
ADD A,TL0
MOV TL0,A
MOV A,#3CH
ADD A,TH0
MOV TH0,A
SETB TR0
DJNZ R4, OUTT0
ADDSS: MOV R4,#14H
MOV R0,#71H
ACALL ADD1 ;加1程序
MOV A,R3
CLR C
CJNE A,#60H,ADDMM
ADDMM: JC OUTT0
ACALL CLR0
MOV R0,#77H
ACALL ADD1
MOV A,R3
CLR C
CJNE A,#60H,ADDHH
ADDHH: JC OUTT0
ACALL CLR0
MOV R0,#79H
ACALL ADD1
MOV A,R3
CLR C
CJNE A,#24H,HOUR
HOUR: JC OUTT0
ACALL CLR0
OUTT0: MOV 72H,76H
MOV 73H,77H
MOV 74H,78H
MOV 75H,79H
POP PSW
POP ACC
SETB ET0
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 闪动调时程 序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTT1: PUSH ACC
PUSH PSW
MOV TL1, #0B0H
MOV TH1, #3CH
DJNZ R2,INTT1OUT
MOV R2,#06H
CPL 02H
JB 02H,FLASH1
MOV 72H,76H
MOV 73H,77H
MOV 74H,78H
MOV 75H,79H
INTT1OUT: POP PSW
POP ACC
RETI
FLASH1: JB 01H,FLASH2
MOV 72H,7AH
MOV 73H,7AH
MOV 74H,78H
MOV 75H,79H
AJMP INTT1OUT
FLASH2: MOV 72H,76H
MOV 73H,77H
MOV 74H,7AH
MOV 75H,7AH
AJMP INTT1OUT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 加1程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ADD1: MOV A,@R0
DEC R0
SWAP A
ORL A,@R0
ADD A,#01H
DA A
MOV R3,A
ANL A,#0FH
MOV @R0,A
MOV A,R3
INC R0
SWAP A
ANL A,#0FH
MOV @R0,A
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 清零程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLR0: CLR A
MOV @R0,A
DEC R0
MOV @R0,A
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 时钟调整程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETMM: cLR ET0
CLR TR0
LCALL DL1S
JB P3.2,CLOSEDIS
MOV R2,#06H
SETB ET1
SETB TR1
SET2: JNB P3.2,SET1
SETB 00H
SET4: JB P3.2,SET3
LCALL DL05S
JNB P3.2,SETHH
MOV R0,#77H ;加1分程序
LCALL ADD1
MOV A,R3
CLR C
CJNE A,#60H,HHH
HHH: JC SET4
LCALL CLR0
CLR C
AJMP SET4
CLOSEDIS: SETB ET0
SETB TR0
CLOSE: JB P3.2,CLOSE
LCALL DISPLAY
JB P3.2,CLOSE
WAITH: JNB P3.2,WAITH
LJMP START1
SETHH: CLR 00H
SETHH1: JNB P3.2,SET5
SETB 01H
SET6: JB P3.2,SET7
LCALL DL05S
JNB P3.2,SETOUT
MOV R0,#79H
LCALL ADD1
MOV A,R3
CLR C
CJNE A,#24H,HOUU
HOUU: JC SET6
LCALL CLR0
AJMP SET6
SETOUT: JNB P3.2,SETOUT1
LCALL DISPLAY
JNB P3.2,SETOUT
CLR 01H
CLR 00H
CLR 02H
CLR TR1
CLR ET1
SETB TR0
SETB ET0
LJMP START1
SET1: LCALL DISPLAY
AJMP SET2
SET3: LCALL DISPLAY
AJMP SET4
SET5: LCALL DISPLAY
AJMP SETHH1
SET7: LCALL DISPLAY
AJMP SET6
SETOUT1:LCALL DISPLAY
AJMP SETOUT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 显示程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISPLAY: MOV R1,#70H
MOV R5,#0BFH
PLAY: MOV A,R5
MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
LCALL DL1MS
INC R1
MOV A,R5
JNB ACC.1,ENDOUT
RR A
MOV R5,A
AJMP PLAY
ENDOUT: SETB P2.1
MOV P0,#0FFH
RET
TAB: DB 28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 延时程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DL1MS: MOV R6,#14H
DL1: MOV R7,#19H
DL2: DJNZ R7,DL2
DJNZ R6,DL1
RET
DS20MS: ACALL DISPLAY
ACALL DISPLAY
ACALL DISPLAY
RET
DL1S: LCALL DL05S
LCALL DL05S
RET
DL05S: MOV R3,#20H
DL05S1: LCALL DISPLAY
DJNZ R3,DL05S1
RET
END
搜索更多相关主题的帖子: 提示 
2007-05-31 23:50
tdjlyt
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-5-31
收藏
得分:0 
回复:(tdjlyt)请给点提示!
版主可否说明白点.我的思路是这样的,通过判断时钟和分钟的寄存器有没有到设定的时间来动作, 在一秒钟的时间里
插入显示程序可减少影响.因是单片机入门者,没有看到过这种程序的通常设计方式,觉得实现的可能性很小.
2007-06-01 20:54
快速回复:请给点提示!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023715 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved