Nhờ các bác giúp em với.
Em dùng CCS để code cho PIC16F877A giao tiếp LCD1602, nhưng chỉ cần khởi tạo LCD là mạch bị treo (chạy mô phỏng trên Proteus vẫn OK), khi bỏ các hàm liên quan LCD thì lại không sao.
Có bác nào gặp trường hợp ntn chưa ạ, có cách nào xử lý không?
Có khi nào chip đểu không nhỉ . Em mua chip ở minhha.
//////////////
CODE:
#include <16f877a.h>
#device *=16 ADC=10
#include <lcd.c>
#fuses HS
#fuses NOWDT
#fuses NOLVP
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#define LED_TEST PIN_D3
#use delay(clock=16000000)
void main()
{
lcd_init () ; //bỏ hàm này đi thì LED mới nhấp nháy
while (TRUE)
{
lcd_putc("\fReady...\n"); //bỏ hàm này đi thì LED mới nhấp nháy
//check xem MCU có treo không
output_low(LED_TEST);
delay_ms(1000);
output_high(LED_TEST);
delay_ms(1000);
}
}
Em dùng CCS để code cho PIC16F877A giao tiếp LCD1602, nhưng chỉ cần khởi tạo LCD là mạch bị treo (chạy mô phỏng trên Proteus vẫn OK), khi bỏ các hàm liên quan LCD thì lại không sao.
Có bác nào gặp trường hợp ntn chưa ạ, có cách nào xử lý không?
Có khi nào chip đểu không nhỉ . Em mua chip ở minhha.
//////////////
CODE:
#include <16f877a.h>
#device *=16 ADC=10
#include <lcd.c>
#fuses HS
#fuses NOWDT
#fuses NOLVP
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#define LED_TEST PIN_D3
#use delay(clock=16000000)
void main()
{
lcd_init () ; //bỏ hàm này đi thì LED mới nhấp nháy
while (TRUE)
{
lcd_putc("\fReady...\n"); //bỏ hàm này đi thì LED mới nhấp nháy
//check xem MCU có treo không
output_low(LED_TEST);
delay_ms(1000);
output_high(LED_TEST);
delay_ms(1000);
}
}
Comment