Mạch Khóa Số Điện Tử Mạch Đếm Sản Phẩm Mạch Đèn giao thông Ngã Tư Mạch Trái Tim Final Mạch Trái Tim Final Mạch Trái Tim I Love U

February 20, 2013

Bài 3:Hiển thị chữ lên LCD


CODE C
Phần code này có chỗ chữ chạy thì Chip chưa làm được..Bạn nào làm được thì PM na.

#include <REGX51.H>
#include <stdio.h>
#include <math.h>
#include <intrins.h>
#include <string.h>
#define LCDdata P2
unsigned char code string1[] = "www.chipkool.net";
unsigned char code string2[] = "Simple Is The Best";
sbit BF = 0xA7;//co ban,bit DB7 10100111
sbit RS = P3^0;//chon thanh ghi
sbit RW = P3^1; // doc ghi du lieu
sbit EN = P3^2;//chot du lieu
sbit K  = P3^3;// nut bam
unsigned char i,j,x;
/////////////////////////////////
void delay(unsigned char ms)
{
for(i =0;i<ms;i++)
 {for(j=0;j<125;j++){;}
 }
}

///////////ham cho////////////
void wait(void)
{
RS=0;//thanh ghi lenh
RW=1;//doc du lieu tu lcd
LCDdata=0xff;//gia tri 11111111 // khoi dong ngo vao
while(BF) //kiem tra co ban
{
EN =0;//dua xung thap en cao de chot
EN =1;//dua xung len cao
}
}
////////////////thiet lap LCD//////////////
void LCDcontrol(unsigned char x)
{
RS = 0;//chon thanh ghi lenh
RW =0;//ghi du lieu len lcd
LCDdata =x;
EN=1; //dua xung cao xuong thap de mo
EN=0;
wait();//doi LCD san sang
}
//////////////////Khoi tao LCD////////////
void LCDinit(void)
{
LCDcontrol(0x38);//2 dong va ma tran 5x7
LCDcontrol(0x0e);//bat man hinh,bat con tro
LCDcontrol(0x01);//xoa man hinh
}
///////////////Thiet lap du lieu co LCD/////////
void LCDwrite(unsigned char c)
{
RS=1;//Ghi du lieu
RW=0;//ghi du lieu len LCD
LCDdata=c;
EN=1;
EN=0;
wait();
}
///////////////////
void LCDwrites(unsigned char*s)
{
unsigned char data lens,count;
lens=strlen(s);
for(count=0;count<lens;count++)
{
LCDwrite(*(s+count));
}
}
////////////////////////////
 void SendString2LCD(unsigned char code *p)
{
unsigned char i=0;
while(p[i]!=0)
{
LCDwrite(p[i]);
i++;
delay(200);
}
}
////////////////////////////////////
void DisplayText(void)
{
// Dich con tro den vi tri thu 2, dong thu nhat
LCDcontrol(0x81);
SendString2LCD(string1);
// Dich con tro den dau dong thu hai
LCDcontrol(0xC0);
SendString2LCD(string2);
}
//////////////////////////////////
void LCDclear(void)
{
LCDcontrol(0x01);
wait();
}
///////////////////////////////////////
void phim(void)
{
if(K==0)
{
LCDclear();
LCDcontrol(0x0f);//nhap nhay con tro
DisplayText();//viet chuoi ky tu


}
}

/////////////
void main(void)
{
LCDinit();//Khoi tao LCD
LCDcontrol(0x82); // dua con tro den vi tri thu 4 dong 1
//LCDwrite('V');
   LCDwrite('V');
LCDwrite('I');
LCDwrite('E');
LCDwrite('T');
LCDwrite(' ');
LCDwrite('N');
LCDwrite('A');
LCDwrite('M');
LCDcontrol(0xC0);
LCDwrites("VI DIEU KHIEN");
while(1)//vong lap vo han
{
phim();
}
}


(Empty)
Blog Điện Tử | Tin Học - Chia sẻ kiến thức - Kết nối đam mê điện tử

1 comments:

ngoc cao said...
10/4/13

Anh chíp cho em hỏi xem! em test trên panel thì ko thể hiển thị lên LCD đc còn trên proteus thì chạy ầm ầm. a giúp e với. Em thử nhiều mạch lỗi hay thế lắm rùi. nản quá.hihi

Post a Comment

Bạn đọc hãy giúp chúng tôi xây dựng cộng đồng bằng cách để lại bình luận, chúng tôi luôn đón nhận mọi ý kiến của các bạn:
» Bình luận nghiêm túc và không chứa các liên kết quảng cáo.
» Vui lòng không Spam nhận xét với mọi hình thức.
» Rất mong bạn đề tên cho nhận xét của chính mình - Bằng cách chọn vào Tên/URL và điền tên bạn vào (Phần URL có thể bỏ trống ).

- Bạn có thể chèn Link nhạc (NCT), video(Youtube),Hình ảnh vào comment bằng cú pháp:
+ [youtube] Link video Youtube [/youtube].
+ [img] Link ảnh( định dạng PNG, JPG,GIF) [/img]
+Chèn link liên kết: <a href="LINK" rel="nofollow">Name</a>
-Bạn copy mã bên cạnh biểu tượng chèn vào nhận xét để bày tỏ cảm xúc!!

:) :( :)) :(( =)) =D> :D :P