
Comunicacion serial con el PIC 18F4550
Publicado por John (1 intervención) el 07/07/2015 18:08:41
Hola a todos de este foro me estoy iniciando en este mundo de la programacion no se mucho y me gustaria que me den una mano ya que tengo un projecto que presentar tengo que elaborar una interfaz grafica disenada en matlab que contenga dos botones para controlar el encendido y apagado de los dos led que se encuentran en la tarjeta de adquicion de datos APM4X5X, correspondientes a los pines A4 y D3, espero contar con su ayuda ya que en la programacion en CCS tengo lo siguiente:
Esto es del APM4X5X
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "apm_4x5x.h"
#byte porta=0xf80
#byte portd=0xf83
int valor ;
void main(void)
{
Set_tris_a(0x01);
porta=0;
gets(valor);
//output_low(PIN_A4);
//output_low(PIN_D3);
if (valor == "1" )
{
output_high (PIN_A4);
}
if (valor == "0" ){
output_low (PIN_A4);
}
if (valor == "1" ){
output_high (PIN_D3);
}
if (valor == "0" ){
output_low (PIN_D3);
}
while(true)
{ }
}
Esto es del APM4X5X
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <18F4455.h>
#DEVICE ADC=8
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#use rs232(baud=115200, xmit=PIN_a1, rcv=PIN_a4) //para q se conecte al peurto serie
/*#define LCD_ENABLE_PIN PIN_D2
#define LCD_RS_PIN PIN_D0
#define LCD_RW_PIN PIN_D1
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7*/
#define LCD_DATA3 PIN_D3
#define LCD_DATA4 PIN_A1
#define LCD_DATA4 PIN_A4
//#include "lcd_lcr.c"
#include "usb_bootloader.h"
EN matlab se como diseñar los dos botones, lo que no tengo claro es la programcion que van para tener la comunicacion que debe tener una interrupcion para que se comunique con los puertos A4 y D3 espero poder contar con su ayuda y gracias de antemano
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
handles.s= serial('COM6', 'baudRate', 115200,'terminator','CR/LF');
valor=get(hObject, 'value');
fopen(handles.s);
if valor==1
fprintf(handles.s,'ON');
disp('ON led');
else
fprintf(handles.s, 'OFF');
disp('OFF led');
end
fclose(handles.s);
- SERIAL-MATLAB.rar(38,1 KB)
Valora esta pregunta


0