Iniţializaţi portul AT89C2051!

C

c3cube

Guest
Ce ar trebui să scriu pentru a iniţializa port 3, astfel cum port de intrare în limbajul de asamblare???De fapt, am doar nevoie de P3.0 pentru a porni pe un motor pas cu pas cu ajutorul unei telecomenzi.

 
Salut

Pentru a face un port ca un port de intrare trebuie sa scrieti doar "1" pentru că portul PIN / şi apoi citiţi starea.

Cod:

P3.1 setb; scrie de la 1 la portul

JB p3.1 stabilite; a verifica dacă acesta este de 1 sau 0

NOP; biţi nu este setat de intrare de exemplu, este 0

con sjmp

set: NOP; bit este setat de intrare de exemplu, este de 1con:

; restul de cod
 
c3cube a scris:

Am încercat, dar nu este de lucru!
Orice alte mothods????
 
P3.0 este folosit pentru a da un semnal de pornire a pentru a porni pe motor pas cu pas, care este conectat la portul 1.

 
Presupunând că un comutator de moment este conectat între P3.0 şi GND ..

SETB P3.0

Loop: JB P3.0, LOOP
..
.. cont

atunci când apăsaţi P3.0 comuta devine "0" pentru un timp, microcontroler va lăsa în buclă şi a continua cu Stepper .. de control motor

Cu respect,
IanP

 
Încercaţi codul meu standard pentru AT89c

;############# scrise de Ali Mustafa Naas pentru ####################### ajutor
;################################################# #######################
$ TITLUL (LED flashing.asm)
$ MOD51
$ NOPRINT; pentru a vedea de eroare pe ecran, dacă este cazul erorilor găsite
$ Include (MYPAULM2.EQU); adresa de rutine de utilitate PAULMON2
$ LISTA; overrided de $ NOPRINT

;################################################# # # #
; RESET de rutină
ORG 0000H; localiza de rutină la 00h
AJMP principale; sari la START

;################################################# # # #
; Interrupts (i nu le va utiliza, aici)

ORG 03H; externe întrerupe 0
Reti
ORG 0BH; Timer 0 întrerupe
Reti
ORG 13H; externe întrerupe 1
Reti
ORG 1BH; Timer 1 întrerupă
Reti
ORG 23H; serial port întrerupe
Reti
ORG 25H; localiza începutul de repaus de program;################################################# # # # #

Iniţializa:; instituit registre de control & porturi
MOV TCON, # 00h
MOV TMOD, # 00h
PSW MOV, # 00h
MOV IE, # 00h; întrerupe fi de acordRet;################################################# #####

;************************************************* *************************
,
DELAYMS:; rutina de milisecunde întârziere
;;
MOV R7, # 00h; pune valoarea 0 în registrul R7
LOOPA:
INC R7; R7 creşte de una (R7 = R7 1)
MOV A, R7; valoare se deplaseze, în R7 la Accumlator (de asemenea cunoscute ca A)
CJNE A, # 0FFH, LOOPA; compara de la A la FF hexazecimal (256).Dacă nu este egal cu du-te la LOOPA
Ret; de retur la punctul că această rutină a fost numit de la
,
;************************************************* *************************

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

Loop:
ACALL a iniţializa
SETB p1.0; p1.0 aici portul este iniţializat ca intrare
SETB p1.2; p1.2 aici portul este iniţializat ca intrare, de asemenea,
; Notă: initializare de porturi se poate face în sub-a iniţializa de rutină
, În loc de bucla principală, nu există nici o diferenţă,.
; În caz normal toate porturile sunt initailized port de ieşire.

####### scrie codul dvs. aici #####################
SFÂRŞIT

succes

 

Welcome to EDABoard.com

Sponsor

Back
Top