?? lcm.c
字號:
#include<reg52.h>
#include<stdio.h>
#include<absacc.h>
#include<intrins.h>
/**************針腳定義************/
sbit RS=P1^0;
sbit RW=P1^1;
sbit EN=P1^2;
sbit DATA=P1^4;
sbit CLK=P1^5;
sbit CLR=P1^3;
/**************函數聲明************/
void clrlcd(void); //clr LCD
void c_send(unsigned char y); //發命令
void reset(void); // reset LCD
void d_send(unsigned char x); //發數據
void pos(unsigned char posx); //設定顯示位置
void l_delay(unsigned int t); //長延時
/**************延時子程序**********************/
delay() //延時
{
int i;
for(i=0;i<30000;i++);
}
/***********************************************/
void l_delay(unsigned int t) //延時
{
unsigned int p;
unsigned int j;
for(j=0;j<t;j++)
{
for(p=0;p<2000;p++);
}
}
/***********************************************/
void reset(void) // reset LCD
{
delay();
c_send(0x38);
c_send(0x01);
c_send(0x06);
c_send(0x0c);
c_send(0x80);
}
/***********************************************/
void clrlcd(void) // clr LCD
{
delay();
c_send(0x01);
}
/***********************************************/
void pos(unsigned char posx,unsigned char posy) //設定顯示位置
{
unsigned char temp;
temp = posx & 0xf;
posy &= 0x1;
if (posy) temp |= 0x40;
c_send(temp | 0x80);
}
/***********************************************/
void c_send(unsigned char y) //發命令
{
unsigned char i;
EN=1;
RS=0;
RW=0;
for(i=0;i<8;i++)
{
if(_crol_(y,i)&0x80)
DATA=1;
else
DATA=0;
CLK=0;
CLK=1;
}
EN=0;
delay();
}
/**************************************************/
void d_send(unsigned char x) //發數據
{
unsigned char i;
EN=1;
RS=1;
RW=0;
for(i=0;i<8;i++)
{
if(_crol_(x,i)&0x80)
DATA=1;
else
DATA=0;
CLK=0;
CLK=1;
}
EN=0;
delay();
}
/***********************************/
main()
{
while (1)
{
reset();
pos(0,0);
d_send('O');
d_send('h');
d_send(' ');
d_send('S');
d_send('h');
d_send('i');
d_send('t');
d_send('!');
d_send('!');
d_send('!');
d_send('!');
delay();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -