Guest User

Untitled

a guest
Jun 25th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $include (C8051F320.inc)            ; Include regsiter definition file.
  2. ;************************** define interrupts vector ****************
  3. d_ResetVect         equ          000h
  4. d_Timer0Vect        equ          00bh
  5. d_EndVectors        equ          0b3h       ; End of Interrupt Vector space
  6. ;************************** my define *******************************
  7. d_Timer0            equ          0bdch  
  8. d_Timer1            equ          0fb1eh  
  9. ;************************** define data *****************************
  10. CntTime       data         030h      
  11. ;************************** define pins *****************************
  12. pLED                bit          P1.3
  13. pButton             bit          P0.7
  14. ;************************** programm code ***************************
  15.         org d_ResetVect
  16.         ljmp FnMain
  17.         org d_Timer0Vect
  18.         ljmp IntTimer0
  19.         org d_EndVectors
  20. ;********************** *****************************
  21. TimeWeit:
  22. lb_TmrW_TimeCount:
  23.      mov TL1,#LOW(d_Timer1)      
  24.      mov TH1,#HIGH(d_Timer1)
  25.       clr TF1
  26.      setb TR1
  27. lb_TmrW_T1Work:
  28.     nop
  29.     jnb TF1,lb_TmrW_T1Work
  30.     djnz R0,lb_TmrW_TimeCount
  31.     ret
  32. ;************ ****************
  33. IntTimer0:
  34.     push PSW
  35.     push ACC
  36.     setb RS0                        
  37.    clr TR0
  38.    mov TL0,#LOW(d_Timer0)      
  39.    mov TH0,#HIGH(d_Timer0)
  40.    setb TR0
  41.       cpl pLED
  42. lb_iT0_end:
  43.     pop ACC
  44.     pop PSW
  45.     reti
  46. ;********************* ************************
  47. Init8051:
  48.     lcall PCA_Init              
  49.     lcall Timer_Init            
  50.     lcall Oscillator_Init      
  51.     lcall Interrupts_Init      
  52.     lcall Port_IO_Init
  53.    ; lcall RegInit        
  54.     ret
  55. PCA_Init:
  56.     anl  PCA0MD,    #0BFh      
  57.     mov  PCA0MD,    #000h
  58.     ret
  59. Timer_Init:
  60.     mov  TMOD,      #011h      
  61.     mov  CKCON,     #002h      
  62.    mov TL0,#LOW(d_Timer0)      
  63.    mov TH0,#HIGH(d_Timer0)
  64.    mov TL1,#LOW(d_Timer1)      
  65.    mov TH1,#HIGH(d_Timer1)
  66.    setb TR0
  67.     ret
  68. Oscillator_Init:
  69.     mov  OSCICN,    #082h      
  70.     ret
  71. Interrupts_Init:
  72.     mov  IE,        #082h      
  73.     ret
  74. Port_IO_Init:
  75.     mov  P1MDOUT,   #008h      
  76.     mov  XBR1, #040h ; Crossbar
  77.     ret
  78. ;**************** ************************
  79. FnMain:
  80.     mov SP,#010h            
  81.     lcall Init8051
  82. lb_main_Loop:
  83.         nop
  84.       jb pButton,lb_main_Loop
  85.       mov R0,#30
  86.       lcall TimeWeit
  87.       cpl TR0
  88. lb_main_WeitOffButt:
  89.         nop
  90.       jnb pButton,lb_main_WeitOffButt
  91.       mov R0,#30
  92.       lcall TimeWeit
  93.     sjmp lb_main_Loop
  94. end
Add Comment
Please, Sign In to add comment