PDA

View Full Version : Help .... pic68f77a hiển thị LCD và giao tiếp RS232


cowboyxunau
14-12-2012, 12:52 PM
em đang làm đồ án quản lý nhân viên sử dụng RFID, trong đó có phần hiển thị LCD và giao tiếp RS232 với máy tính thông qua pl2303. Khi mô phỏng trong protues thì chạy ok, nhưng khi chạy thực tế thì im re....? em cũng không rành pic lắm nên nhờ mọi người chỉ dùm, chỉ còn hơn 20 ngày nữa là báo cáo rồi, cái này mà không xong là em tiu mất....
Đây là code em sử dụng thư viện LCD của CCS:

#include <16f877a.h>
#device 16f877a*16ADC=10
#include <DEF_16F877A.h>
#include <string.h>
#include <stdlib.h>
#fuses nowdt,nolvp,noprotect,xt,put
#use delay(clock=20000000)
//#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)


#define LCD_ENABLE_PIN PIN_d3
#define LCD_RS_PIN PIN_d2
#define LCD_RW_PIN PIN_d0
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>
void main()
{
set_tris_e(0x00);
re0=1;
re1=1;
delay_ms(500);
set_tris_D(0x00);
lcd_init();
porte=0x00;
lcd_gotoxy(2,1);
lcd_putc("fReady...");
delay_ms(100);
while(1)
{

}
}

đây là code thử giao tiếp RS232:

#include <16f877a.h>
#device 16f877a*16ADC=10
#include <DEF_16F877A.h>
#include <string.h>
#include <stdlib.h>
#fuses nowdt,nolvp,noprotect,xt,put
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(c)

#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
char khoa;
int i;
#int_RDA
void ngat_RDA()
{
char data;
data=getc();
switch (data)
{
case '1':
{
khoa=1;
break;
}
case '0':
{
khoa=0;
break;
}



void main()
{
khoa=0;
enable_interrupts(int_RDA);
enable_interrupts(global);
set_tris_e(0);
set_tris_a(0);
PORTe=0xff;

while(1)
{
if(khoa==0)
porte=0x00;
else
porte=0xff;
}

Mạch của em:

TRUNGBAOSPKT
16-04-2013, 11:55 PM
Mail : TRUNGBAOSPKT@yahoo.com . có gì thắc mắc . Em gửi mail cho anh!

Knight_FlyCn
07-05-2013, 01:13 AM
KO biết là bạn mua cái usb-ttl Pl2303 ở đâu vậy có thể chỉ mình chỗ mua đc ko/