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)
Nguồn: Blog Điện Tử | Tin Học - Chia sẻ kiến thức - Kết nối đam mê điện tử

Hiển thị chữ lên LCD, lap trinh vi dieu khien, lap trinh 8051

Đăng nhận xét

Đăng nhận xét

Author Name



Tôi là Ngọc Anh. Tôi đến từ Nghệ An. Tôi tốt nghiệp một trường đại học tại Sài Gòn. Hiện tôi đang phát triển công ty riêng. Liên lạc với tôi qua:






Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.