Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WRITE_HEX EQU 8104H
- WRITE_DATA EQU 8102H
- WAIT_KEY EQU 811CH
- LCD_CLR EQU 810CH
- WRITE_INSTR EQU 8106H
- LED EQU P1.7
- DELAY_100MS EQU 8112H
- LJMP START
- ORG 100H
- START:
- LCALL LCD_CLR
- LCALL WAIT_KEY
- LOOP:
- MOV R0,A ;dodawanie
- LCALL LCD_CLR
- LCALL WRITE_HEX
- MOV A,#'+'
- LCALL WRITE_DATA
- LCALL WAIT_KEY
- MOV R1,A
- LCALL WRITE_HEX
- MOV A,#'='
- LCALL WRITE_DATA
- MOV A, R0
- ADD A, R1
- MOV B,#10
- DIV AB
- SWAP A
- ADD A,B
- LCALL WRITE_HEX
- MOV A,#0C0H ; odejmowanie
- LCALL WRITE_INSTR
- MOV A,RO
- LCALL WRITE_HEX
- MOV A,#'-'
- LCALL WRITE_DATA
- MOV A,R1
- LCALL WRITE_HEX
- MOV A,#'='
- LCALL WRITE_DATA
- CLR C
- MOV A,R0
- SUBB A,R1
- LCALL WRITE_HEX
- LCALL WAIT_KEY
- CLR LED
- MOV A,#5
- LCALL DELAY_100MS
- SETB LED
- LCALL LCD_CLR ; mnozenie
- MOV A,RO
- LCALL WRITE_HEX
- MOV A,#'*'
- LCALL WRITE_DATA
- MOV B,R1
- MOV A,R1
- LCALL WRITE_HEX
- MOV A,#'='
- LCALL WRITE_DATA
- MOV A,R0
- MUL AB
- ACALL WRITE_BIN2BCD
- MOV A,#0C0H ; dzielenie
- LCALL WRITE_INSTR
- MOV A,RO
- LCALL WRITE_HEX
- MOV A,#':'
- LCALL WRITE_DATA
- MOV A,R1
- MOV B,R1
- LCALL WRITE_HEX
- MOV A,#'='
- LCALL WRITE_DATA
- MOV A,R0
- DIV AB
- ACALL WRITE_BIN2BCD
- LCALL WAIT_KEY
- LJMP LOOP
- END
- WRITE_BIN2BCD:
- MOV B,#10
- DIV AB
- SWAP A
- ORL A,B
- LCALL WRITE_HEX
- RET
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement