PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 18-03-2010, 10:37 AM   #1
melody010
Nhập môn đệ tử
 
Tham gia ngày: Jan 2010
Bài gửi: 4
:
Post Xin giúp đỡ e lập trình hiển thị lcd

- MỚI TẬP TÀNH NÊN CHƯA RÀNH LẮM, MONG ĐƯỢC CÁC A GIÚP ĐỠ NHIỆT TÌNH VỚI

CHẢ LÀ E LẬP TRÌNH GIAO TIẾP DÙNG NGẮT RB0, DÙNG 4 NÚT BẤM: TĂNG, GIẢM, QUAY THUẬN, QUAY NGỊCH

-KHI BẤM THUẬN THÌ LCD HIỆN: QUAY THUẬN GIÁ TRỊ: X (BIẾN) => ĐÃ LÀM ĐƯỢC

-KHI BẤM NGỊCH LCD HIỆN: QUAY NGHỊCH GIÁ TRỊ: X (BIẾN) => ĐÃ LÀM ĐƯỢC

- VẤN ĐỀ LÀ KHI E BẤM TĂNG HOẶC GIẢM THÌ BIẾN X PHẢI THAY ĐỔI NHƯ LÀ: QUAY THUẬN GIÁ TRỊ: 1 HAY 2 , 3, 4, 5. E ĐANG BÓ TAY PHẦN NÀY.

E ĐÃ CÓ TÌM HIỂU QUA LÀ MUỐN HIỆN THỊ LCD THÌ PHẢI ĐƯA MÃ ASCII VÀO LCD. NHƯNG KO BIẾT CHUYỂN GIÁ TRỊ LƯU TRONG BIẾN X THÀNH MÃ ASCII RỒI CÂU LỆNH VIẾT NHƯ THẾ NÀO CẢ.

MONG CÁC A VIẾT HỘ E ĐOẠN CODE CHỖ TĂNG GIẢM HIỆN LCD VỚI, E XIN CẢM ƠN RẤT NHÌU.

E GỬI CODE VÀ MÔ PHỎNG PROTUES ĐỂ CÁC A XEM HỘ.

PHẦN RB6 RB7 IN ĐẬM E KO BIẾT VIẾT THẾ NÀO.


#include <16F877A.h>
#include <DEFS_16F877A.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#define RS RB3
#define RW RB2
#define E RB1
#define LCD PORTD
#use fast_io(b)
#byte portb=0x06
#byte intcon=0x000B
int x=0;
/*Ham yeu cau goi lenh dieu khien LCD*/
void comnwrt(void)
{
RS = 0;
RW = 0;
E = 1;
E = 0;
delay_ms(1);
}
/*Ham yeu cau goi du lieu hien thi len LCD*/
void datawrt(void)
{
RS = 1;
RW = 0;
E = 1;
E = 0;
delay_ms(1);
}
// Chuong trinh ngat
#int_RB
void ngat_RB()
{

if((RBIF)&&(RBIE))
{
//Kiem tra sw1

{ if(RB4==0)
{
LCD = 0x01; // Xoa man hinh hien thi
comnwrt();
delay_ms(10);
LCD = 0x83; // Vi tri hang 1,cot 3
comnwrt();
delay_ms(1);
LCD = 'Q'; // Xuat dong chu "QUAY THUAN" ra LCD
datawrt();
LCD = 'U';
datawrt();
LCD = 'A';
datawrt();
LCD = 'Y';
datawrt();
LCD = ' ';
datawrt();
LCD = 'T';
datawrt();
LCD = 'H';
datawrt();
LCD = 'U';
datawrt();
LCD = 'A';
datawrt();
LCD = 'N';
datawrt();
LCD = 0xC0; // Vi tri hang 2,cot 0
comnwrt();
LCD = 'G'; // Xuat dong chu "GIA TRI:" ra LCD
datawrt();
LCD = 'I';
datawrt();
LCD = 'A';
datawrt();
LCD = ' ';
datawrt();
LCD = 'T';
datawrt();
LCD = 'R';
datawrt();
LCD = 'I';
datawrt();
LCD = ':';
datawrt();
}
}
//Kiem tra sw2
{
if(RB5==0)
{
LCD = 0x01; // Xoa man hinh hien thi
comnwrt();
delay_ms(10);
LCD = 0x83; // Vi tri hang 1,cot 3
comnwrt();
delay_ms(1);
LCD = 'Q'; // Xuat dong chu "QUAY NGICH" ra LCD
datawrt();
LCD = 'U';
datawrt();
LCD = 'A';
datawrt();
LCD = 'Y';
datawrt();
LCD = ' ';
datawrt();
LCD = 'N';
datawrt();
LCD = 'G';
datawrt();
LCD = 'I';
datawrt();
LCD = 'C';
datawrt();
LCD = 'H';
datawrt();
LCD = 0xC0; // Vi tri hang 2,cot 0
comnwrt();
LCD = 'G'; // Xuat dong chu "GIA TRI:" ra LCD
datawrt();
LCD = 'I';
datawrt();
LCD = 'A';
datawrt();
LCD = ' ';
datawrt();
LCD = 'T';
datawrt();
LCD = 'R';
datawrt();
LCD = 'I';
datawrt();
LCD = ':';
datawrt();
}
}
//Kiem tra sw3
{
if(RB6==0)
{
++x;
LCD = 0x01; // Xoa man hinh hien thi
comnwrt();
LCD = 0xC8; // Vi tri hang 2,cot 8
comnwrt();
delay_ms(100);
LCD='x';
datawrt();
delay_ms(100);
}
}
//Kiem tra sw4
{
if(RB7==0)
{

}

}
RBIF=0; //Xoa co ngat RB
}
}

/*Ham main*/
void main(void)
{
set_tris_B(0b11110000);
set_tris_D(0);
enable_interrupts(global); // Cho phep ngat toan cuc
enable_interrupts(int_RB); // Cho phep ngat RB
ext_int_edge(H_to_L); // Ngat khi co xung cao xuong thap
delay_ms(100); // Tao tre 100ms cho LCD khoi dong

LCD = 0x38; // Hai hang, ma tran dot 5*7, 8 bit interface
comnwrt();
LCD = 0x0C; // Bat hien thi, tat con tro
comnwrt();

LCD = 0x82; // Vi tri hang 1,cot 3
comnwrt();
LCD = 'C'; // Xuat dong chu "CHUONG TRINH" ra LCD
datawrt();
LCD = 'H';
datawrt();
LCD = 'U';
datawrt();
LCD = 'O';
datawrt();
LCD = 'N';
datawrt();
LCD = 'G';
datawrt();
LCD = ' ';
datawrt();
LCD = 'T';
datawrt();
LCD = 'R';
datawrt();
LCD = 'I';
datawrt();
LCD = 'N';
datawrt();
LCD = 'H';
datawrt();
LCD = 0xC4; // Vi tri hang 2,cot 5
comnwrt();
LCD = 'S'; // Xuat dong chu "SAN SANG" ra LCD
datawrt();
LCD = 'A';
datawrt();
LCD = 'N';
datawrt();
LCD = ' ';
datawrt();
LCD = 'S';
datawrt();
LCD = 'A';
datawrt();
LCD = 'N';
datawrt();
LCD = 'G';
datawrt();
While(true)
{
}
}
melody010 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam