[活动专区] 【赛元95F】二,驱动SPI屏

[复制链接]
604|2
 楼主| ddllxxrr 发表于 2020-3-29 14:19 | 显示全部楼层 |阅读模式
spi, CD, LCD, ck, sd
我准备用SPI屏当示波屏幕。
只用五根线加电源、地就可以了。
需要注意的是,我的屏上的输入引脚标着MOS,这不是主出从入么,那么我就没定义这条线,而是定义了屏幕上的MIS,很显然这个是主入从出。
没想到,倒莓的事又一次光顾了我,我加电了好几次,也检查了几次就是刷不成功屏,后来我把管脚从MIS移到了MOS。这才好用。
怎么也没想到屏的厂家能想的这么周到,把主出从入都标的这么明白。怪我多心了,屏幕上的主就是指单片机,而从是屏幕。

管脚定义如下:
  1. sbit LCD_CS     =P2^4;
而串行输出各函数如下:
  1. void LCD_Writ_Bus(char da)   //´®ÐÐÊý¾ÝдÈë
  2. {       
  3.         bitdata=da;
  4.         LCD_SDI=bit7;LCD_SCK=0;LCD_SCK=1;
  5.         LCD_SDI=bit6;LCD_SCK=0;LCD_SCK=1;
  6.         LCD_SDI=bit5;LCD_SCK=0;LCD_SCK=1;
  7.         LCD_SDI=bit4;LCD_SCK=0;LCD_SCK=1;
  8.         LCD_SDI=bit3;LCD_SCK=0;LCD_SCK=1;
  9.         LCD_SDI=bit2;LCD_SCK=0;LCD_SCK=1;
  10.         LCD_SDI=bit1;LCD_SCK=0;LCD_SCK=1;
  11.         LCD_SDI=bit0;LCD_SCK=0;LCD_SCK=1;
  12. }
  13. void LCD_WR_DATA8(char da) //·¢ËÍÊý¾Ý-8λ²ÎÊý
  14. {
  15.     LCD_DC=1;
  16.         LCD_Writ_Bus(da);  
  17. }  
  18. void LCD_WR_DATA(int da)
  19. {
  20.     LCD_DC=1;
  21.         LCD_Writ_Bus(da>>8);
  22.     LCD_Writ_Bus(da);
  23. }          
  24. void LCD_WR_REG(char da)         
  25. {       
  26.     LCD_DC=0;
  27.         LCD_Writ_Bus(da);
  28. }
刷屏函数如下:
  1. void LCD_Clear(u16 Color)
  2. {
  3.         u16 i,j;         
  4.         Address_set(0,0,LCD_W-1,LCD_H-1);
  5.     for(i=0;i<LCD_W;i++)
  6.          {
  7.           for (j=0;j<LCD_H;j++)
  8.                    {
  9.                 LCD_WR_DATA(Color);                                  
  10.             }

  11.           }
  12. }
主函数如下:
  1. void main(void)
  2. {
  3.         unsigned char i;

  4.         GPIO_Init();
  5.               Lcd_Init();
  6.               LCD_Clear(BLUE); //ÇåÆÁ
  7.               while(1)
  8.         {
  9.                 for(i=0;i<2;i++)
  10.                 {
  11.                         //LEDS=(1<<i);
  12.                         P00=1;
  13.                                                                               delay();
  14.                                                                               P00=0;
  15.                                                                                                 delay();       
  16.                 }
  17.                                                                 ADC_Test();
  18.                                                                
  19.         }


  20. }
可见我就刷一个蓝屏:
QQ图片20200329141603.jpg

以下是仿真截图:
sinone3.jpg

评论

knk
用硬件的SPI呀,速度很快的,IO模拟的SPI太慢了。  发表于 2020-3-29 17:53
一路向北lm 发表于 2020-3-30 10:12 | 显示全部楼层
USCI 有硬件SPi,可以了解下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2404

主题

7002

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部