pic basic ten pic ccs e kod dönüştürme

Başlatan omckomu, 14 Mayıs 2008, 14:58:02

omckomu

merhaba arkadaşlar

pic basic ile yazılmış basit bir kod var bana asm si ya da pic ccs kodları lazım: ben biraz yazdım ama bazı kodların karşılıklarını bulamıyorum.

Acil yardımcı olusanız sevinirim.

Orjinal kodlar

Mikroifllemci yüklenecek PicBasic Kodu:
PAUSE 250
TRISB = %00100000
SURE VAR WORD ;DE⁄‹fiKENLER TANIMLANIYOR
VERICI VAR PORTB.1
ALICI VAR PORTB.2
LCDOUT $FE,1 ;EKRANI TEMIZLE
T1CON = %00000001 ;TIMER1 ÖLÇEKLEME 1/1
PIE1.0=1 ;TIMER1'‹ ETK‹NLEfiT‹R
PIR1.0=0 ; TIMER1 TAfiMASINI TEM‹ZLE
INTCON = %11000000 ;DIfi KESMELERI ETK‹NLEfiT‹R
ANADONGU:
PAUSE 50 ;FARKLI ÖLÇÜMLER ARASINDAK‹ BEKLEME
SURE = 0
PIR1.0 = 0
HIGH VERICI ;40 KHZ L‹K S‹NYAL‹ GÖNDER
PAUSEUS 250
LOW VERICI
TMR1L = 0 ;TIMER1'‹ SIFIRLA
TMR1H = 0
WHILE 1=1 ;YANSIMAYI D‹NLE
IF ALICI = 0 THEN
SURE.LOWBYTE = TMR1L ;YANSIMA ALINIRSA O ANK‹ TIMER DE⁄ER‹N‹ TUT
SURE.HIGHBYTE = TMR1H
GOTO GOSTER
ENDIF
IF PIR1.0=1 THEN ANADONGU
WEND
GOTO ANADONGU
GOSTER:
LCDOUT $FE,1,"UZAKLIK" ;ÖLÇÜLEN UZAKLI⁄I EKRANA YAZ
LCDOUT $FE,$C0,#((SURE)/58), " cm"
PAUSE 25
GOTO ANADONGU



Benim Kodlar


#inlcude <16F628.h>
#fuses XT, NOWDT, NOPROTECT, BROWNOUT
#use delay(clock=4000000)
#include <lcd.c>
#define ALICI PIN_B1
#define VERİCİ PIN_B2

void ANADONGU(void)
{
delay_ms(50);

süre=0;
output_bit(PIE1.0,0);


{
output_high(VERİCİ);
delay_ms(250);
output_low(VERİCİ);
}

output_low(TMR1L);
output_low(TMR1H);

while(1)
{
   if (output_low(ALICI))
           {
             output_lowbyte(süre, TMR1L);  ???????????
         output_highbyte(süre,TMR1L);
             GOSTER();
           }
   if (output_bit(PIR1.0,1))
   
   {
   ANADONGU()
   }
}

void GOSTER(void)

{
lcd_init();
lcd_putc("\f");
lcd_putc(süre/58 "cm");
delay_ms(25);

void main()
{

word süre;

set_tris_b(0x20);
set_tris_a(0x00);
set_T1CON(0x01);

output_bit(PIE1.0,1);
output_bit(PIR1.0,1);

set_INTCON(0xC0);

ANADONGU();

}

iyonosfer

#inlcude <16F628.h>
#fuses XT, NOWDT, NOPROTECT, BROWNOUT
#use delay(clock=4000000)
#include <lcd.c>
#define VERICI PIN_B1
#define ALICI PIN_B2

#byte PIR1 = 0x0C;
int16 sure;

void main(void)
{
    lcd_init();
    setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);   
    enable_interrupts(GLOBAL);
	enable_interrupts(INT_TIMER1);
	bit_clear(PIR1,0);
	lcd_putc("\f");
	while(TRUE)
	{
		delay_ms(50);
		sure = 0;
		bit_clear(PIR1,0);
		output_high(VERICI);
		delay_us(250);
		output_low(VERICI);
		set_timer1(0);
		while(!bit_test(PIR1,0)) 
		{
			if(!input(ALICI))
			{
				sure = get_timer1();
				lcd_gotoxy(1,1);
				printf(lcd_putc,"UZAKLIK");
				lcd_gotoxy(1,2);
				printf(lcd_putc,"%lu CM",(int16)(sure/5));
			}
		}
		
	}
}


Bu kodu bir dene, LCD pinlerini doğru bağladığından emin ol
Blog Sayfam: www.teknobakis.com