zhou li
/
mbed767ZI
STM32F767ZI test for Time,ADC,PWM,Intrrupt input,IO input,IO plus,and Virual SPI 4 line LCD display.
Diff: 6903.h
- Revision:
- 0:fa2d00fee0fc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/6903.h Sun Jul 30 13:00:37 2017 +0000 @@ -0,0 +1,108 @@ +//#include "mbed.h" +DigitalOut dat(PD_4); +DigitalOut clk(PD_5); +DigitalOut res(PD_6); +DigitalOut reg(PD_7); + +//6903 102X64LCD +const unsigned char asc2[][6]={//8x6 Dots 32-126[0-94] +{0x00,0x3E,0x45,0x49,0x51,0x3E},//0 +{0x00,0x00,0x21,0x7F,0x01,0x00},//1 +{0x00,0x31,0x43,0x45,0x49,0x31},//2 +{0x00,0x22,0x49,0x49,0x49,0x36},//3 +{0x00,0x04,0x0C,0x14,0x7F,0x04},//4 +{0x00,0x72,0x51,0x51,0x51,0x4E},//5-5 +{0x00,0x3E,0x49,0x49,0x49,0x06},//6 +{0x00,0x40,0x43,0x4C,0x50,0x60},//7 +{0x00,0x36,0x49,0x49,0x49,0x36},//8 +{0x00,0x30,0x48,0x48,0x48,0x3F},//9 +{0x00,0x1F,0x24,0x64,0x24,0x1F},//A-10 +{0x00,0x41,0x7F,0x49,0x49,0x36},//B +{0x00,0x3E,0x41,0x41,0x41,0x22},//C +{0x00,0x41,0x7F,0x41,0x41,0x3E},//D +{0x00,0x41,0x7F,0x49,0x49,0x63},//E +{0x00,0x41,0x7F,0x49,0x5C,0x60},//F-15 +{0x00,0x3E,0x41,0x45,0x47,0x24},//G +{0x41,0x7F,0x08,0x08,0x08,0x7F},//H +{0x00,0x00,0x41,0x7F,0x41,0x00},//I +{0x00,0x42,0x41,0x7F,0x40,0x40},//J +{0x00,0x41,0x7F,0x59,0x24,0x43},//K-20 +{0x00,0x40,0x7F,0x41,0x01,0x03},//L +{0x00,0x7F,0x20,0x1E,0x20,0x7F},//M +{0x00,0x7F,0x30,0x18,0x06,0x7F},//N +{0x00,0x3E,0x41,0x41,0x41,0x3E},//O +{0x00,0x41,0x7F,0x49,0x48,0x30},//P-25 +{0x00,0x3E,0x41,0x47,0x42,0x3D},//Q +{0x00,0x41,0x7F,0x49,0x4C,0x33},//R +{0x00,0x32,0x49,0x49,0x49,0x26},//S +{0x00,0x60,0x41,0x7F,0x41,0x60},//T +{0x00,0x7E,0x01,0x01,0x01,0x7E},//U-30 +{0x00,0x7C,0x02,0x01,0x02,0x7C},//V +{0x00,0x7C,0x03,0x3C,0x03,0x7C},//W +{0x00,0x43,0x24,0x18,0x24,0x43},//X +{0x00,0x60,0x18,0x07,0x18,0x60},//Y +{0x00,0x63,0x45,0x49,0x51,0x63},//Z-35 +{0x00,0x00,0x00,0x01,0x00,0x00},//. +{0x00,0x14,0x14,0x14,0x14,0x14},//= +{0x00,0x08,0x08,0x3E,0x08,0x08},//+ +{0x00,0x08,0x08,0x08,0x08,0x08},//- +{0x00,0x00,0x00,0x24,0x00,0x00},//:-40 +}; +//Write Plus +void wri(void){clk=0;clk=1;} +//使用SPI接口写数据到LCD,dt:写入的数据 command: 1-数据/0-命令 +void b2l(unsigned char dt,unsigned char command){ + unsigned char i; + reg=command; + for(i=0;i<8;i++){ + if(dt&0x80) dat=1;else dat=0; + dt=dt<<1; + wri(); + } +} +//名称: 设置坐标函数,参数:X:0-83 Y:0-5 +void setXY(unsigned char X,unsigned char Y){ + b2l(0x40+Y,0);//column + b2l(0x80+X,0);//row +} +//名称: LCD清屏函数 +void lcdClear(void){ + unsigned char t,k; + setXY(0,0); + for(t=0;t<9;t++){for(k=0;k<102;k++){b2l(0x00,1);}} +} +//名称: 显示英文字符,参数:c:显示的字符在asc2表格中的位置 +void c2l(unsigned char x,unsigned char y,unsigned char c){ + unsigned char line; + setXY(x*6,y); + for(line=0;line<6;line++)b2l(asc2[c][line],1); +} +//名称: 6903LCD初始化函数 +void lcdInit(void){ + wait(0.1); + res=0; + wait(0.5); + res=1; + wait(0.5); + b2l(0x25,0);//00100 PD=1dcOn|=0Dcoff V=0Up|=1Left H==1 + wait(0.05); + b2l(0x15,0);//脉宽L000~111=1/6-1/7-1/8-1/9//14=1/7 + wait(0.05); + b2l(0x94,0);//设置VOP值,约为8.96V + wait(0.05); + b2l(0x20,0);//PD=0,H=0,V=0 + b2l(0x0C,0);//LCD设置完成 + wait(0.5); +} +//Display ASCII Test +void dispAsc(void){ + int i,j,k=0; + for(i=0;i<8;i++){ + for(j=0;j<17;j++){ + c2l(j,i,k); + if(k>39){k=0;}else{k++;} + } + } +} +//END Files// +