Download presentation
Presentation is loading. Please wait.
1
SLEEP1 HT66F50
2
4-16.1 SLEEP1 ;PROGRAM:4-161.ASM (4-15.PJT) 2009.1102
;FUNCTION:HALT DEMO PROGRAM By Steven ; NOTE :SLEEP 1 MODE ; PB0: RESET PIN, USE IC RESET PIN AS RESB #INCLUDE HT66F50.INC ;========================================================= MY_DATA .SECTION 'DATA‘ ;==DATA SECTION== DEL1 DB ? ;DELAY LOOP COUNT1 DEL2 DB ? ;DELAY LOOP COUNT2 DEL3 DB ? ;DELAY LOOP COUNT3 COUNT DB ? SLP_COUNT DB ? ;============================================================ MY_CODE .SECTION AT 0 'CODE’ ;==PROGRAM SECTION== ORG 00H ;HT66FX0 RESET VECTOR JMP INIT ORG 04H ;EXT0. INTERRUPT JMP ISR_EXTINT0
3
INIT: CLR ACERL ;Digital I/O Pin is assigned as a I/O MOV A, B MOV CP0C,A ;Disable Comparator 0 Function MOV CP1C,A ;Disable Comparator 1 Function CLR SEG_PORTC ;CONFIG LED_PORT AS OUTPUT SET PB_PORTC ;PB port as input SET PB_PULL ;PB as pull up SET PB_WAKE ;Enable PB port wake up SET PAC.3 ;EXT0 as input SET PAPU.3 ;EXT0 pull up MOV A, B MOV INTEG,A CLR IDLEN ;IDLEN=0,執行HALT,進入SLEEP MOV A, B MOV WDTC,A ;enable WDT, 32768/fs SET EMI
4
SNZ PDF ;RESET from DOWN JMP MAIN ;NO SZ TO ;yes, WDT time out CALL WDT_WAKEUP ;yes CLR WDT ;no, CLEAR PDF/TO JMP LOOP ;display last digit MAIN: MOV A, OFFSET TAB_7_SEG MOV TBLP,A MOV A,10 MOV COUNT,A LOOP: TABRDL SEG_PORT MOV A, 50 ;50*01=5 sec MOV SLP_COUNT,A ;initial sleep count
5
WAIT_KEY: MOV A,10 ;delay 0. 1 sec CALL DELAY SNZ PB_PORT ;key pressed
WAIT_KEY: MOV A,10 ;delay 0.1 sec CALL DELAY SNZ PB_PORT ;key pressed? JMP LOOP_1 ;yes, jmp to loop_1 SDZ SLP_COUNT ;SLP_COUNT over?(25*0.4=10sec) JMP WAIT_KEY ;NO CLR SEG_PORT CLR INT0F ;disable EXT0 INT SET INT0E ;enable external int 0 HALT ;GO SLEEP CLR INT0E ;disable external int 0
6
LOOP_1: INC TBLP SDZ COUNT JMP LOOP JMP MAIN ;RESTART WDT_WAKEUP: ; 控制七段閃爍5次 MOV A,10 MOV SLP_COUNT, A MOV A,25 CALL DELAY CPL SEG_PORT SDZ SLP_COUNT JMP $-4 RET
7
ISR_EXTINT0: SET SEG_PORT.0 ;turn SEG_PORT.0 LED ON SHIFT: MOV A,40 CALL DELAY RL SEG_PORT SNZ SEG_PORT ; SEG_PORT.6=1? JMP SHIFT ;NO SHIFT again CLR INT0F ;avoid bouncing RETI ;yes return
8
DELAY PROC MOV DEL1,A ;SET DELAY FACTOR DEL_1: MOV A,30 MOV DEL2,A ;SET DEL2 COUNTER DEL_2: MOV A,110 MOV DEL3,A ;SET DEL3 COUNTER DEL_3: SDZ DEL3 ;DEL3 DOWN COUNT JMP DEL_3 SDZ DEL2 ;DEL2 DOWN COUNT JMP DEL_2 SDZ DEL1 ;DEL1 DOWN COUNT JMP DEL_1 CLR WDT ;MASK THIS LINE TO SEE DIFFERENCE RET DELAY ENDP ORG LASTPAGE TAB_7_SEG: DC 03Fh,006h,05Bh,04Fh,066h ;7 SEG CODE FOR COMMOM CATHOD LED DC 06Dh,07Dh,007h,07Fh,067h ;CONNECT BIT 0-7 FOR SEGMENT A-H END
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.