Autor Tema: Caros eu estou com um duvida  (Leído 1458 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado cesarvix

  • PIC10
  • *
  • Mensajes: 5
Caros eu estou com um duvida
« en: 30 de Noviembre de 2008, 22:10:37 »
Caro.Amigos .eu achei na net um esquema de um robó tack controlado pelo pic16f628 .Achei muito interesante .e simpres e usá pouca peças.
Mais quendo eu uso o picbasic .ele compila normal masi ele não sé comunica em si

Peço ajuda as colegas .o codigo está em baixo.

rx
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
CMCON =$07 'PORTA Dijital
TRISB = %00000010
TRISA = %00001000
@ DEVICE pic16F628 'is,lemci 16F628
@ DEVICE pic16F628, WDT_ON 'Watch Dog Timer aç?k
@ DEVICE pic16F628, PWRT_ON 'Power on Timer aç?k
@ DEVICE pic16F628, PROTECT_OFF 'Kod Protek kapal?
@ DEVICE pic16F628, MCLR_ON 'MCLR pini kullan?l?yor.
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT 'Dahili osilatör kullan?lacak

DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 20h
DEFINE HSER_BAUD 2400
DEFINE HSER_CLROERR 1

leftfwd VAR PORTB.3
leftrev VAR PORTB.4
rightfwd VAR PORTB.5
rightrev VAR PORTB.6
K VAR BYTE
ERRCHK VAR BYTE
Pause 250

loop:

HSerin [WAIT("254"),K,ERRCHK]
:leftrev = 0: rightrev = 0:rightfwd = 0: leftfwd = 0:
IF ERRCHK =192 Then
IF K.BIT0 = 1 Then
leftfwd = 1
Else
leftfwd = 0
EndIF
IF K.BIT1 = 1 Then
leftrev = 1
Else
leftrev = 0
EndIF
IF K.BIT2 = 1 Then
rightfwd = 1
Else
rightfwd = 0
EndIF
IF K.BIT3 = 1 Then
rightrev = 1
Else
rightrev = 0
EndIF
EndIF
Pause 10
GoTo loop:

tx
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 29/11/2008 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
CMCON=07 'portA
INCLUDE "modedefs.bas"
OPTION_REG.7=1 ;PORTB Pull-UP lar aktif
TRISB=%11110000
TRISA=%00000000
@ DEVICE pic16F628 'is,lemci 16F628
@ DEVICE pic16F628, WDT_ON 'Watch Dog Timer aç?k
@ DEVICE pic16F628, PWRT_ON 'Power on Timer aç?k
@ DEVICE pic16F628, PROTECT_OFF 'Kod Protek kapal?
@ DEVICE pic16F628, MCLR_ON 'MCLR pini kullan?l?yor.
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT 'Dahili osilatör kullan?lacak

K VAR BYTE
K=0
Pause 500
SerOut2 PORTA.0,16780,[REP$AA\5,REP$00\5,REP$FF\5]
;Preamble + Sencron Gönderimi
ANADONGU:
IF PORTB.4=1 Then K.BIT0=1
IF PORTB.5=1 Then K.BIT1=1
IF PORTB.6=1 Then K.BIT2=1
IF PORTB.7=1 Then K.BIT3=1

SerOut PORTA.0,N2400,[254]
SerOut PORTA.0,N2400,[K]
SerOut PORTA.0,N2400,[192]

Pause 10
K=0
GoTo ANADONGU

Agradeço pela Atençao,


 

anything