本帖最后由 南来之风 于 2021-9-18 08:43 编辑
继续上期的测评,本次我会尝试使用PIC18F16Q41来驱动一块0.96 OLED液晶屏幕。
首先参考OLED的引脚分布和PIC18F16Q41的引脚分布:
考虑前期代码复用,准备以如下方式连接:
OLED_CLK ------ RC5
OLED_DIN ------ RC4
OLED_RES ------ RC6
OLED_DC ------- RC7
封装OLED相关操作的指令:
#define OLED_SCL_Clr() IO_RC5_SetLow() //0
#define OLED_SCL_Set() IO_RC5_SetHigh() //1
#define OLED_SDA_Clr() IO_RC4_SetLow() //0
#define OLED_SDA_Set() IO_RC4_SetHigh() //1
#define OLED_RES_Clr() IO_RC6_SetLow() //0
#define OLED_RES_Set() IO_RC6_SetHigh() //1
#define OLED_DC_Clr() IO_RC7_SetLow() //0 pin25
#define OLED_DC_Set() IO_RC7_SetHigh() //1 pin25
#define OLED_CS_Clr() IO_RC3_SetLow() //0
#define OLED_CS_Set() IO_RC3_SetHigh() //1
近几日尝试显示那个比较火的旋转太空人,先看效果:
先从网上找到一个gif文件:
然后利用一个工具把gif图片拆分成帧,连续的png图片。(https://www.arduino.cn/thread-104936-1-1.html)
之后再保存成bmp文件,50x50像素:
50x50 bmp.zip
(3.89 KB)
在代码中,循环显示该GIF文件所对应的9个bmp文件,以达到旋转的效果
OLED_ShowPicture(40,7,50,50,SuperSpaceMan[(index%8)],1);
index++;
OLED_Refresh();
完整的代码,写的比较乱,大家将就一下
Proj2_Oled_Space.zip
(1.34 MB)
https://icons8.com/free-animated-icons 这个网址有不少GIF图片
|