View Single Post
Old 16-10-2010, 05:28 PM   #7
hcmut.khoamaisi
Đệ tử 4 túi
 
hcmut.khoamaisi's Avatar
 
Tham gia ngày: Dec 2009
Nơi Cư Ngụ: TPHCM
Bài gửi: 79
:
Send a message via Yahoo to hcmut.khoamaisi
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);
   }
}
hcmut.khoamaisi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn