各种芯片读,写,初始化.doc
文本预览下载声明
各种芯片读,写,初始化
/************1602读,写,初始化************/
sbit RS=P1^7;
sbit RW=P3^4;
sbit E=P3^5;
void xml(uchar ml)//写命令
{
RS=0;
RW=0;
P0=ml;
E=0;
delay(1);
E=1;
delay(1000);
}
void xsj(uchar sj)//写数据
{
RS=1;
RW=0;
P0=sj;
E=0;
delay(1);
E=1;
delay(1000);
}
void InirLcd() //初始化LCD
{
xml(0x38);
xml(0x38);
xml(0x38);
xml(0x38);
xml(0x08);
xml(0x01);
xml(0x0c);
xml(0x06);
}
/************1602读,写,初始化************/
/************12864读,写,初始化************/
#define Col_Add 0x40//Y轴第一列
#define Page_Add 0xb8 //总计8页
#define Start_Line 0xc0 //第一行
sbit RS=P1^7;
sbit E=P3^5;
sbit CS1=P3^4;
sbit CS2=P3^2;
void writecom(uchar cmd)//写命令到LCD
{
RS=0;
P0=cmd;
delay(1);
E=1;
delay(2);
E=0;
}
void writedate(uchar dat)//写数据到LCD
{
RS=1;
P0=dat;
delay(1);
E=1;
delay(2);
E=0;
}
void Clr_Scr()//清除内存
{
uchar j,k;
CS1=1;
CS2=1;
writecom(Page_Add+0);
writecom(Col_Add+0);
for(k=0;k8;k++) //页
{
writecom(Page_Add+k);
for(j=0;j64;j++)//列
{
writedate(0x00);
}
}
}
void Init_Lcd()
{
delay(100);
CS1=1;
CS2=1;
delay(100);
writecom(0x3e); //关off
writecom(Page_Add+0);
writecom(Start_Line+0);
writecom(Col_Add+0);
writecom(0x3f);//开on
}
void hz_disp(uchar pag,uchar col,uint ss)//指定位置显示汉字
{
uchar j=0,i=0;
ss=ss*32;
for(j=0;j2;j++)
{
writecom(Page_Add+pag+j);
writecom(Col_Add+col);
for(i=0;i16;i++)
{
writedate(HZ_store[16*j+i+ss]);
}
}
}
/************12864读,写,初始化************/
/************ADC转换 采样 读结果************/
sbit INTR=P3^3;
sbit CS=P3^5;
sbit WR1=P3^6;
sbit RD1=P3^7;
uchar a;
void ADC_start()//采样
{
CS=0;
WR1=0;
delay(10);
WR1=1;
CS=1;
}
void ADC_read()//读结果
{
while(INTR);
CS=0;
P0=0xff;
RD1=0;
delay(10);
a=P0;
RD1=1;
CS=1;
delay(10);
}
void display()//在P1上显示AD的结果
{
delay(10000);
P1=a;
}
/************ADC转换 采样 读结果************/
/************DAC转换 采样 读结果************/
sbit ILE=P3^0;
sbit CS=P3^4;
sbit WR1=P3^6;
sbit WR2=P3^1;
sbit XFER=P3^2;
void double_buffered() //双缓冲模式
{
while(1)
{
ILE=1;
DATA_BUS=DA_VAL;
CS=0;
显示全部