找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3077|回复: 1
打印 上一主题 下一主题
收起左侧

PIC16F877单片机+0.96OLED显示源代码

[复制链接]
跳转到指定楼层
楼主
ID:153917 发表于 2018-10-30 09:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIC16F877+0.96OLED显示源代码
  1. //===============================================================================
  2. //模块名称:  oled.c
  3. //简介:  延时函数
  4. //版本: 1.0
  5. //作者: 张冰
  6. //说明:
  7. //===============================================================================
  8. #include <p18cxxx.h>
  9. #include <delays.h>
  10. #include "toppic.h"
  11. #include "delay.h"
  12. #include "oled.h"

  13. //              GND    电源地
  14. //              VCC  接5V或3.3v电源
  15. //              D0   P1^0(SCL)  时钟管脚  RC3  SCK
  16. //              D1   P1^1(SDA)  数据管脚
  17. //              RES  接P12        复位(低电平复位)
  18. //              DC   接P13        数据和命令控制管脚
  19. //              CS   接地     

  20. /*****************************************************************************
  21. 函 数 名  : LED_WrDat
  22. 功能描述  : 向OLED写数据
  23. 输入参数  : UCHAR8 ucData  
  24. 输出参数  : NONE
  25. 返 回 值  : NONE
  26. *****************************************************************************/
  27. void Write_SPI_Data(unsigned char ucData)
  28. {
  29.     unsigned char i = 8;
  30.     DC=1;
  31.     SCL=0;
  32.    
  33.     while (i--)
  34.     {
  35.         if (ucData & 0x80)
  36.         {
  37.             SDA = 1;
  38.         }
  39.         else
  40.         {
  41.             SDA = 0;
  42.         }
  43.         
  44.         SCL = 1;
  45.         _nop_();
  46.         SCL = 0;   
  47.         ucData <<= 1;   
  48.     }

  49.     return;
  50. }

  51. /*****************************************************************************
  52. 函 数 名  : LED_WrCmd
  53. 功能描述  : 向OLED写命令
  54. 输入参数  : UCHAR8 ucCmd  
  55. 输出参数  : NONE
  56. 返 回 值  : NONE
  57. *****************************************************************************/
  58. void Write_SPI_Command(unsigned char ucCmd)
  59. {
  60.     unsigned char i = 8;
  61.     DC   = 0;
  62.     SCL  = 0;
  63.     while (i--)
  64.     {
  65.         if (ucCmd & 0x80)
  66.         {
  67.             SDA = 1;
  68.         }
  69.         else
  70.         {
  71.             SDA = 0;
  72.         }
  73.         SCL = 1;
  74.         _nop_();           
  75.         SCL = 0;   
  76.         ucCmd <<= 1;   
  77.     }  

  78.     return;
  79. }

  80. /********************************************
  81. // fill_Picture
  82. ********************************************/
  83. void fill_picture(unsigned char fill_Data)
  84. {
  85.         unsigned char m,n;
  86.         for(m=0;m<8;m++)
  87.         {
  88.                 Write_SPI_Command(0xb0+m);                //page0-page1
  89.                 Write_SPI_Command(0x00);                //low column start address
  90.                 Write_SPI_Command(0x10);                //high column start address
  91.                 for(n=0;n<128;n++)
  92.                         {
  93.                                 Write_SPI_Data(fill_Data);
  94.                         }
  95.         }
  96. }
复制代码

全部资料51hei下载地址:
0.96oled-OK.rar (26.29 KB, 下载次数: 57)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:943006 发表于 2021-7-20 13:35 | 只看该作者
有没有用过的兄弟
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表