Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;#define EEP25040
- NAME MISCPROC
- PTWY EQU 8008H ;adr.PTWY
- PTWE EQU 8008H ;ADRES PTWE
- PTAC EQU 8000H ;ODCZYT Z ADC
- POT0 EQU 8005H ;POTENCJOMETR 0
- ;POT1 EQU 8006H ;POTENCJOMETR 1
- ;POT2 EQU 8007H ;POTENCJOMETR 2
- USERCODE SEGMENT CODE
- PUBLIC _BIN2BCD
- PUBLIC CLRLED
- PUBLIC GETKEY
- PUBLIC _GETPOT ;kiedy cos wchodzi do funkcji, 1 zmienna = _ przed nazwa, wiecej w wykladzie chyba przed 100 strona jest (laczenie C z assemblerem)
- RSEG USERCODE
- ; BIN2BCD - wykonuje konwersjê (char)DATA (BIN) => (BCD)
- ; WE: R7 = DATA (BIN 0..99)
- ; WY: R7 = DATA (BCD 0..99)
- _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();
- MOV A,DPL
- ADD A,R7 ;dodajemy R7 (to co wchodzi do funkcji) do A
- MOV DPL,A
- MOVX @DPTR,A ;DPTR DO AKUMULATORA
- MOV R7,#120
- DJNZ R7,$ ;$ odwoluje do samej siebie zmiennej, DJNZ = delay, odlicza
- MOV DPTR,#PTAC ;ODCZYT Z POTENCJOMETRU DO DPTR
- MOVX A,@DPTR ;ODCZYT DO A
- MOV R7,A
- RET
- _BIN2BCD: MOV A,R7
- MOV B,#10
- DIV AB
- SWAP A
- ORL A,B
- MOV R7,A
- RET
- CLRLED: MOV DPTR,#0x8009
- CLR A
- MOVX @DPTR,A
- RET
- GETKEY: MOV DPTR,#0x8008
- MOVX A,@DPTR
- CPL A
- 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)
- MOV R7,A
- RET
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement