LCD и клавиатурата, за 8051

Z

zohreh

Guest
Здравейте аз искам да пиша код за монтаж за 8051, че правя 4 основни функции ( ,-,*,/)
Сега не могат да четат от клавиатурата (4 * 4) и да се покаже на LCD!

Някой има ли на събранието код за калкулатор?

PLZ ми помогне

(Съжалявам ако не е английският ми е добър!)

 
Използвайте 74C922 чип декодер клавиатура (с прекъсване ред)

 
MOV P1, # 0FH
LP:
MOV P1, # 0FH
KPD:
MOV А, P1
CJNE А, # 0FH, ДСИ
ACALL ЗАБАВЯНЕ
JMP KRL
ДСИ: ACALL ЗАБАВЯНЕ
SJMP KPD
KRL: MOV А, P1
CJNE А, # 0FH, NEXT
ACALL ЗАБАВЯНЕ
SJMP KRL
Напред: ACALL SCANKEY
ACALL ЗАБАВЯНЕ
SJMP LP
SCANKEY:
ACALL ЗАБАВЯНЕ
MOV P1, # 0EFH
MOV А, P1
ANL А, # 0FH
CJNE А, # 0FH, C1
MOV P1, # 0DFH
MOV А, P1
ANL А, # 0FH
CJNE А, # 0FH, C2
MOV P1, # 0BFH
MOV А, P1
ANL А, # 0FH
CJNE А, # 0FH, C3
MOV P1, # 7FH
MOV А, P1
ANL А, # 0FH
CJNE А, # 0FH, C4
УОЗ 7BH
MOV P1, # 0FH
ЬОМР LP
C1: MOV ВРТК, # Table1
SJMP FINDROW
C2: MOV ВРТК, # Таблица 2
SJMP FINDROW
C3: MOV ВРТК, # TABLE3
SJMP FINDROW
C4: MOV ВРТК, # TABLE4
FINDROW: CJNE А, # 0EH, N1
MOV А, # 0
SJMP НАМЕРИ
N1: CJNE А, # 0DH, N2
MOV А, # 1
SJMP НАМЕРИ
N2: CJNE А, # 0BH, N3
MOV А, # 2
SJMP НАМЕРИ
N3: CJNE А, # 07h, ТУК
MOV А, # 3
Find: МОУС А, А @ ВРТК
RET
Table1: DB 0F9H, 99H, 0F8H, 8EH
Таблица 2: DB 0A4H, 92H, 80Н, 0C0H
TABLE3: DB 0B0H, 82H, 90h, 86H
TABLE4: DB 088H, 83H, 0C6H, 0A1H
کافیه که یک برنامه برای تاخیر بنویسی
ضمنا کیبورد به پورت یک وصل میشه بدون واسطه این برنامه آزمایش شده و مطمئن باش که جواب میده
اگه مشکلی بود حتما بگو
باید بگم که سایت های فارسی خیلی غنی تر اند<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Неутрални" border="0" />

[/ URL]

 
javad66 написа:

MOV P1, # 0FH

LP:

MOV P1, # 0FH

KPD:

MOV А, P1

CJNE А, # 0FH, ДСИ

ACALL ЗАБАВЯНЕ

JMP KRL

ДСИ: ACALL ЗАБАВЯНЕ

SJMP KPD

KRL: MOV А, P1

CJNE А, # 0FH, NEXT

ACALL ЗАБАВЯНЕ

SJMP KRL

Напред: ACALL SCANKEY

ACALL ЗАБАВЯНЕ

SJMP LP

SCANKEY:

ACALL ЗАБАВЯНЕ

MOV P1, # 0EFH

MOV А, P1

ANL А, # 0FH

CJNE А, # 0FH, C1

MOV P1, # 0DFH

MOV А, P1

ANL А, # 0FH

CJNE А, # 0FH, C2

MOV P1, # 0BFH

MOV А, P1

ANL А, # 0FH

CJNE А, # 0FH, C3

MOV P1, # 7FH

MOV А, P1

ANL А, # 0FH

CJNE А, # 0FH, C4

УОЗ 7BH

MOV P1, # 0FH

ЬОМР LP

C1: MOV ВРТК, # Table1

SJMP FINDROW

C2: MOV ВРТК, # Таблица 2

SJMP FINDROW

C3: MOV ВРТК, # TABLE3

SJMP FINDROW

C4: MOV ВРТК, # TABLE4

FINDROW: CJNE А, # 0EH, N1

MOV А, # 0

SJMP НАМЕРИ

N1: CJNE А, # 0DH, N2

MOV А, # 1

SJMP НАМЕРИ

N2: CJNE А, # 0BH, N3

MOV А, # 2

SJMP НАМЕРИ

N3: CJNE А, # 07h, ТУК

MOV А, # 3

Find: МОУС А, А @ ВРТК

RET

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

Таблица 2: DB 0A4H, 92H, 80Н, 0C0H

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

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

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

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

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

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

<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Неутрални" border="0" /> [/ URL]
 
Аз вече писа този код и да го използвате, за да интерфейс 4 * 4kepad до 8051.
с този код ще може да прочетете на 4 * 4keypad и използването за eny porpose.той просто трябва да напишете subroutin за "забавяне", които отговарят 10ms закъснение.
evryone да използвате този код с уверени, че той работи добре.
excusme aboat лош английски.
MOV P1, # 0FH
LP:
MOV P1, # 0FH
KPD:
MOV А, P1
CJNE А, # 0FH, ДСИ
ACALL ЗАБАВЯНЕ
JMP KRL
ДСИ: ACALL ЗАБАВЯНЕ
SJMP KPD
KRL: MOV А, P1
CJNE А, # 0FH, NEXT
ACALL ЗАБАВЯНЕ
SJMP KRL
Напред: ACALL SCANKEY
ACALL ЗАБАВЯНЕ
SJMP LP
SCANKEY:
ACALL ЗАБАВЯНЕ
MOV P1, # 0EFH
MOV А, P1
ANL А, # 0FH
CJNE А, # 0FH, C1
MOV P1, # 0DFH
MOV А, P1
ANL А, # 0FH
CJNE А, # 0FH, C2
MOV P1, # 0BFH
MOV А, P1
ANL А, # 0FH
CJNE А, # 0FH, C3
MOV P1, # 7FH
MOV А, P1
ANL А, # 0FH
CJNE А, # 0FH, C4
УОЗ 7BH
MOV P1, # 0FH
ЬОМР LP
C1: MOV ВРТК, # Table1
SJMP FINDROW
C2: MOV ВРТК, # Таблица 2
SJMP FINDROW
C3: MOV ВРТК, # TABLE3
SJMP FINDROW
C4: MOV ВРТК, # TABLE4
FINDROW: CJNE А, # 0EH, N1
MOV А, # 0
SJMP НАМЕРИ
N1: CJNE А, # 0DH, N2
MOV А, # 1
SJMP НАМЕРИ
N2: CJNE А, # 0BH, N3
MOV А, # 2
SJMP НАМЕРИ
N3: CJNE А, # 07h, ТУК
MOV А, # 3
Find: МОУС А, А @ ВРТК
RET
Table1: DB 0F9H, 99H, 0F8H, 8EH
Таблица 2: DB 0A4H, 92H, 80Н, 0C0H
TABLE3: DB 0B0H, 82H, 90h, 86H
TABLE4: DB 088H, 83H, 0C6H, 0A1H<img src="http://images.elektroda.net/51_1233784744_thumb.gif" border="0" alt="lcd and keypad for 8051" title="LCD и клавиатурата, за 8051"/>
 

Welcome to EDABoard.com

Sponsor

Back
Top