16-10-2010, 05:28 PM
|
#7
|
Đệ tử 4 túi
Tham gia ngày: Dec 2009
Nơi Cư Ngụ: TPHCM
Bài gửi: 79
:
|
Trích:
Nguyên văn bởi MrAnhKieu View Post
Mình khai báo như thế này
char const dong6[16]={'L','C','D',' ','V','A',' ','P','I','C','1','6','F','8','7','7'};
giờ mình muốn xuất nó ra LCD mà chạy từ phải sang trái thì phải viết như thế nào??
Mới học nên muốn biết thêm>
|
cái này đã mô phỏng bằng proteus chạy tốt.
http://www.mediafire.com/?8r1m29aeo6af9
Code:
#include "16f877.h"
#include "def_877a.h"
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(d)
#define RS RD0
#define RW RD1
#define E RD2
#define LCD PORTB //LCD duoc dieu khien qua PORTB
int i=0;
const unsigned char key[]="LCD VA PIC16F877";
void comwrt(void) //ghi lenh ra LCD
{
RS=0;
RW=0;
E=1;
E=0;
delay_ms(1);
}
void datawrt(void) //ghi data ra LCD
{
RS=1;
RW=0;
E=1;
E=0;
delay_ms(1);
}
void initLCD(void) //Khoi tao gia tri dau cho LCD
{
LCD=0x38;
comwrt();
LCD=0x0C;
comwrt();
LCD=0x06;
comwrt();
delay_ms(1);
}
void LCD_count() //dem thoi gian 15s cho cac den xanh-Do
{i=0;
While(i<=16)
{
LCD=key[i];
datawrt();
i=i+1;
delay_ms(1000); //xuat lan luot 2 ki tu ra LCD
}
}
void main(void)
{
While(1)
{ int j=0;
set_tris_B(0);
PORTB=0;
set_tris_D(0);
PORTD=0;
initLCD(); //khoi tao LCD
LCD_count();
delay_ms(1000);
While(j<=16)
{
LCD=0b00011100;
comwrt();
delay_ms(1000);
j=j+1;
}
LCD=0x01;
comwrt();
delay_ms(1000);
}
}
|
|
|