PDA

View Full Version : Help! Viết ký hiệu chữ "phi" lên LCD 2 hàng 16 cột


Jerry
04-10-2006, 09:06 AM
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
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

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
attach ký tự phi

__GodFather__
16-11-2007, 02:59 PM
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


///////////////////////////////////////////////////////////
//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


#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
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
Đâ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
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.