PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT 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

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 10-04-2008, 10:52 PM   #1
cuccutiara
Nhập môn đệ tử
 
Tham gia ngày: Sep 2007
Bài gửi: 9
:
Hiện thị LCD bị sai?

Em viết chương trình đơn giản để hiện thị LCD, nhưng ko hiểu sao hiển thị ko như ý muốn, ko biết sai ở đâu. Các bác giúp em mới. Chương trình ko lỗi nhưng hiển thị các số bị lỗi. Em mới học nên cũng ko biết dùng debug, tìm trong diễn đàn mãi ko thấy, bác cho em xin link hướng dẫn debug ccs với ạ.


Code:
#include <16F877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)//xung thach anh
#use rs232(baud=9600,parity=n,xmit=pin_C6,rcv=pin_C7)//khai bao che do hoat dong cua 16F877A
//Day la DK LCD chuyen dung cho 16F877A
//Voi cac qui dinh chan nhu sau
//          Data out=PortB
//                D0=RS
//                D1=RW
//                D2=E
// trinh tu lam viec
//                1)KhoiDong()
//                2)DieuKhien(Malenh)
//                3)GiuLieu(Code)
byte i;
int8 a[8];
void DieuKhien(Byte Ma_Lenh)
{
Output_B (Ma_lenh);      //Xuet ma lenh
Output_low(pin_D5);     //Dat Rs=0 cho xuat lenh
Output_low(pin_D6);     //R\W=0 de ghi du lieu toi LCD
output_high(pin_D7);
Output_low(pin_D7);     //;Dat E=0 chot du lieu
Delay_ms(10);
}
void KhoiDong()
{
DieuKhien(0x38);
DieuKhien(0x0e);
DieuKhien(0x01);
DieuKhien(0x06);
DieuKhien(0x80);
}
void GiuLieu(byte Code)
{
   Output_B (Code);         //Xuat ma lenh
	output_high(pin_D5);   //Dat Rs=1 xua du lieu
	Output_low(pin_D6);    //R\W=0 de ghi du lieu toi LCD
   output_high(pin_D7);
	Output_low(pin_D7);	      //Dat E=0 chot du lieu
   Delay_ms(100);
}
void Trabang (byte x)
{
 byte y,;
 for (i=1;i<=8;i++)
 {
    y = x/(2^(8-i)); / dịch 8-i bit
    y = y&&1; /lấy bit thấp nhất
    if (y == 1) a[i] = 49; /gui ra LCD hien so 1
    if (y == 0) a[i] = 48; /LCD hien so 0
 }
}
Void Main()
{
KhoiDong();
Trabang(0);
for (i=1;i<=8;++i)
 {
   GiuLieu(a[i]);
 }
}

thay đổi nội dung bởi: namqn, 11-04-2008 lúc 12:16 AM.
cuccutiara 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à 06:33 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