文档详情

各种芯片读,写,初始化.doc

发布:2017-08-17约7.28千字共16页下载文档
文本预览下载声明
各种芯片读,写,初始化 /************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;
显示全部
相似文档