Guest User

Untitled

a guest
May 14th, 2018
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  // Projekt - wykorzystanie licznika obiektów do zliczania ilości przechodzących przez moduł M-03 przedmiotów.
  2.  
  3. $include(naglowek.inc)
  4.  
  5.     ZASILANIE   EQU P1.6
  6.     CSAD        EQU 10H
  7.     CSMX        EQU 18H
  8.     CSDS        EQU 30H
  9.     CSDB        EQU 38H
  10.     TMOD_SET    EQU 00000001B
  11.     DELAY_US    EQU 810EH
  12.    
  13.     TH0_SET     EQU 256-180
  14.     TL0_SET     EQU 0
  15.    
  16.  
  17.  
  18.     LJMP START
  19.  
  20.  
  21.     ORG 0BH
  22.     ACALL PODPROGRAM
  23.     RETI
  24.  
  25.  
  26.     ORG 100H
  27.  
  28.     // ------------------ A/C etc ---------------------------
  29. START:
  30.     MOV TMOD,#00000001B
  31.     MOV TL0,#TL0_SET
  32.     MOV TH0,#TH0_SET
  33.     SETB TR0 // START TIMERA
  34.     SETB EA // WLACZENIE PRZERWAN GLOBALNYCH
  35.     SETB ET0// WLACZENIE PRZERWAN OD TIMERA0
  36.     MOV R0, #CSMX
  37.     CLR A
  38.     MOVX @R0, A // WYBOR WEJSCIA 0 MULTIPLEKSERA
  39.     MOV R1, #CSAD
  40.     MOV R0, #CSDS
  41.     MOV A, #00010101b
  42.     MOVX @R0, A     // WYBOR WSKAZNIKA 7 SEGMENTOWEGO
  43.     MOV R0, #CSDB
  44.     LCALL START2  // tu cos nie gra!
  45.     MOVX @R0, A
  46.  
  47. STEROWANIE_LED:
  48.     CLR ET0
  49.     CLR ZASILANIE
  50.     MOV A,R5
  51.     ADD A, #1
  52.     LCALL DELAY_US
  53.     SETB ZASILANIE
  54.  
  55.     MOV A, #0
  56.     LCALL DELAY_US
  57.     SETB ET0
  58.     LJMP STEROWANIE_LED
  59.  
  60. PODPROGRAM:
  61.     MOV TH0, #TH0_SET
  62.     LCALL LCD_CLR
  63.     MOVX @R1, A
  64.     MOV A, #1
  65.     LCALL DELAY_US
  66.     MOVX A, @R0
  67.     MOV R5, A
  68.    
  69.     MOV B, #100
  70.     DIV AB
  71.     JZ DALEJ
  72.     ADD A, #'0'
  73.     LCALL WRITE_DATA
  74.  
  75. DALEJ:
  76.     MOV A,B
  77.     MOV B, #10
  78.     DIV AB
  79.     SWAP A
  80.     ADD A,B
  81.     LCALL WRITE_HEX
  82.    
  83.     RET
  84.  
  85.  
  86. // ----------------------- Licznik obiektow ----------------------
  87.  
  88.     //0FF2BH & 0FF2AH - adresy do diód zbierajacych
  89. START2:
  90.     MOV R7, #0           // wpisanie do R7 wartosci 0
  91.     MOV DPTR, #0FF2BH   // (adresowanie posrednie) do rejestru DPTR przenoszenie wartosci 0FF2BH
  92.     MOVX @DPTR, A       // DPTR - dwubajtowy wskaźnik danych
  93.  
  94. LCD:
  95.     LCALL LCD_CLR
  96.     MOV A, R7
  97.     LCALL WRITE_HEX
  98.     MOV DPTR, #0FF2AH   // j/w
  99.  
  100. NIC:
  101.     MOVX A, @DPTR
  102.     JNB ACC.1,LEWO      // ACC.1 akumulator
  103.     JB ACC.2, NIC       // ACC.2 akumulator
  104.  
  105. PRAWO:
  106.     MOVX A, @DPTR
  107.     JB ACC.1, PRAWO
  108.  
  109. PRAWO1:
  110.     MOVX A, @DPTR
  111.     JNB ACC.2, PRAWO1
  112.  
  113. PRAWO2:
  114.     MOVX A, @DPTR
  115.     JNB ACC.1, PRAWO2
  116.     DEC R7
  117.     LJMP LCD
  118.  
  119. LEWO:
  120.     MOVX A, @DPTR
  121.     JB ACC.2, LEWO
  122.  
  123. LEWO1:
  124.     MOVX A, @DPTR
  125.     JNB ACC.1, LEWO1
  126.  
  127. LEWO2:
  128.     MOVX A, @DPTR
  129.     JNB ACC.2, LEWO2
  130.     INC R7
  131.     LJMP LCD
  132.  
  133.     END
Add Comment
Please, Sign In to add comment