cuong86vt
11-06-2008, 05:18 PM
Mình mới viết 1 chg trình dùng để điều khiển con trỏ dịch chuyển : lên, xuống, trái, phải trên màn mình LCD, để điều khiển nó, mình viết VB truyền dữ liệu xuống 16f877a để ra lệnh điều khiển và test lại bằng Serial in out Monitor của CCS, sau đây là code CCS và code VB ,mong các bạn tham khảo và góp ý:
#include <16f877a.h>
#include <def_877a.h>
#use delay(clock=20000000)
#fuses HS, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOPROTECT
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,stream=GPS)
#include <flex_lcd_1.c>
//#include <lcd1.c>
#include <stdlib.h>
#include <string.h>
int32 dulieu;
int i=1;
int j=1;
char kytu;
#INT_RDA
void nhandulieu()
{
dulieu=getc();
if(dulieu=='l')
{
i--;
lcd_gotoxy(i,j);
}
else if(dulieu=='r')
{
i++;
lcd_gotoxy(i,j);
}
else if(dulieu=='u')
{
j=1;
lcd_gotoxy(i,j);
}
else if(dulieu=='d')
{
j=2;
lcd_gotoxy(i,j);
}
else if(dulieu=='`')
{
lcd_putc('\n');
}
else
{
lcd_putc(dulieu);
}
}
void main(void)
{
set_tris_c(128);
enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
lcd_init();
delay_ms(10);
lcd_gotoxy(1,1);
while(true)
{
//lcd_send_byte(0,0x0A);
lcd_send_byte(0,0x0E); //bat hien thi, nhap nhay con tro.
}
}
#include <16f877a.h>
#include <def_877a.h>
#use delay(clock=20000000)
#fuses HS, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOPROTECT
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,stream=GPS)
#include <flex_lcd_1.c>
//#include <lcd1.c>
#include <stdlib.h>
#include <string.h>
int32 dulieu;
int i=1;
int j=1;
char kytu;
#INT_RDA
void nhandulieu()
{
dulieu=getc();
if(dulieu=='l')
{
i--;
lcd_gotoxy(i,j);
}
else if(dulieu=='r')
{
i++;
lcd_gotoxy(i,j);
}
else if(dulieu=='u')
{
j=1;
lcd_gotoxy(i,j);
}
else if(dulieu=='d')
{
j=2;
lcd_gotoxy(i,j);
}
else if(dulieu=='`')
{
lcd_putc('\n');
}
else
{
lcd_putc(dulieu);
}
}
void main(void)
{
set_tris_c(128);
enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
lcd_init();
delay_ms(10);
lcd_gotoxy(1,1);
while(true)
{
//lcd_send_byte(0,0x0A);
lcd_send_byte(0,0x0E); //bat hien thi, nhap nhay con tro.
}
}