Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 4-16 HALT HT66F50. HALT 指令 進入省電模式 1. 關閉系統時脈, 若啟用 WDT 將繼續 WDT 時脈 (LXT, LIRC) 2. 內部資料 RAM 不變 3. 清除 WDT, 並重新開始計數 4. 所有 I/O 維持原來狀態 ( 若要省電周邊元件要關閉 ) 5. 清除.

Similar presentations


Presentation on theme: "1 4-16 HALT HT66F50. HALT 指令 進入省電模式 1. 關閉系統時脈, 若啟用 WDT 將繼續 WDT 時脈 (LXT, LIRC) 2. 內部資料 RAM 不變 3. 清除 WDT, 並重新開始計數 4. 所有 I/O 維持原來狀態 ( 若要省電周邊元件要關閉 ) 5. 清除."— Presentation transcript:

1 1 4-16 HALT HT66F50

2 HALT 指令 進入省電模式 1. 關閉系統時脈, 若啟用 WDT 將繼續 WDT 時脈 (LXT, LIRC) 2. 內部資料 RAM 不變 3. 清除 WDT, 並重新開始計數 4. 所有 I/O 維持原來狀態 ( 若要省電周邊元件要關閉 ) 5. 清除 TO 旗標, 並設定 PDF=1 重開機 PDF=0 省電喚醒 PDF=1 2

3 3

4 由省電模式回復 1. 外部硬體重置 2.WDT 計時溢位重置 3. 中斷喚醒 4.PA 1-> 0 位準變化 4

5 SYSMOD 控制暫存器 CKS2 CKS1 CKS0 FSTEN LTO HTO IDLEN HLCLK Bit 7 6 5 4 3 2 1 0 省電模式 : IDLEN=0 為 SLEEP MODE IDLEN=1 為 IDLE MODE SLEEP MODE, 系統時脈關閉 5

6 6 4-16 HALT ;PROGRAM:4-15.ASM (4-15.PJT)2009.1102 ;FUNCTION:HALT DEMO PROGRAMBy Steven ; NOTE :SLEEP 0 MODE ;PB0: RESET PIN, USE IC RESET PIN AS RESB ; 硬體重置 外部中斷 INT0 PA.0 Wake-up 喚醒 CPU #INCLUDE HT66F50.INC ;========================================================= MY_DATA.SECTION'DATA‘;==DATA SECTION== DEL1DB?;DELAY LOOP COUNT1 DEL2DB?;DELAY LOOP COUNT2 DEL3DB?;DELAY LOOP COUNT3 COUNTDB? SLP_COUNTDB? ;============================================================ MY_CODE.SECTION AT 0 'CODE’;==PROGRAM SECTION== ORG00H;HT66FX0 RESET VECTOR JMPINIT ORG04H;EXT0. INTERRUPT JMPISR_EXTINT0

7 INIT: CLRACERL;Digital I/O Pin is assigned as a I/O MOVA,00001000B MOVCP0C,A;Disable Comparator 0 Function MOVCP1C,A;Disable Comparator 1 Function CLRSEG_PORTC;CONFIG LED_PORT AS OUTPUT SETPB_PORTC;PB port as input SETPB_PULL;PB as pull up SETPB_WAKE;Enable PB port wake up SET PAC.3;EXT0 as input SET PAPU.3 ;EXT0 pull up MOV A,00000010B MOV INTEG,A CLR IDLEN ;IDLEN=0 SET EMI SNZ PDF ;RESET from DOWN JMP MAIN ;NO CLR WDT ;YES, CLEAR PDF JMP LOOP ;display last digit 7

8 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 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 8

9 LOOP_1: INC TBLP SDZ COUNT JMP LOOP JMP MAIN ;RESTART ISR_EXTINT0: SET SEG_PORT.0 ;turn SEG_PORT.0 LED ON SHIFT: MOV A,40 CALL DELAY RL SEG_PORT SNZ SEG_PORT.6 ; SEG_PORT.6=1? JMP SHIFT ;NO SHIFT again CLR INT0F ;avoid bouncing RETI ;yes return 9

10 DELAY PROC MOVDEL1,A;SET DELAY FACTOR DEL_1:MOV A,30 MOV DEL2,A;SET DEL2 COUNTER DEL_2:MOVA,110 MOVDEL3,A;SET DEL3 COUNTER DEL_3: SDZDEL3 ;DEL3 DOWN COUNT JMPDEL_3 SDZDEL2 ;DEL2 DOWN COUNT JMPDEL_2 SDZDEL1;DEL1 DOWN COUNT JMPDEL_1 CLRWDT;MASK THIS LINE TO SEE DIFFERENCE RET DELAYENDP ORGLASTPAGE 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 10


Download ppt "1 4-16 HALT HT66F50. HALT 指令 進入省電模式 1. 關閉系統時脈, 若啟用 WDT 將繼續 WDT 時脈 (LXT, LIRC) 2. 內部資料 RAM 不變 3. 清除 WDT, 並重新開始計數 4. 所有 I/O 維持原來狀態 ( 若要省電周邊元件要關閉 ) 5. 清除."

Similar presentations


Ads by Google