C-kodu par šo komplektu viena!

S

somf0872

Guest
Can anyone help me in translating šī sastāvdaļa kods 8.051 ucontroller par C-langugae AVR kontrolieris?

Galvenā struktūra programma ir jānosūta 3 reģistros (24Bits) pārnes īpaši ostu pins regulāri taktu impulsiem saturu.

Kods:ORG OOOHCLOCK EQU P3.0

DAT EQU P3.1

EN EQU P3.2IN: MOV P3, # 00h, 24 bit R reģistrēties saimniecības vērtību R = 0000A0MOV 20h, # 00h

MOV 21h, # 00h

MOV 22H, # 0AH, 24 bit N reģistrēties saimniecības vērtību N = 017AB1MOV 23H, # 10H

MOV 24H, # 7AH

MOV 25H, # B1H, 24 bit F reģistrēties saimniecības vērtību N = 000.092MOV 26H, # 00h

MOV 27H, # 00h

MOV 28.h, # 92H; Ir kopā 3 reģistri RN & FMOV R3, # 03H

MOV R0, # 20h, adrese pirmo baitu datu; Ir 3 biti Datu 1 reģistrētiesSTA: MOV R2, # 03H, Tur ir 8 bitsin viens baitsINIT: MOV R1, # 08hCLR ENTālr: MOV, @ R0, datu baits tiek nodota akumulatorsStulbenis: MOV C, ACC.7

MOV DAT, C

RL

SETB CLOCK

CLR CLOCK

CLR DAT

DJNZ R1, stulbenis

INC R0

DJNZ R2, INIT

SETB EN

CLR EN

DJNZ R3, STA

JMP INEND
 
# include <stdio.h>
# include <reg51.h>

Sbit CLOCK = P3 ^ 0;
sbit DAT = P3 ^ 1;
sbit EN = P3 ^ 2;main ()
(
/ / Inicializē mainīgajiem;

P3 = 0x00;
sen float r = 0x0000A0, n = 0x017AB1, f = 0x000092;
unsigned int R3, R0, R2, R1, c;/ / Loop sākas šeit;

while (R3! = 0) (
r2 = 0x03;
while (r2! = 0) (
R1 = 0x08;
EN = 0;
/ * Piešķirt adresi no akumulatora līdz un izmantot šo CHAR () i like = 0x (akumulators adrese) pretējā kļūda var rasties * /
= R0;
while (R1! = 0) (
c = ACC.7;
DAT = c;
<<;
CLOCK = 1;
DAT = 0;
)
R0 ;
)
EN = 1;
EN = 0;

)
/ / Loop beidzas šeit;
)tas varētu darboties sodu KEIL programmatūra

 
Thanks for this one!

Tas ir devis man kādu ideja, kā rīkoties ar ar C kodu.

Bet kopš esmu unisng AVR ATMEGA162, lielākā daļa no komandas nestrādās out!Noteikšanu un klīringa bit, ostas definīcijas, ir nedaudz atšķirīgi.

Jebkurā gadījumā, pateicoties daudz!

- X --

 

Welcome to EDABoard.com

Sponsor

Back
Top