View Single Post
Old 20-07-2012, 03:28 AM   #20
dcn_dt
Đệ tử 1 túi
 
Tham gia ngày: Oct 2009
Bài gửi: 12
:
Smile

Lâu quá không ai ghé đây nhỉ. Em thuộc lớp sinh sau đẻ muộn. Giờ mới lần mò Pic & CCS. Em có nhiều điều muốn hỏi "dần dần". Ai ghé qua thì giúp em với. Em viết Avr thì em viết Lcd như thế này.

Code:
 
unsigned char M[16];

#define LcdPort PORTB
#define LcdPin  PINB
#define LcdDDR  DDRB

#define LcdRS   PORTB.0
#define LcdRW   PORTB.1
#define LcdEN   PORTB.2
unsigned char LcdBusy(void)
{
unsigned char BF;
LcdDDR &=0x0F;//High 4 bit are input
//LcdPort=0xF7;//R Pull-Up Enable

LcdRS=0;
LcdRW=1;

BF=0;
LcdEN=1;  
delay_us(10);
BF=LcdPin&0x80;
LcdEN=0;
delay_us(10);

LcdEN=1;
delay_us(10);
LcdEN=0;
delay_us(10);

if(BF==0x80)return(1);
else        return(0);
}

//----------------
void LcdWr(unsigned char D)
{
LcdDDR|=0xF0;//High 4bit are Output
delay_us(10);
LcdPort=((LcdPort&0x0F)|(D&0xF0));
LcdEN=1;   
LcdEN=0;    
//--
LcdPort=((LcdPort&0x0F)|((D<<4)&0xF0));
LcdEN=1;   
LcdEN=0;    
}

//----------------
void LcdWrData(unsigned char LcdData)
{
while(LcdBusy());
//delay_ms(200);
LcdRS=1;
LcdRW=0;
LcdWr(LcdData);
//LcdRW=1;
}

//----------------
void LcdWrCmd(unsigned char LcdCmd)
{
while(LcdBusy());
//delay_ms(200);
LcdRS=0;
LcdRW=0;
LcdWr(LcdCmd);
//LcdRW=1;
}

//----------------
void LcdWrStr(char *s)
{
while(*s)
    {
    LcdWrData(*s);
    s++;
    }
}
void LcdInit(void)
{
LcdWrCmd(0x02);
LcdWrCmd(0x0c);
LcdWrCmd(0x28); 
LcdWrCmd(0x03); 
LcdWrCmd(0x01); 
}

unsigned int k=123;
void main(void)
{
LcdInit();
LcdWrCmd(0xC0);
sprintf(&M[0],"Display:%d    ",k);  LcdWrStr(&M[0]);
while(1);
}
cái em muốn hỏi là: %d gọi là cái gì (Em ko biết tên nên mới "tả" nó thế).
trong CCS em muốn hiển thị các dạng số thực, số nguyên, số hexa... thì dùng cái %gì đựoc ạ. nó có ở mục nào trong help không?
//mong mọi nguời giúp đỡ

thay đổi nội dung bởi: dcn_dt, 20-07-2012 lúc 09:38 AM.
dcn_dt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn