PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   Help! Viết ký hiệu chữ "phi" lên LCD 2 hàng 16 cột (http://www.picvietnam.com/forum/showthread.php?t=651)

Jerry 04-10-2006 09:06 AM

Help! Viết ký hiệu chữ "phi" lên LCD 2 hàng 16 cột
 
1 Attachment(s)
Mình đang dùng PIC6F877 để điều khiển hiển thị lên màn hình LCD 2 hàng 16 cột, nhưng không biết làm thế nào để hiển thị được ký tự "phi" (có hình đính kèm). Mình dùng 4 bit điều khiển LCD. Rất mong được các cao thủ chỉ giáo.

namqn 04-10-2006 06:44 PM

Bạn đọc lại tài liệu hướng dẫn cho chip HD44780U (đa số LCD ký tự dùng chip điều khiển tương thích với chip này), tìm phần hướng dẫn cách dùng bộ tạo ký tự trong RAM (CGRAM) và cách hiển thị các ký tự bằng CGRAM.

Thân,

Jerry 05-10-2006 11:20 AM

Bạn đã thương thì thương cho trót, thử viết giúp mình đoạn code bằng asm đi!!!

newuser 05-10-2006 11:52 AM

Vùng CGRAM của LCD1602 cho phép người dùng định nghĩa tối đa 8 ký tự đặc biệt với font 5x7, cách mã hóa giống như mã hóa Led ma trận.Bạn có thể dùng kỹ thuật bảng để xuất ký tự mong muốn với mỗi phần tử trong bảng là một hàng của ký tự phi.

Jerry 05-10-2006 01:58 PM

Mình hiểu rồi, thanks bạn nhé!!!

hanhluckyly 05-10-2006 03:59 PM

Trích:

Nguyên văn bởi namqn (Post 5262)
Bạn đọc lại tài liệu hướng dẫn cho chip HD44780U (đa số LCD ký tự dùng chip điều khiển tương thích với chip này), tìm phần hướng dẫn cách dùng bộ tạo ký tự trong RAM (CGRAM) và cách hiển thị các ký tự bằng CGRAM.

Thân,

Mấy anh cho em hỏi:
Có cách nào để tạo ra các ký tự đặc biệt như phi hay alpha...... bằng chương trình PICC không? chứ nếu viết bằng asm hay truy xuất thanh ghi của nó thì dài quá.

Jerry 05-10-2006 04:17 PM

À tiện thể cho em hỏi có bác nào có tài liệu hướng dẫn điều khiển LCD bằng tiếng Việt thì cho em xin với, thank các bác nhìu!

chumeodihia 08-10-2006 12:36 AM

hi hi xuất lcd dùng ngôn ngữ ccs là dễ nhất.các bạn lên trang này để tìm code nè rồi về làm.
www.ccsinfo.com/forum

chú mèo đihia tái bút:
thanks

Jerry 19-10-2006 12:47 PM

Mình đã làm được việc hiển thị ký thự phi lên LCD 16x2 rồi. Xin post CODE lên đây để làm tài liệu tham khảo cho những người đi sau. Đầu tiên là các công việc phải làm :
1. Vẽ chữ phi :xem file attach.
2. Xác định giá trị và thứ tự các byte để out ra cổng hiển thị LCD. Theo như hình vẽ thì giá trị các byte sẽ là :
Byte0 0x13
Byte1 0x15
Byte2 0x15
Byte3 0x0E
Byte4 0x04
Byte5 0x04
Byte6 0x04
Byte7 0x00

3. Viết chương trình
Code:

WriteCGChar:
        movlw        0x40
        call        WriteCommand        ; Put the Cursor to the Start of CGRAM
CharLoop:
          call        CGChar
          call        WriteData              ;  Output the ASCII Character
          incf        Count,1                  ;  Do 8x
        movlw        .8
        xorwf        Count,0
        btfss        STATUS,Z
          goto        CharLoop
        movlw        0x80                  ;Move the Cursor Back into LCD Memory Space

        call        WriteCommand
        movlw        .0                      ; Display the Character
        call        WriteData
        return
CGChar:
        movf        Count,0
        addwf        PCL,1
        retlw        0x13
        retlw        0x15
        retlw        0x15
        retlw        0x0E
        retlw        0x04
        retlw        0x04
        retlw        0x04
        retlw        0x00


Jerry 19-10-2006 01:58 PM

1 Attachment(s)
attach ký tự phi

__GodFather__ 16-11-2007 02:59 PM

Giao Tiếp Giữa hai con PIC 16F877
 
bác nào chỉ em chút về vấn đề này dc ko? em viet code rui ma den luc nap vao PIC no ko chạy . cứu em

Jerry 17-11-2007 08:14 AM

Bạn phải đưa code lên đây thì mọi người mới giúp được

dongbka 29-11-2007 12:00 PM

giúp mình với
mình đang muốn hiển thị chuỗi ký tự lên lcd nhưng không được
đây là code của mình

Code:

///////////////////////////////////////////////////////////
//Hien thi ky tu ra man hinh
void lcd_display_char(int1 line, int8 pos, char ch)
{
  lcd_write(0x80 + 0x40 * line + pos, WRITE_COMMAND);
  lcd_write(ch, WRITE_DATA);
  lcd_write(0x0c, WRITE_COMMAND); // Bo nhap nhay?
}
///////////////////////////////////////////////////////////
void lcd_display_str(int1 line, int8 posc, char str[])
{
  int8 i,j;
  j=strlen(str);
  for (i = posc; i < j+posc ; i++)
      {
      lcd_display_char(line, i, str[i-posc]);
      //delay_ms(1);
      }
}
mình cũng dùng hàm lcd_display_char() để hiển thị chuỗi số thì hiển thị bình thường
mình không biết có lỗi gì nữa.
đây là hàm hiển thị chuỗi số của mình

///////////////////////////////////////////////////////////
void lcd_display_int16(int1 line, int8 posi, int16 x,int dauphay,int1 dau )
{
  int8 i;
  char str[5];
  char s[6];
  itoa(x,10,str);
  if(dau==1)
      s[0]=minus[0];//xac dinh dau
  else
      s[0]=pe[3];
// xu ly chuoi so
  if((0<=x)&(x<10))
      {
        for (i = 0; i < 3 ; i++)//hien thi 3 so không dang truoc gia tri
            s[i+1]=z[0];
        s[4+dauphay]=str[0];//gia tri
      }
  if((10<=x)&(x<100))
      {
        for (i = 0; i < 2 ; i++)
            s[i+1]=z[0];
        s[3]=str[0];
        s[4+dauphay]=str[1];
      }
  if((100<=x)&(x<1000))
      {
        s[1]=z[0];
        s[2]=str[0];
        s[3]=str[1];
        s[4+dauphay]=str[2];
      }
  if((1000<=x)&(x<10000))
      {
        for (i = 0; i < 3 ; i++)
            s[i+1]=str[i];
        s[4+dauphay]=str[3];
      }
  if(dauphay==1)
      s[4]=phay[0];
  for (i = posi; i < posi+5+dauphay ; i++)// hien thi chuoi so
      lcd_display_char(line, i, s[i-posi]);

hai hàm nay tương tự nhau
nhưng chỉ có hàm hiển thị số là hiển thị tốt còn hàm hiển thị sâu ký tự thì không hiển thị được.

trinhduchanh 11-07-2009 05:51 PM

Hiển thị chuỗi kí tự lên LCD
dùng thư viện lcd.c và String.c trong CCS

Code:


#include <16f877a.h>
#use delay (clock = 20000000)
#include <lcd.c>
void main ()
{
  lcd_init();
  lcd_putc("PIC Viet Nam");
 }


rhinoceros 14-12-2009 02:42 PM

có ai dùng C để ghi dữ liệu vào CGRAM của lcd 1602 không
giúp mình code = C với.mình lên mạng tìm nhưng chỉ tìm đc code = ASM thôi. mà asm mình chẳng biết gì hết đọc chẳng hiểu .hic


Múi giờ GMT. Hiện tại là 02:34 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam