LCD-skjerm og tastatur for 8051

Z

zohreh

Guest
Hei jeg ønsker å skrive en forsamling koden for 8051 som gjør 4 hovedfunksjoner ( ,-,*,/)
nå kan jeg ikke lese fra tastaturet (4 * 4) og vises på LCD!

Har noen i forsamlingen koden til kalkulatoren?

plz hjelpe meg

(Beklager hvis engelsken min er ikke bra!)

 
Bruk 74c922 tastaturet dekoder chip (med avbrudd linje)

 
MOV P1, # 0FH
LP:
MOV P1, # 0FH
KPD:
MOV A, P1
CJNE A, 0FH, # DIS
ACALL DELAY
JMP KRL
DIS: ACALL FORSINKELSE
SJMP KPD
KRL: MOV A, P1
CJNE A, 0FH, # NESTE
ACALL DELAY
SJMP KRL
NESTE: ACALL SCANKEY
ACALL DELAY
SJMP LP
SCANKEY:
ACALL DELAY
MOV P1, # 0EFH
MOV A, P1
ANL A, # 0FH
CJNE A, 0FH, # C1
MOV P1, # 0DFH
MOV A, P1
ANL A, # 0FH
CJNE A, # 0FH, C2
MOV P1, # 0BFH
MOV A, P1
ANL A, # 0FH
CJNE A, # 0FH, C3
MOV P1, # 7Fh
MOV A, P1
ANL A, # 0FH
CJNE A, # 0FH, C4
POP 7BH
MOV P1, # 0FH
LJMP LP
C1: MOV DPTR, # Tabell1
SJMP FINDROW
C2: MOV DPTR, # table2
SJMP FINDROW
C3: MOV DPTR, # TABLE3
SJMP FINDROW
C4: MOV DPTR, # TABLE4
FINDROW: CJNE A, # 0EH, N1
MOV A, # 0
SJMP FINN
N1: CJNE A, # 0DH, N2
MOV A, # 1
SJMP FINN
N2: CJNE A, # 0BH, N3
MOV A, # 2
SJMP FINN
N3: CJNE A, # 07H, HER
MOV A, # 3
FINN: MOVC A @ A DPTR
RET
Tabell1: 0F9H DB, 99H, 0F8H, 8EH
Table2: 0A4H DB, 92H, 80H, 0C0H
TABLE3: 0B0H DB, 82H, 90H, 86H
TABLE4: 088H DB, 83H, 0C6H, 0A1H
کافیه که یک برنامه برای تاخیر بنویسی
ضمنا کیبورد به پورت یک وصل میشه بدون واسطه این برنامه آزمایش شده و مطمئن باش که جواب میده
اگه مشکلی بود حتما بگو
باید بگم که سایت های فارسی خیلی غنی تر اند<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Nøytral" border="0" />

[/ url]

 
javad66 skrev:

MOV P1, # 0FH

LP:

MOV P1, # 0FH

KPD:

MOV A, P1

CJNE A, 0FH, # DIS

ACALL DELAY

JMP KRL

DIS: ACALL FORSINKELSE

SJMP KPD

KRL: MOV A, P1

CJNE A, 0FH, # NESTE

ACALL DELAY

SJMP KRL

NESTE: ACALL SCANKEY

ACALL DELAY

SJMP LP

SCANKEY:

ACALL DELAY

MOV P1, # 0EFH

MOV A, P1

ANL A, # 0FH

CJNE A, 0FH, # C1

MOV P1, # 0DFH

MOV A, P1

ANL A, # 0FH

CJNE A, # 0FH, C2

MOV P1, # 0BFH

MOV A, P1

ANL A, # 0FH

CJNE A, # 0FH, C3

MOV P1, # 7Fh

MOV A, P1

ANL A, # 0FH

CJNE A, # 0FH, C4

POP 7BH

MOV P1, # 0FH

LJMP LP

