Inicializovat AT89C2051 port!

C

c3cube

Guest
Co bych měl psát o inicializaci port 3 jako vstupní port v assembleru??Vlastně jsem jen potřebují P3.0 zapnout krokového motoru pomocí dálkového ovládání.

 
Ahoj

Chcete-li port jako vstupní port musíte stačí napsat '1 'to, že pin / port a pak si přečtěte status.

Kód:

setb P3.1, napište 1 do přístavu

jb p3.1 nastavení, zkontrolujte, zda je to 1 nebo 0

NOP; bit není nastaven, tj. vstup je 0

sjmp kon

nastavení: nop; bit je nastaven, tj. vstup je 1kon:

, Zbytek kódu
 
Snažil jsem se, ale to nefunguje!Jakékoliv jiné mothods??

 
c3cube napsal:

Snažil jsem se, ale to nefunguje!
Jakékoliv jiné mothods??
 
P3.0 Používá se k zapnutí signál k zapnutí krokový motor, který je připojen k Port 1.

 
Za předpokladu, že momentální vypínač je připojen mezi P3.0 a GND ..

SETB P3.0

LOOP: JB P3.0, LOOP
..
pokr. ..

Když stisknete vypínač P3.0 stane "0" na chvíli, bude mikrokontrolér opustí smyčku a pokračovat s krokového motoru kontrolou ..

S pozdravem,
IanP

 
Zkuste můj standardní kód pro AT89c

;############# Napsal Ali Mustafa Naas o pomoc #######################
;################################################# #######################
$ Title (LED flashing.asm)
$ MOD51
$ NOPRINT, vidět chyby na obrazovce, případně chyby zjištěné
$ INCLUDE (MYPAULM2.EQU), adresa PAULMON2 utility rutiny
$ Seznamu, nelze změnit $ NOPRINT

;################################################# # # #
; RESET Rutinní
ORG 0000h, najděte rutinní na 00H
AJMP HLAVNÍ; Přejít na START

;################################################# # # #
; Přerušení (nebudu používat zde)

ORG 03H, vnější přerušení 0
RETI
ORG 0BH, časovač 0 přerušení
RETI
ORG 13H, vnější přerušení 1
RETI
ORG 1BH, časovač 1 přerušení
RETI
ORG 23h, sériový port přerušení
RETI
ORG 25H, najděte začátku zbytku programu;################################################# # # # #

Inicializovat:; zřídit kontrolní registry & porty
MOV TCON, # 00H
MOV TMOD, # 00H
MOV PSW, # 00H
MOV IE, # 00H; vypnout přerušeníRET;################################################# #####

;************************************************* *************************
;
DELAYMS:; milisekunda zpoždění rutinní
;
MOV R7, # 00H; dát hodnotu 0 v registru R7
LOOPA:
INC R7, R7 zvýší o jednu (R7 = R7 1)
MOV A, R7; pohybovat hodnoty R7 na Accumlator (známý také jako)
CJNE, # 0FFH, LOOPA, porovnání s hex FF (256).Ne-li stejné Přejít na LOOPA
RET, návrat k názoru, že tato rutina byla volána z
;
;************************************************* *************************

;################################################# ######

smyčky:
ACALL inicializovat
SETB P1.0; zde port P1.0 je inicializován jako vstupní
SETB P1.2; zde port P1.2 je inicializován jako vstup také
, Poznámka: inicializace portů může být provedeno v inicializovat sub-rutiny
, Místo hlavní smyčku, není žádný rozdíl.
, Při normálním případě jsou všechny porty jsou initailized výstupní port.

####### Napsat svůj kód zde #####################
END

Hodně štěstí

 

Welcome to EDABoard.com

Sponsor

Back
Top