Tình hình là không biết do đâu rồi. Mình đã làm mạch thật dùng thạch anh 20M, tụ 33p nhưng nó vẫn không hiện thị hết hai dòng mà phải nhấn nút reset thì nó mới hiện thị hết. hưchức. Gửi đoạn code trên ccsc cho các bác xem giúp nhé.
#include <16F877A.h>
#include <def_877a.h>
#device *=16 ADC=10
#use delay(clock=20000000)
#FUSES HS
#USE FAST_IO(D)
#USE FAST_IO(b)
#USE FAST_IO(c)
#bit rs = portb.5
#bit rw = portb.4
#bit en = portb.3
int8 i,j;
int16 x,y,f1,f2,df;
//--------------------------------------------------------
void lenh_lcd(int8 malenh)
{
portd=malenh;
rs=0;
rw=0;
en=1;
delay_us(5);
en=0;
delay_ms(3);
}
//--------------------------------------------------------
void data_lcd(unsigned char dulieu)
{
portd=dulieu;
rs=1;
rw=0;
en=1;
delay_us(5);
en=0;
delay_ms(3);
}
//---------------------------------------------------
void main()
{
set_tris_a(0xff);
set_tris_b(0x00);
set_tris_d(0);
set_tris_c(0xff);
df=0;
f1=0;
f2=0;
//-------------------thiet lap adc
setup_ADC(ADC_clock_internal);
setup_ADC_ports(RA0_RA1_RA3_ANALOG);
//------------------- lenh khoi tao lcd
lenh_lcd(0x38);
lenh_lcd(0x0e);
lenh_lcd(0x01);
lenh_lcd(0x06);
//--------------- lenh hien thi lcd
lenh_lcd(0x80);
data_lcd("U1:");
lenh_lcd(0x88);
data_lcd("U2:");
delay_ms(1);
lenh_lcd(0xC0);
data_lcd("F1:");
delay_ms(1);
lenh_lcd(0xC8);
data_lcd("F2:");
delay_ms(1);
|