Advertisement
Guest User

gejsembler

a guest
Apr 27th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;#define EEP25040
  2.  
  3.             NAME    MISCPROC  
  4. PTWY    EQU 8008H       ;adr.PTWY
  5. PTWE    EQU 8008H   ;ADRES PTWE
  6. PTAC    EQU 8000H   ;ODCZYT Z ADC
  7. POT0    EQU 8005H   ;POTENCJOMETR 0
  8. ;POT1   EQU 8006H   ;POTENCJOMETR 1
  9. ;POT2   EQU 8007H   ;POTENCJOMETR 2
  10.  
  11. USERCODE    SEGMENT CODE
  12.  
  13.             PUBLIC  _BIN2BCD
  14.             PUBLIC  CLRLED
  15.             PUBLIC  GETKEY
  16.             PUBLIC _GETPOT ;kiedy cos wchodzi do funkcji, 1 zmienna = _ przed nazwa, wiecej w wykladzie chyba przed 100 strona jest (laczenie C z assemblerem)
  17.  
  18.             RSEG    USERCODE
  19.  
  20. ; BIN2BCD  - wykonuje konwersjê (char)DATA (BIN) => (BCD)
  21. ;   WE: R7    = DATA (BIN 0..99)
  22. ;   WY: R7    = DATA (BCD 0..99)  
  23.  
  24. _GETPOT:    MOV DPTR,#POT0 ;POTENCJOMETR 0 DO DPTR, ogolnie potem dodajemy to co wchodzi do funkcji, przez co przesuwaja nam sie potencjometry jak wybierzemy klawisz, bo getpot(key); key = getkey();
  25.             MOV A,DPL
  26.             ADD A,R7 ;dodajemy R7 (to co wchodzi do funkcji) do A
  27.             MOV DPL,A
  28.             MOVX @DPTR,A    ;DPTR DO AKUMULATORA
  29.             MOV R7,#120
  30.             DJNZ R7,$ ;$ odwoluje do samej siebie zmiennej, DJNZ = delay, odlicza
  31.             MOV DPTR,#PTAC ;ODCZYT Z POTENCJOMETRU DO DPTR
  32.             MOVX A,@DPTR    ;ODCZYT DO A
  33.             MOV R7,A
  34.             RET
  35.  
  36.  
  37. _BIN2BCD:   MOV     A,R7
  38.             MOV     B,#10
  39.             DIV     AB
  40.             SWAP    A
  41.             ORL     A,B
  42.             MOV     R7,A
  43.             RET
  44.  
  45. CLRLED:     MOV     DPTR,#0x8009
  46.             CLR     A
  47.             MOVX    @DPTR,A
  48.             RET
  49.  
  50.  
  51. GETKEY:     MOV     DPTR,#0x8008
  52.             MOVX    A,@DPTR
  53.             CPL     A
  54.             ANL     A,#0x3F ;111111 = 0x3F => odwraca nam negacje klawiszy, wczesniej w kodzie w C mialem przez to np (!(klawisze&0x01)), gdzie klawisze = PTWE (tj. 0x8008)
  55.             MOV     R7,A
  56.             RET
  57.  
  58.             END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement