我准备用SPI屏当示波屏幕。
只用五根线加电源、地就可以了。
需要注意的是,我的屏上的输入引脚标着MOS,这不是主出从入么,那么我就没定义这条线,而是定义了屏幕上的MIS,很显然这个是主入从出。
没想到,倒莓的事又一次光顾了我,我加电了好几次,也检查了几次就是刷不成功屏,后来我把管脚从MIS移到了MOS。这才好用。
怎么也没想到屏的厂家能想的这么周到,把主出从入都标的这么明白。怪我多心了,屏幕上的主就是指单片机,而从是屏幕。
管脚定义如下:
而串行输出各函数如下:
- void LCD_Writ_Bus(char da) //´®ÐÐÊý¾ÝдÈë
- {
- bitdata=da;
- LCD_SDI=bit7;LCD_SCK=0;LCD_SCK=1;
- LCD_SDI=bit6;LCD_SCK=0;LCD_SCK=1;
- LCD_SDI=bit5;LCD_SCK=0;LCD_SCK=1;
- LCD_SDI=bit4;LCD_SCK=0;LCD_SCK=1;
- LCD_SDI=bit3;LCD_SCK=0;LCD_SCK=1;
- LCD_SDI=bit2;LCD_SCK=0;LCD_SCK=1;
- LCD_SDI=bit1;LCD_SCK=0;LCD_SCK=1;
- LCD_SDI=bit0;LCD_SCK=0;LCD_SCK=1;
- }
- void LCD_WR_DATA8(char da) //·¢ËÍÊý¾Ý-8λ²ÎÊý
- {
- LCD_DC=1;
- LCD_Writ_Bus(da);
- }
- void LCD_WR_DATA(int da)
- {
- LCD_DC=1;
- LCD_Writ_Bus(da>>8);
- LCD_Writ_Bus(da);
- }
- void LCD_WR_REG(char da)
- {
- LCD_DC=0;
- LCD_Writ_Bus(da);
- }
刷屏函数如下:
- void LCD_Clear(u16 Color)
- {
- u16 i,j;
- Address_set(0,0,LCD_W-1,LCD_H-1);
- for(i=0;i<LCD_W;i++)
- {
- for (j=0;j<LCD_H;j++)
- {
- LCD_WR_DATA(Color);
- }
- }
- }
主函数如下:
- void main(void)
- {
- unsigned char i;
- GPIO_Init();
- Lcd_Init();
- LCD_Clear(BLUE); //ÇåÆÁ
- while(1)
- {
- for(i=0;i<2;i++)
- {
- //LEDS=(1<<i);
- P00=1;
- delay();
- P00=0;
- delay();
- }
- ADC_Test();
-
- }
- }
可见我就刷一个蓝屏:
以下是仿真截图:
|