Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <REG51F380.H>
- ;-------------------------------------------------------------------------------------------------------------------;
- ;CONSTANT DEFINES FOR CHAR_NUM AND CHAR_STATE
- ;-------------------------------------------------------------------------------------------------------------------;
- CHAR_0 EQU 0C0H ;DEFINE CHARS FOR 8BITSEG
- CHAR_1 EQU 0F9H
- CHAR_2 EQU 0A4H
- CHAR_3 EQU 0B0H
- CHAR_4 EQU 099H
- CHAR_5 EQU 092H
- CHAR_6 EQU 082H
- CHAR_7 EQU 0F8H
- CHAR_8 EQU 080H
- CHAR_9 EQU 090H
- CHAR_A EQU 088H
- CHAR_B EQU 083H
- CHAR_C EQU 0C6H
- CHAR_D EQU 0A1H
- CHAR_E EQU 086H
- CHAR_F EQU 08EH
- ;-------------------------------------------------------------
- KEYLEN EQU 4
- KSET EQU P0.6
- KLOAD EQU P0.7
- KEY IDATA 80H
- NUM DATA 30H
- CSEG AT 1000H ;caracteres segmento 8bits
- DIGITS_TABLE:
- DB CHAR_0, CHAR_1, CHAR_2, CHAR_3, CHAR_4, CHAR_5, CHAR_6, CHAR_7, CHAR_8, CHAR_9, CHAR_A, CHAR_B, CHAR_C, CHAR_D, CHAR_E, CHAR_F ;0-F
- CSEG AT 0H
- JMP RESET
- RESET:
- ACALL Init_Device
- SETB KSET ;ATIVAR BOTOES
- SETB KLOAD
- MOV R1, #KEY
- MOV NUM, #0
- START:
- MOV DPTR, #DIGITS_TABLE
- MOV R0, #0 ;R0 indica o valor decimal atual
- MOV R2, #0H ;R2 usado para guardar valor hexadecimal na memoria e na saida P1
- S_2:
- MOV A, R0
- MOVC A, @A+DPTR
- MOV P2, A
- BUTTON:
- JNB KLOAD, INSERT
- JNB KSET, INCREMENT
- JMP BUTTON
- INCREMENT:
- JNB KSET, $
- INC R0
- INC R2
- CJNE R0, #16, S_2
- JMP START
- INSERT: ;guarda o numero escolhido na mem interna e imprime em P1
- JNB KLOAD, $
- MOV P1, R2
- MOV @R1, P1
- INC R1
- INC NUM
- MOV A, NUM
- CJNE A, #KEYLEN, START
- JMP FIM
- ;------------------------------------------------------------------------
- PCA_Init:
- MOV PCA0MD, #000h
- RET
- ;Timer_Init:
- ; // MOV TMOD, #022h
- ; RET
- Port_IO_Init:
- MOV XBR1, #040h
- RET
- Init_Device:
- lcall PCA_Init
- ;lcall Timer_Init
- lcall Port_IO_Init
- ret
- ;------------------------------------------------------------------------
- FIM:
- MOV P2, #7FH
- MOV R1, #0FFH
- LCALL LOOP
- MOV P2, #0FFH
- MOV R1, #0FFH
- LCALL LOOP
- JMP FIM
- LOOP:
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- DJNZ R1, LOOP
- //CJNE A, #0, LOOP
- RET
- END
Add Comment
Please, Sign In to add comment