zhou li
/
mbed767ZI
STM32F767ZI test for Time,ADC,PWM,Intrrupt input,IO input,IO plus,and Virual SPI 4 line LCD display.
6903.h@0:fa2d00fee0fc, 2017-07-30 (annotated)
- Committer:
- zhjb62
- Date:
- Sun Jul 30 13:00:37 2017 +0000
- Revision:
- 0:fa2d00fee0fc
1 tick,1 plus,4 adc input to check,3 pwm,2 Interrupt input,3 input,with 6903 LCD display,1 programe counter.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
zhjb62 | 0:fa2d00fee0fc | 1 | //#include "mbed.h" |
zhjb62 | 0:fa2d00fee0fc | 2 | DigitalOut dat(PD_4); |
zhjb62 | 0:fa2d00fee0fc | 3 | DigitalOut clk(PD_5); |
zhjb62 | 0:fa2d00fee0fc | 4 | DigitalOut res(PD_6); |
zhjb62 | 0:fa2d00fee0fc | 5 | DigitalOut reg(PD_7); |
zhjb62 | 0:fa2d00fee0fc | 6 | |
zhjb62 | 0:fa2d00fee0fc | 7 | //6903 102X64LCD |
zhjb62 | 0:fa2d00fee0fc | 8 | const unsigned char asc2[][6]={//8x6 Dots 32-126[0-94] |
zhjb62 | 0:fa2d00fee0fc | 9 | {0x00,0x3E,0x45,0x49,0x51,0x3E},//0 |
zhjb62 | 0:fa2d00fee0fc | 10 | {0x00,0x00,0x21,0x7F,0x01,0x00},//1 |
zhjb62 | 0:fa2d00fee0fc | 11 | {0x00,0x31,0x43,0x45,0x49,0x31},//2 |
zhjb62 | 0:fa2d00fee0fc | 12 | {0x00,0x22,0x49,0x49,0x49,0x36},//3 |
zhjb62 | 0:fa2d00fee0fc | 13 | {0x00,0x04,0x0C,0x14,0x7F,0x04},//4 |
zhjb62 | 0:fa2d00fee0fc | 14 | {0x00,0x72,0x51,0x51,0x51,0x4E},//5-5 |
zhjb62 | 0:fa2d00fee0fc | 15 | {0x00,0x3E,0x49,0x49,0x49,0x06},//6 |
zhjb62 | 0:fa2d00fee0fc | 16 | {0x00,0x40,0x43,0x4C,0x50,0x60},//7 |
zhjb62 | 0:fa2d00fee0fc | 17 | {0x00,0x36,0x49,0x49,0x49,0x36},//8 |
zhjb62 | 0:fa2d00fee0fc | 18 | {0x00,0x30,0x48,0x48,0x48,0x3F},//9 |
zhjb62 | 0:fa2d00fee0fc | 19 | {0x00,0x1F,0x24,0x64,0x24,0x1F},//A-10 |
zhjb62 | 0:fa2d00fee0fc | 20 | {0x00,0x41,0x7F,0x49,0x49,0x36},//B |
zhjb62 | 0:fa2d00fee0fc | 21 | {0x00,0x3E,0x41,0x41,0x41,0x22},//C |
zhjb62 | 0:fa2d00fee0fc | 22 | {0x00,0x41,0x7F,0x41,0x41,0x3E},//D |
zhjb62 | 0:fa2d00fee0fc | 23 | {0x00,0x41,0x7F,0x49,0x49,0x63},//E |
zhjb62 | 0:fa2d00fee0fc | 24 | {0x00,0x41,0x7F,0x49,0x5C,0x60},//F-15 |
zhjb62 | 0:fa2d00fee0fc | 25 | {0x00,0x3E,0x41,0x45,0x47,0x24},//G |
zhjb62 | 0:fa2d00fee0fc | 26 | {0x41,0x7F,0x08,0x08,0x08,0x7F},//H |
zhjb62 | 0:fa2d00fee0fc | 27 | {0x00,0x00,0x41,0x7F,0x41,0x00},//I |
zhjb62 | 0:fa2d00fee0fc | 28 | {0x00,0x42,0x41,0x7F,0x40,0x40},//J |
zhjb62 | 0:fa2d00fee0fc | 29 | {0x00,0x41,0x7F,0x59,0x24,0x43},//K-20 |
zhjb62 | 0:fa2d00fee0fc | 30 | {0x00,0x40,0x7F,0x41,0x01,0x03},//L |
zhjb62 | 0:fa2d00fee0fc | 31 | {0x00,0x7F,0x20,0x1E,0x20,0x7F},//M |
zhjb62 | 0:fa2d00fee0fc | 32 | {0x00,0x7F,0x30,0x18,0x06,0x7F},//N |
zhjb62 | 0:fa2d00fee0fc | 33 | {0x00,0x3E,0x41,0x41,0x41,0x3E},//O |
zhjb62 | 0:fa2d00fee0fc | 34 | {0x00,0x41,0x7F,0x49,0x48,0x30},//P-25 |
zhjb62 | 0:fa2d00fee0fc | 35 | {0x00,0x3E,0x41,0x47,0x42,0x3D},//Q |
zhjb62 | 0:fa2d00fee0fc | 36 | {0x00,0x41,0x7F,0x49,0x4C,0x33},//R |
zhjb62 | 0:fa2d00fee0fc | 37 | {0x00,0x32,0x49,0x49,0x49,0x26},//S |
zhjb62 | 0:fa2d00fee0fc | 38 | {0x00,0x60,0x41,0x7F,0x41,0x60},//T |
zhjb62 | 0:fa2d00fee0fc | 39 | {0x00,0x7E,0x01,0x01,0x01,0x7E},//U-30 |
zhjb62 | 0:fa2d00fee0fc | 40 | {0x00,0x7C,0x02,0x01,0x02,0x7C},//V |
zhjb62 | 0:fa2d00fee0fc | 41 | {0x00,0x7C,0x03,0x3C,0x03,0x7C},//W |
zhjb62 | 0:fa2d00fee0fc | 42 | {0x00,0x43,0x24,0x18,0x24,0x43},//X |
zhjb62 | 0:fa2d00fee0fc | 43 | {0x00,0x60,0x18,0x07,0x18,0x60},//Y |
zhjb62 | 0:fa2d00fee0fc | 44 | {0x00,0x63,0x45,0x49,0x51,0x63},//Z-35 |
zhjb62 | 0:fa2d00fee0fc | 45 | {0x00,0x00,0x00,0x01,0x00,0x00},//. |
zhjb62 | 0:fa2d00fee0fc | 46 | {0x00,0x14,0x14,0x14,0x14,0x14},//= |
zhjb62 | 0:fa2d00fee0fc | 47 | {0x00,0x08,0x08,0x3E,0x08,0x08},//+ |
zhjb62 | 0:fa2d00fee0fc | 48 | {0x00,0x08,0x08,0x08,0x08,0x08},//- |
zhjb62 | 0:fa2d00fee0fc | 49 | {0x00,0x00,0x00,0x24,0x00,0x00},//:-40 |
zhjb62 | 0:fa2d00fee0fc | 50 | }; |
zhjb62 | 0:fa2d00fee0fc | 51 | //Write Plus |
zhjb62 | 0:fa2d00fee0fc | 52 | void wri(void){clk=0;clk=1;} |
zhjb62 | 0:fa2d00fee0fc | 53 | //使用SPI接口写数据到LCD,dt:写入的数据 command: 1-数据/0-命令 |
zhjb62 | 0:fa2d00fee0fc | 54 | void b2l(unsigned char dt,unsigned char command){ |
zhjb62 | 0:fa2d00fee0fc | 55 | unsigned char i; |
zhjb62 | 0:fa2d00fee0fc | 56 | reg=command; |
zhjb62 | 0:fa2d00fee0fc | 57 | for(i=0;i<8;i++){ |
zhjb62 | 0:fa2d00fee0fc | 58 | if(dt&0x80) dat=1;else dat=0; |
zhjb62 | 0:fa2d00fee0fc | 59 | dt=dt<<1; |
zhjb62 | 0:fa2d00fee0fc | 60 | wri(); |
zhjb62 | 0:fa2d00fee0fc | 61 | } |
zhjb62 | 0:fa2d00fee0fc | 62 | } |
zhjb62 | 0:fa2d00fee0fc | 63 | //名称: 设置坐标函数,参数:X:0-83 Y:0-5 |
zhjb62 | 0:fa2d00fee0fc | 64 | void setXY(unsigned char X,unsigned char Y){ |
zhjb62 | 0:fa2d00fee0fc | 65 | b2l(0x40+Y,0);//column |
zhjb62 | 0:fa2d00fee0fc | 66 | b2l(0x80+X,0);//row |
zhjb62 | 0:fa2d00fee0fc | 67 | } |
zhjb62 | 0:fa2d00fee0fc | 68 | //名称: LCD清屏函数 |
zhjb62 | 0:fa2d00fee0fc | 69 | void lcdClear(void){ |
zhjb62 | 0:fa2d00fee0fc | 70 | unsigned char t,k; |
zhjb62 | 0:fa2d00fee0fc | 71 | setXY(0,0); |
zhjb62 | 0:fa2d00fee0fc | 72 | for(t=0;t<9;t++){for(k=0;k<102;k++){b2l(0x00,1);}} |
zhjb62 | 0:fa2d00fee0fc | 73 | } |
zhjb62 | 0:fa2d00fee0fc | 74 | //名称: 显示英文字符,参数:c:显示的字符在asc2表格中的位置 |
zhjb62 | 0:fa2d00fee0fc | 75 | void c2l(unsigned char x,unsigned char y,unsigned char c){ |
zhjb62 | 0:fa2d00fee0fc | 76 | unsigned char line; |
zhjb62 | 0:fa2d00fee0fc | 77 | setXY(x*6,y); |
zhjb62 | 0:fa2d00fee0fc | 78 | for(line=0;line<6;line++)b2l(asc2[c][line],1); |
zhjb62 | 0:fa2d00fee0fc | 79 | } |
zhjb62 | 0:fa2d00fee0fc | 80 | //名称: 6903LCD初始化函数 |
zhjb62 | 0:fa2d00fee0fc | 81 | void lcdInit(void){ |
zhjb62 | 0:fa2d00fee0fc | 82 | wait(0.1); |
zhjb62 | 0:fa2d00fee0fc | 83 | res=0; |
zhjb62 | 0:fa2d00fee0fc | 84 | wait(0.5); |
zhjb62 | 0:fa2d00fee0fc | 85 | res=1; |
zhjb62 | 0:fa2d00fee0fc | 86 | wait(0.5); |
zhjb62 | 0:fa2d00fee0fc | 87 | b2l(0x25,0);//00100 PD=1dcOn|=0Dcoff V=0Up|=1Left H==1 |
zhjb62 | 0:fa2d00fee0fc | 88 | wait(0.05); |
zhjb62 | 0:fa2d00fee0fc | 89 | b2l(0x15,0);//脉宽L000~111=1/6-1/7-1/8-1/9//14=1/7 |
zhjb62 | 0:fa2d00fee0fc | 90 | wait(0.05); |
zhjb62 | 0:fa2d00fee0fc | 91 | b2l(0x94,0);//设置VOP值,约为8.96V |
zhjb62 | 0:fa2d00fee0fc | 92 | wait(0.05); |
zhjb62 | 0:fa2d00fee0fc | 93 | b2l(0x20,0);//PD=0,H=0,V=0 |
zhjb62 | 0:fa2d00fee0fc | 94 | b2l(0x0C,0);//LCD设置完成 |
zhjb62 | 0:fa2d00fee0fc | 95 | wait(0.5); |
zhjb62 | 0:fa2d00fee0fc | 96 | } |
zhjb62 | 0:fa2d00fee0fc | 97 | //Display ASCII Test |
zhjb62 | 0:fa2d00fee0fc | 98 | void dispAsc(void){ |
zhjb62 | 0:fa2d00fee0fc | 99 | int i,j,k=0; |
zhjb62 | 0:fa2d00fee0fc | 100 | for(i=0;i<8;i++){ |
zhjb62 | 0:fa2d00fee0fc | 101 | for(j=0;j<17;j++){ |
zhjb62 | 0:fa2d00fee0fc | 102 | c2l(j,i,k); |
zhjb62 | 0:fa2d00fee0fc | 103 | if(k>39){k=0;}else{k++;} |
zhjb62 | 0:fa2d00fee0fc | 104 | } |
zhjb62 | 0:fa2d00fee0fc | 105 | } |
zhjb62 | 0:fa2d00fee0fc | 106 | } |
zhjb62 | 0:fa2d00fee0fc | 107 | //END Files// |
zhjb62 | 0:fa2d00fee0fc | 108 |