Initialize AT89C2051 havn!

C

c3cube

Guest
Hvad skal jeg skrive til initialisere port 3 som input port i assembler sprog???Faktisk, jeg behøver kun P3.0 at tænde en stepmotor ved hjælp af en fjernbetjening.

 
Hej

Til at gøre en havn som et input port du skal bare skrive '1 'til at pin / havn og derefter læse status.

Kode:

setb P3.1; skrive 1 til havnen

JB p3.1 sæt; kontrollere, om det er 1 eller 0

NOP; bit ikke er sat dvs input er 0

sjmp con

sæt: NOP; bit er sat dvs input er 1.con:

; resten af koden
 
Jeg har prøvet, men det virker ikke!Enhver anden mothods????

 
c3cube skrev:

Jeg har prøvet, men det virker ikke!
Enhver anden mothods????
 
Den P3.0 bruges til at give et skifte på signal til at tænde for stepmotor, som er sluttet til Port 1.

 
Antages det, at en momentan skifte er tilsluttet mellem P3.0 og GND ..

SETB P3.0

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

når du trykker på knappen P3.0 bliver "0" for et stykke tid, vil mikrocontroller forlade LOOP og fortsætte med Stepper Motor kontrol ..

Hilsen,
IanP

 
Prøv min standard kode for AT89c

;############# skrevet af Ali Mustafa Naas for hjælp #######################
;################################################# #######################
$ Title (LED flashing.asm)
$ MOD51
$ NOPRINT; at se fejl på skærmen, hvis eventuelle fejl fundet
$ Include (MYPAULM2.EQU); adresse PAULMON2 nytte rutiner
$ List; overrided af $ NOPRINT

;################################################# # # #
; Nulstilling Rutinemæssig
ORG 0000H; lokalisere rutine på 00h
AJMP MAIN, springe til START

;################################################# # # #
; Interrupts (jeg vil ikke bruge dem her)

ORG 03h; ekstern afbryder 0
RETI
ORG 0BH; timer 0 afbryder
RETI
ORG 13H; ekstern afbryder 1
RETI
ORG 1BH; timer 1 afbryder
RETI
ORG 23h; seriel port afbryder
RETI
ORG 25H; finde begyndelsen af resten af programmet;################################################# # # # #

INITIALIZE:; nedsat kontrol registre & havne
MOV TCON, # 00h
MOV TMOD, # 00h
MOV PSW, # 00h
MOV IE, # 00h; disable interruptsRET;################################################# #####

;************************************************* *************************
;
DELAYMS:; millisekund forsinkelse rutine
;;
MOV R7, # 00h; sætte værdi på 0 i register R7
LOOPA:
INC R7; stigning R7 af en (R7 = R7 1)
MOV A, R7; flytte værdi i R7 til Accumlator (også kendt som A)
CJNE A, # 0FFH, LOOPA; sammenligne A til FF hex (256).Hvis ikke lige gå til LOOPA
RET; vende tilbage til det punkt, at denne rutine blev kaldt fra
;
;************************************************* *************************

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

loop:
ACALL INITIALIZE
SETB p1.0; her havn p1.0 er initialiseret som input
SETB P1.2; her havn P1.2 er initialiseret som input også
Note: initialiseringen af de havne, der kan gøres i INITIALIZE sub-rutine
, I stedet for de vigtigste loop, er der ingen forskel.
; På det normale tilfælde alle havne er initailized output port.

####### skriv din kode her #####################
SLUT

held og lykke

 

Welcome to EDABoard.com

Sponsor

Back
Top