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

trongtuan_1109 26-09-2010 02:24 AM

Mình cũng đang muốn hiển thị lên LCD tiếng Việt viết code bằng C,nhìn ass khó hiểu quá

dvthangstut 17-10-2010 07:50 PM

mình dùng CCS viet cho PIC 18f4550: hiển thị dòng chữ lên LCD
chân E2: LCD_E
D4: LCD_rs
D5: LCD_WR
4bit data của LCD: D0, D1,D2,D3
CODE mình viết như sau:

#include <18F4550.h>

#define LCD_DB4 PIN_D0
#define LCD_DB5 PIN_D1
#define LCD_DB6 PIN_D2
#define LCD_DB7 PIN_D3

#define LCD_E PIN_E2
#define LCD_RS PIN_D4
#define LCD_RW PIN_D5
#include <LCD.c>
#use delay(clock=20000000)

void main()
{
output_low(LCD_RW); // Set R/W pin on LCD to a low level

lcd_init(); // Initialize the LCD

lcd_putc("\fHello World\n");
lcd_putc("Line Number 2");

while(1);
}
Sao mà ko chạy nữa. các bạn giúp mình với nghe
Cảm ơn nhiều

hanhpro102 24-01-2011 04:04 PM

hỏi
 
cho mình hỏi cách hiển thị ký tự đặc biệt trên LDC như:à.á.ã.è... với vi điều khiển 8o51 thì làm thế nào thực sự mình không hiểu ai help mình với.

lambaotrung 21-03-2011 03:05 PM

bai nay lau roi ma ko thay ai tra loi het vay....

stupid11 28-03-2011 12:24 AM

1 Attachment(s)
Đây là bảng các ký tự đặc biệt trong LCD,có gần như đầy đủ các ký hiệu sử dụng trong kỹ

thuật..việc xuất ra cũng rất đơn giản.

Ví dụ: muốn xuất kí tự "&" thì ta xuất data=00100110; rồi gửi lên LCD..lưu ý ở đây sử

dụng 8bit //4bit thấp,4bit cao// ta phải ghép lại khi sử dụng//

stupid11 28-03-2011 12:34 AM

Trích:

Nguyên văn bởi hanhpro102 (Post 41660)
cho mình hỏi cách hiển thị ký tự đặc biệt trên LDC như:à.á.ã.è... với vi điều khiển 8o51 thì làm thế nào thực sự mình không hiểu ai help mình với.

Có phải bạn muốn hiển thị font tiếng Việt lên LCD đúng không..việc này theo mình nghĩ là không khả thi,bởi vì LCD(vd:HD44780) chỉ có 1 vùng nhớ rất hạn chế để cho người sử dụng tạo ra các ký tự đặc biệt riêng.cụ thể là bạn chỉ có thể tạo 8 ký tự loại 5x8 hoặc 4 ký tự loại 5x10 điểm ảnh..bạn thử tính xem font tiêng Việt có bao nhiêu ký tự "đặc biệt".chắc là cũng gần đủ thôi..tại vì còn thêm dấu " '`~?. " nữa....bạn thử tìm loại LCD khác thử xem sao.Chúc bạn thành công.Thân.


Múi giờ GMT. Hiện tại là 11:58 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