| ??? 07/13/06 13:37 Read: times |
#120193 - ...formatted code Responding to: ???'s previous message |
ooops, here you are, thanks!
$REGISTERBANK(0,3) ;register bank 0,3
NAME LP_MAIN
INT_CODE SEGMENT CODE INBLOCK
MAIN_STACK EQU 0E0H ;stack pointer initial value
IDLE_MODE EQU 081H ;idle mode (SMOD = 1)
DOWN_MODE EQU 002H ;power down mode
;output control pins definition
LEDR_PIN EQU 0A6H ;(P2.6) LEDR pin: red led output
LEDG_PIN EQU 0A7H ;(P2.7) LEDG pin: green led output
BUZZ_PIN EQU 090H ;(P1.0) BUZ pin: buzzer output
;Exeption vectors
;****************
;reset vector
CSEG AT 00000H
VECT_RESET: AJMP MAIN_RESET ;main initialisation
;external interrupt 0 vector
CSEG AT 00003H
VECT_INTR0: AJMP MAIN_INIT ;main initialisation
;timer 0 interrupt vector
CSEG AT 0000BH
VECT_TMR0: AJMP MAIN_INIT ;main initialisation
;external interrupt 1 vector
CSEG AT 00013H
VECT_INTR1: AJMP MAIN_INT1 ;not used
;timer 1 interrupt vector
CSEG AT 0001BH
VECT_TMR1: AJMP MAIN_INIT ;not used
;serial port interrupt vector
CSEG AT 00023H
VECT_SER: AJMP MAIN_INIT ;main initialisation
;timer 2/I2C interrupt vector
CSEG AT 0002BH
VECT_TMR2: AJMP MAIN_INIT ;main initialisation
RSEG INT_CODE
MAIN_RESET: CLR LEDR_PIN ;led red = reset
SJMP MAIN_EXEC
MAIN_INT1: CLR LEDG_PIN ;led green = interrupt 1
MAIN_EXEC: MOV P0,#0E3H ;port 0 initialisation
CLR A ;all zero
MOV IE,A ;disable all interrupts
;system initialisation
MOV SP,#MAIN_STACK-1 ;stack pointer initialisation
MOV PSW,A ;select bank 0
MOV TCON,#00000101B ;external edge interrupt
MOV PCON,#10000100B ;power control disable
MOV 08EH,#000H
CLR BUZZ_PIN ;buzzer on
ACALL MAIN_WAIT ;1 sec
SETB BUZZ_PIN ;buzzer off
ACALL MAIN_WAIT ;1 sec
CLR BUZZ_PIN ;buzzer on
ACALL MAIN_WAIT ;1 sec
MAIN_INIT: CLR A
MOV IE,A ;disable all interrupts
MOV TCON,A ;external level interrupt 1
MOV P0,#022H ;unused bits to 0
MOV P1,#0FFH ;all port high
MOV P2,#0FFH ;all port high
MOV P3,#0FFH ;all port high
MOV IE,#084H ;enable interrupt 1
MOV PCON,#DOWN_MODE ;power down
MAIN_INIT_0: SJMP MAIN_INIT_0
;wait: about 1 sec
MAIN_WAIT: MOV R4,#10
MAIN_WAIT_0: MOV R3,#200
MAIN_WAIT_1: MOV R2,#250
MAIN_WAIT_2: DJNZ R2,MAIN_WAIT_2
DJNZ R3,MAIN_WAIT_1
DJNZ R4,MAIN_WAIT_0
MAIN_WAIT_3: RET
END
|
| Topic | Author | Date |
| at89s8253 wakes up only once from pwr down. | 01/01/70 00:00 | |
| i tried | 01/01/70 00:00 | |
| unformatted code | 01/01/70 00:00 | |
| sure you can | 01/01/70 00:00 | |
| ...formatted code | 01/01/70 00:00 | |
| mismatch | 01/01/70 00:00 | |
| nothing else to do. | 01/01/70 00:00 | |
| you should exit the interrupt by reti.. | 01/01/70 00:00 | |
| Why does everyone insist on doing things WITHOUT e | 01/01/70 00:00 | |
| And then ? | 01/01/70 00:00 | |
| all true, but ... | 01/01/70 00:00 | |
| Additional input | 01/01/70 00:00 | |
| Re: at89s8253 wakes up only once from pwr down. | 01/01/70 00:00 | |
| Thanks, everything OK | 01/01/70 00:00 | |
but you did not do so | 01/01/70 00:00 |



