Initialize AT89C2051 luka!

C

c3cube

Guest
Što trebam napisati inicijalizirati luke 3 kao ulazni priključak u asemblerski jezik?Zapravo, ja tek treba da P3.0 uključiti stepper motor pomoću daljinskog upravljača.

 
Bok

Da bi luka kao ulazni priključak koji ste se baš pisati '1 'na taj pin / luka, a zatim pročitajte statusa.

Šifra:

setb P3.1; pisati 1 do luke

JB p3.1 set; se provjerilo da li je 1 ili 0

NOP, bit nije postavljen tj. ulaz je 0

sjmp con

set: NOP, malo je skup, odnosno ulaz je 1con:

; ostatak koda
 
Ive 'pokušao Internet, ali svoj' ne rad!Bilo koja druga mothods??

 
c3cube wrote:

Ive 'pokušao Internet, ali svoj' ne rad!
Bilo koja druga mothods??
 
P3.0 se koristi kako bi prekidača na signal za uključivanje stepper motor koji je spojen na Port 1.

 
Pretpostavljajući da je prolazan šiba je povezan između P3.0 i GND ..

SETB P3.0

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

kada pritisnete prekidač P3.0 postaje "0" na neko vrijeme, mikrokontroler će ostaviti LOOP i nastaviti sa Stepper Motor kontrolom ..

Pozdravi,
IanP

 
Pokušajte moj standardni kod za AT89c

;############# napisao Ali Mustafa Naas za pomoć #######################
;################################################# #######################
$ Naslov (LED flashing.asm)
$ MOD51
$ NOPRINT; vidjeti greška na ekranu, ako postoje greške pronađene
$ INCLUDE (MYPAULM2.EQU); adresa PAULMON2 komunalnih rutine
$ LIST; overrided za $ NOPRINT

;################################################# # # #
; RESET SVAKODNEVNA RUTINA
ORG 0000H; locirati rutinu u 00h
AJMP GLAVNI; skok na START

;################################################# # # #
; Prekida (neću ih koristiti ovdje)

ORG 03h; vanjske prekid 0
Reti
ORG 0BH; brojač 0 prekid
Reti
ORG 13H; vanjski prekid 1
Reti
ORG 1BH; brojilo 1 prekid
Reti
ORG 23h; serijski port prekid
Reti
ORG 25H; pronašli početak ostatka programa;################################################# # # # #

Initialize:; postaviti kontrolu registara & luka
MOV TCON, # 00h
MOV TMOD, # 00h
MOV PSW, # 00h
MOV IE, # 00h; onemogućiti prekidaRET;################################################# #####

;************************************************* *************************
;
DELAYMS:; milisekunda kašnjenje potprogram
;;
MOV R7, # 00h, stavi vrijednost 0 u registar R7
LOOPA:
INC R7; povećati R7 po jedan (R7 = R7 1)
MOV A, R7; kretati vrijednosti u R7 da Accumlator (također poznat kao)
CJNE, # 0FFH, LOOPA; usporediti s FF heksadecimalno (256).Ako nije jednaka ići LOOPA
RET, povratak na točku da je to rutina je pozvan iz
;
;************************************************* *************************

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

petlje:
ACALL initialize
SETB p1.0; ovdje luka p1.0 se inicijalizira kao ulazni
SETB p1.2; ovdje luka p1.2 se inicijalizira kao input i
; napomena: inicijalizacija od luka svibanj biti učinjeno u initialize pod-rutinu
, Umjesto glavne petlje, nema razlike,.
; U normalnom slučaju svi priključci initailized izlazni port.

####### napišite kod ovdje #####################
END

sretno

 

Welcome to EDABoard.com

Sponsor

Back
Top