Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $include (C8051F320.inc) ; Include regsiter definition file.
- ;************************** define interrupts vector ****************
- d_ResetVect equ 000h
- d_Timer0Vect equ 00bh
- d_EndVectors equ 0b3h ; End of Interrupt Vector space
- ;************************** my define *******************************
- d_Timer0 equ 0bdch
- d_Timer1 equ 0fb1eh
- ;************************** define data *****************************
- CntTime data 030h
- ;************************** define pins *****************************
- pLED bit P1.3
- pButton bit P0.7
- ;************************** programm code ***************************
- org d_ResetVect
- ljmp FnMain
- org d_Timer0Vect
- ljmp IntTimer0
- org d_EndVectors
- ;********************** *****************************
- TimeWeit:
- lb_TmrW_TimeCount:
- mov TL1,#LOW(d_Timer1)
- mov TH1,#HIGH(d_Timer1)
- clr TF1
- setb TR1
- lb_TmrW_T1Work:
- nop
- jnb TF1,lb_TmrW_T1Work
- djnz R0,lb_TmrW_TimeCount
- ret
- ;************ ****************
- IntTimer0:
- push PSW
- push ACC
- setb RS0
- clr TR0
- mov TL0,#LOW(d_Timer0)
- mov TH0,#HIGH(d_Timer0)
- setb TR0
- cpl pLED
- lb_iT0_end:
- pop ACC
- pop PSW
- reti
- ;********************* ************************
- Init8051:
- lcall PCA_Init
- lcall Timer_Init
- lcall Oscillator_Init
- lcall Interrupts_Init
- lcall Port_IO_Init
- ; lcall RegInit
- ret
- PCA_Init:
- anl PCA0MD, #0BFh
- mov PCA0MD, #000h
- ret
- Timer_Init:
- mov TMOD, #011h
- mov CKCON, #002h
- mov TL0,#LOW(d_Timer0)
- mov TH0,#HIGH(d_Timer0)
- mov TL1,#LOW(d_Timer1)
- mov TH1,#HIGH(d_Timer1)
- setb TR0
- ret
- Oscillator_Init:
- mov OSCICN, #082h
- ret
- Interrupts_Init:
- mov IE, #082h
- ret
- Port_IO_Init:
- mov P1MDOUT, #008h
- mov XBR1, #040h ; Crossbar
- ret
- ;**************** ************************
- FnMain:
- mov SP,#010h
- lcall Init8051
- lb_main_Loop:
- nop
- jb pButton,lb_main_Loop
- mov R0,#30
- lcall TimeWeit
- cpl TR0
- lb_main_WeitOffButt:
- nop
- jnb pButton,lb_main_WeitOffButt
- mov R0,#30
- lcall TimeWeit
- sjmp lb_main_Loop
- end
Add Comment
Please, Sign In to add comment