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