
;********WAVE-E6000/T**************************
;*MCU: AT89C51 *
;*MCU-crystal: 6M *
;*Version: 00 *
;*Last Updata: *
;*Author: www.picavr.com *
;*Description: LED 闪灯程序 *
;**********************************************
ORG 0000H ;
AJMP MAIN ;到主程序
ORG 000BH ;
AJMP QI ;到定时器中断0
ORG 0030H ;
;**********************************************
MAIN: MOV 21H,#00H ;清通用寄存器
MOV 22H,#00H ;
MOV 23H,#00H ;
MOV 24H,#00H ;
MOV 25H,#00H ;
MOV 26H,#00H ;
CLR 00H ;清位标志
CLR 01H ;
CLR 02H ;
CLR 03H ;
MOV TL0,#06H ;定时器设置为250uS中断一次
MOV TH0,#06H ;
MOV TMOD,#02H ;设置定时器为方式2
MOV SP,#60H ;
SETB EA ;开总中断
SETB ET0 ;开定时器中断0
SETB TR0 ;定时器启动开始计数
;*********************************************
L1: JNB 00H,L2 ;
CLR 00H
ACALL LED1
L2: JNB 01H,L3 ;
CLR 01H
ACALL LED2
L3: JNB 02H,L4 ;
CLR 02H
ACALL LED2
L4: JNB 03H,L2 ;
CLR 03H
ACALL LED3
SJMP L1 ;
;********************************************
QI: PUSH ACC ;入栈保护现场
PUSH PSW
INC 21H
MOV A,21H
CJNE A,#200,TORETI ;
MOV 21H,#0
INC 22H
MOV A,22H
CJNE A,#5,TORETI ;
MOV 22H,#0
INC 23H
MOV A,23H
CJNE A,#5,TORETI ;
MOV 23H,#0
SETB 00H
INC 24H
MOV A,24H
CJNE A,#2,TORETI
MOV 24H,#0
SETB 01H
INC 25H
MOV A,25H
CJNE A,#2,TORETI
MOV 25H,#0
SETB 02H
INC 26H
MOV A,26H
CJNE A,#2,TORETI
MOV 26H,#0
SETB 03H
TORETI: POP PSW ;出栈
POP ACC
RETI
;***********************************
LED1: MOV P1,#01111111B
ACALL DELAY
MOV P1,#10111111B
ACALL DELAY
MOV P1,#11011111B
ACALL DELAY
MOV P1,#11101111B
ACALL DELAY
MOV P1,#11110111B
ACALL DELAY
MOV P1,#11111011B
ACALL DELAY
MOV P1,#11111101B
ACALL DELAY
MOV P1,#11111110B
ACALL DELAY
MOV P1,#0FFH
ACALL DELAY
ACALL DELAY
MOV P1,#11100111B
ACALL DELAY
MOV P1,#01111110B
ACALL DELAY
MOV P1,#00H
ACALL DELAY
MOV P1,#11111110B
ACALL DELAY
MOV P1,#11111101B
ACALL DELAY
MOV P1,#11111011B
ACALL DELAY
MOV P1,#11110111B
ACALL DELAY
MOV P1,#11101111B
ACALL DELAY
MOV P1,#11011111B
ACALL DELAY
MOV P1,#10111111B
ACALL DELAY
MOV P1,#01111111B
ACALL DELAY
RET
;***********************************
LED2: MOV P1,#11100111B
ACALL DELAY1
MOV P1,#11011011B
ACALL DELAY1
MOV P1,#10111101B
ACALL DELAY1
MOV P1,#01111110B
ACALL DELAY1
ACALL DELAY1
MOV P1,#10111101B
ACALL DELAY1
MOV P1,#11011011B
ACALL DELAY1
MOV P1,#11100111B
ACALL DELAY1
MOV P1,#55H
ACALL DELAY1
RET
;***********************************
LED3: MOV P1,#01101101B
ACALL DELAY
MOV P1,#11011011B
ACALL DELAY
MOV P1,#10101010B
ACALL DELAY
MOV P1,#01010101B
ACALL DELAY
MOV P1,#11100111B
ACALL DELAY
MOV P1,#01111110B
ACALL DELAY
MOV P1,#11011011B
ACALL DELAY
MOV P1,#01111110B
ACALL DELAY
MOV P1,#11100111B
ACALL DELAY
MOV P1,#11011011B
ACALL DELAY
RET
;**********************************
DELAY: MOV R2,#2 ;延时
DEL1: MOV R3,#200
DEL2: MOV R4,#125
DEL3: DJNZ R4,DEL3
DJNZ R3,DEL2
DJNZ R2,DEL1
RET
;*********************************
DELAY1: MOV R5,#3 ;延时
DL1: MOV R6,#200
DL2: MOV R7,#125
DL3: DJNZ R7,DL3
DJNZ R6,DL2
DJNZ R5,DL1
RET
END
;*************************************************
烧录文件HEX:
我的毕业设计是电子挂历,其中有校历周的设计,也就是星期满校历周数加一,还有就是作息时间提醒,例如:8:00-8:50第一节课.那么就要在8:00时有上课提醒,8:50下课提醒.我不会设计.希望大侠门帮帮我.我的邮箱zhuxinxin_318@163.com