C1: MOV DPTR, # Tabell1

SJMP FINDROW

C2: MOV DPTR, # table2

SJMP FINDROW

C3: MOV DPTR, # TABLE3

SJMP FINDROW

C4: MOV DPTR, # TABLE4

FINDROW: CJNE A, # 0EH, N1

MOV A, # 0

SJMP FINN

N1: CJNE A, # 0DH, N2

MOV A, # 1

SJMP FINN

N2: CJNE A, # 0BH, N3

MOV A, # 2

SJMP FINN

N3: CJNE A, # 07H, HER

MOV A, # 3

FINN: MOVC A @ A DPTR

RET

Tabell1: 0F9H DB, 99H, 0F8H, 8EH

Table2: 0A4H DB, 92H, 80H, 0C0H

TABLE3: 0B0H DB, 82H, 90H, 86H

TABLE4: 088H DB, 83H, 0C6H, 0A1H

کافیه که یک برنامه برای تاخیر بنویسی

ضمنا کیبورد به پورت یک وصل میشه بدون واسطه این برنامه آزمایش شده و مطمئن باش که جواب میده

اگه مشکلی بود حتما بگو

باید بگم که سایت های فارسی خیلی غنی تر اند

<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Nøytral" border="0" /> [/ url]
 
Jeg har allerede skrevet denne koden og bruke den til grensesnittet 4 * 4kepad til 8051.
med denne koden kan vi lese et 4 * 4keypad og bruk for ËñÝ porpose.det trenger bare å skrive en subroutin for "forsinkelsen" som tilfredsstiller 10ms forsinkelse.
evryone kan bruke denne koden med trygg på at det fungerer bra.
excusme aboat dårlig engelske.
MOV P1, # 0FH
LP:
MOV P1, # 0FH
KPD:
MOV A, P1
CJNE A, 0FH, # DIS
ACALL DELAY
JMP KRL
DIS: ACALL FORSINKELSE
SJMP KPD
KRL: MOV A, P1
CJNE A, 0FH, # NESTE
ACALL DELAY
SJMP KRL
NESTE: ACALL SCANKEY
ACALL DELAY
SJMP LP
SCANKEY:
ACALL DELAY
MOV P1, # 0EFH
MOV A, P1
ANL A, # 0FH
CJNE A, 0FH, # C1
MOV P1, # 0DFH
MOV A, P1
ANL A, # 0FH
CJNE A, # 0FH, C2
MOV P1, # 0BFH
MOV A, P1
ANL A, # 0FH
CJNE A, # 0FH, C3
MOV P1, # 7Fh
MOV A, P1
ANL A, # 0FH
CJNE A, # 0FH, C4
POP 7BH
MOV P1, # 0FH
LJMP LP
C1: MOV DPTR, # Tabell1
SJMP FINDROW
C2: MOV DPTR, # table2
SJMP FINDROW
C3: MOV DPTR, # TABLE3
SJMP FINDROW
C4: MOV DPTR, # TABLE4
FINDROW: CJNE A, # 0EH, N1
MOV A, # 0
SJMP FINN
N1: CJNE A, # 0DH, N2
MOV A, # 1
SJMP FINN
N2: CJNE A, # 0BH, N3
MOV A, # 2
SJMP FINN
N3: CJNE A, # 07H, HER
MOV A, # 3
FINN: MOVC A @ A DPTR
RET
Tabell1: 0F9H DB, 99H, 0F8H, 8EH
Table2: 0A4H DB, 92H, 80H, 0C0H
TABLE3: 0B0H DB, 82H, 90H, 86H
TABLE4: 088H DB, 83H, 0C6H, 0A1H<img src="http://images.elektroda.net/51_1233784744_thumb.gif" border="0" alt="lcd and keypad for 8051" title="LCD-skjerm og tastatur for 8051"/>
 

Welcome to EDABoard.com

Sponsor

Back
Top