Danh mục

LCD 1602 PIC CSS - vuson.tk

Số trang: 4      Loại file: pdf      Dung lượng: 123.25 KB      Lượt xem: 12      Lượt tải: 0    
Thư viện của tui

Phí lưu trữ: miễn phí Tải xuống file đầy đủ (4 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Trang cá nhân : http://vn.360plus.yahoo.com/vuvanson_bk/ or vuson.tkTài liệu tham khảo về vi điều khiển LCD 1602 PIC CSS.
Nội dung trích xuất từ tài liệu:
LCD 1602 PIC CSS - vuson.tkMinhha Technologies www.minhhaco.comTrong ví dụ sau sử dụng CCS làm trình biên dịch#include #fuses HS,NOWDT,NOPROTECT,NOLVP#use delay(clock=20000000) // Sử dụng Crystal 20 MHz// Định nghĩa các chân cho LCD như sau// Dùng điều khiển 4 bit ( 4 bit cao D4 đến D7)// PIN_B0 ENABLE// PIN_B1 RS// PIN_B2 RW// PIN_B4 D4// PIN_B5 D5// PIN_B6 D6// PIN_B7 D7// Chân D0-D3 Không sử dụng// Chân RB3 của PIC cũng không sử dụng// Định nghĩa struct của LCD tương ứng với các bit//-------------------------------------------------------------------------struct lcd_pin_map{ BOOLEAN ENABLE; // on to an I/O port to gain BOOLEAN RS; // access to the LCD pins. BOOLEAN RW; // The bits are allocated from BOOLEAN unused; // low order up. ENABLE will Int8 data : 4; // be pin B0. } lcd;#byte lcd = 6 // Sử dụng Port B của PIC16F877A. Nếu dùng loại khác cần thay //đổi giá trị này ( Xem datasheet để sửa đổi)#define lcd_type 2 // LCD1602 lcd_type = 2BYTE const LCD_INIT_STRING[4] = {0x20 | (lcd_type Minhha Technologies www.minhhaco.com{ BYTE low,high; set_tris_b(LCD_READ); // Set D4 - D7 là input lcd.RW = 1; delay_cycles(1); lcd.ENABLE = 1; delay_cycles(1); high = lcd.data; // Đọc 4 bít cao lcd.ENABLE = 0; delay_cycles(1); lcd.enable = 1; delay_us(1); low = lcd.data; // Đọc 4 bit thấp lcd. ENABLE = 0; set_tris_b(LCD_WRITE); // Set D4 - D7 là output return( (high 4); lcd_send_nibble(n & 0xf);}//-------------------------------------------------------------------------// Hàm init cho LCD. Khi bật nguồn cần INIT thì LCD mới hoạt động// Input = NoneMinhha Technologies www.minhhaco.com// Output = None//-------------------------------------------------------------------------void lcd_init() { BYTE i; set_tris_b(LCD_WRITE); // D4 -D7 = output lcd.RS = 0; lcd.RW = 0; lcd.ENABLE = 0; delay_ms(15); // Chờ cho LCD sẵn sàng từ khi bật nguồn. // Xem datasheet để biết thời gian trễ for(i=1;iMinhha Technologies www.minhhaco.com{ switch (c) { case f : lcd_send_byte(0,1); lcdline=1; delay_ms(2); // Xem datasheet để có thêm chi tiết break; case : lcd_gotoxy(1,++lcdline); break; case  : lcd_send_byte(0,0x10); break; default : lcd_send_byte(1,c); break; }}//-------------------------------------------------------------------------// Đọc 1 ký tự từ LCD tại toạ độ X,Y// Thường dùng để kiểm tra LCD hay Update LCD// Sẽ tận dụng được bộ nhớ của MCU do không phải lưu giá trị tại MCU//-------------------------------------------------------------------------char lcd_getc( BYTE x, BYTE y){ char value; lcd_gotoxy(x,y); // Chuyển con trỏ tới toạ độ X,Y lcd.RS =1; value = lcd_read_byte(); lcd.RS =0; return(value);}void main(){ char k; lcd_init(); lcd_putc(fReady... ); lcd_putc(“Hello Microchip”); while (1) ;}

Tài liệu được xem nhiều: