找回密码
 立即注册

QQ登录

只需一步,快速开始

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

ST7567显示屏arduino驱动求助

[复制链接]
跳转到指定楼层
楼主
ID:114021 发表于 2016-4-13 18:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近偶得一显示屏 是ST7567 网上搜到引脚资料 和源码 但是奈何小弟才疏学浅 看不懂  能否有高人指点 用arduino驱动  源码贴上

  1. #include "msp430g2452.h"
  2. #define LCD        P1OUT
  3. #define CSB        0x20
  4. #define RSTB       0x08
  5. #define A0         0x04
  6. #define SCLK       0x02
  7. #define SDA        0x01
  8. unsigned const char tab[]={
  9.   0xFF,0x01,0x01,0x01,0x41,0xD1,0x01,0x01,0x01,0x80,0x40,0x40,0x80,0x00,0x00,0xC0,
  10.   0x40,0xC0,0x40,0x80,0x00,0x40,0xC0,0x00,0x40,0xC0,0x00,0x00,0xC0,0x40,0x40,0x40,
  11.   0x00,0x10,0xF0,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  12.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  13.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  14.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  15.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  16.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,
  17.   0x03,0x00,0x00,0x80,0x84,0x87,0x84,0x80,0x00,0x82,0x85,0x05,0x07,0x84,0x80,0x07,
  18.   0x00,0x87,0x00,0x07,0x00,0x00,0x03,0x84,0x84,0x07,0x04,0x00,0x04,0x85,0x85,0x06,
  19.   0x00,0x00,0x87,0x84,0x84,0x03,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x80,
  20.   0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x80,
  21.   0x80,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,
  22.   0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
  23.   0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  24.   0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
  25.   0x00,0x00,0x00,0x01,0x20,0x3F,0x20,0x01,0x00,0x20,0x3F,0x0F,0x07,0x3F,0x20,0x00,
  26.   0x21,0x3F,0x20,0x00,0x00,0x00,0x31,0x28,0x24,0x23,0x00,0x00,0x1B,0x24,0x24,0x1B,
  27.   0x00,0x1F,0x24,0x24,0x24,0x18,0x00,0x0C,0x0A,0x09,0x3F,0x08,0x00,0x00,0x21,0x3F,
  28.   0x20,0x00,0x00,0x00,0x00,0x3C,0x03,0x00,0x00,0x20,0x3F,0x22,0x22,0x1D,0x00,0x20,
  29.   0x3F,0x24,0x0E,0x01,0x00,0x03,0x3C,0x03,0x0C,0x3C,0x03,0x1F,0x20,0x28,0x18,0x08,
  30.   0x00,0x00,0x23,0x3C,0x23,0x00,0x00,0x20,0x3E,0x09,0x3E,0x20,0x00,0x00,0x00,0x00,
  31.   0x00,0x00,0x00,0x20,0x3F,0x22,0x22,0x1D,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
  32.   0x31,0x28,0x24,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  33.   0x00,0x00,0x00,0x00,0x88,0x44,0x24,0x18,0x00,0x00,0xF8,0x04,0x04,0xF8,0x00,0x00,
  34.   0x08,0xFC,0x00,0x00,0x00,0x00,0x9C,0x14,0x14,0xE4,0x00,0x00,0xC0,0x30,0x0E,0x01,
  35.   0x00,0x00,0x08,0xFC,0x00,0x00,0x00,0x00,0xF8,0x04,0x04,0xF8,0x00,0x00,0xC0,0x30,
  36.   0x0E,0x01,0x00,0x00,0x08,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0xE0,
  37.   0x00,0x00,0x00,0x00,0x00,0xC0,0x20,0x20,0x20,0x20,0xC0,0x00,0x00,0xC0,0x20,0x20,
  38.   0x20,0x20,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,
  39.   0x20,0x60,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
  40.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  41.   0x00,0x00,0x00,0x00,0x41,0x21,0x21,0xC1,0x00,0x00,0x40,0xE1,0x01,0x00,0x00,0x00,
  42.   0x01,0x81,0x01,0x00,0x00,0x00,0x80,0x41,0xF1,0x00,0x00,0x02,0x41,0x20,0x20,0xC0,
  43.   0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x02,0x01,0x00,
  44.   0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xFF,
  45.   0x80,0x80,0x00,0x00,0x00,0xC1,0xA0,0x90,0x88,0x86,0xC1,0x00,0x00,0x71,0x8A,0x84,
  46.   0x84,0x8A,0x71,0x00,0x00,0x82,0xC6,0xB8,0x3A,0xC6,0x82,0x00,0x00,0x3F,0x44,0x82,
  47.   0x82,0x44,0x38,0x00,0x00,0x1C,0x13,0x90,0x90,0xFF,0x90,0x00,0x00,0x00,0x00,0x00,
  48.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  49.   0x00,0x00,0x00,0x00,0x0C,0x0A,0x09,0x08,0x00,0x00,0x08,0x0F,0x08,0x00,0x00,0x00,
  50.   0x00,0x08,0x00,0x00,0x00,0x03,0x02,0x02,0x0F,0x02,0x00,0x00,0x04,0x09,0x09,0x06,
  51.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
  52.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  53.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  54.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  55.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  56.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  57.   0x00,0x00,0x00,0x03,0x41,0x7F,0x41,0x03,0x00,0x41,0x7F,0x1E,0x0E,0x7F,0x41,0x00,
  58.   0x42,0x7F,0x40,0x00,0x00,0x00,0x62,0x51,0x49,0x46,0x00,0x00,0x36,0x49,0x49,0x36,
  59.   0x00,0x3E,0x49,0x49,0x49,0x30,0x00,0x18,0x14,0x12,0x7F,0x10,0x00,0x00,0x42,0x7F,
  60.   0x40,0x00,0x00,0x00,0x01,0x79,0x07,0x01,0x00,0x41,0x7F,0x45,0x45,0x3A,0x00,0x41,
  61.   0x7F,0x49,0x1D,0x03,0x00,0x07,0x79,0x07,0x19,0x79,0x07,0x3E,0x41,0x51,0x31,0x10,
  62.   0x00,0x01,0x47,0x78,0x47,0x01,0x00,0x40,0x7C,0x13,0x7C,0x40,0x00,0x00,0x00,0x00,
  63.   0x00,0x00,0x00,0x41,0x7F,0x45,0x45,0x3A,0x00,0x04,0x04,0x04,0x04,0x04,0x00,0x00,
  64.   0x62,0x51,0x49,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  65.   0xFC,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  66.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  67.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  68.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  69.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  70.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  71.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  72.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0xFE
  73. };
  74. void init_sys(void)
  75. {
  76.    DCOCTL=0;
  77.    BCSCTL1=CALBC1_1MHZ;
  78.    DCOCTL=CALDCO_1MHZ;
  79.    //==GPIO==
  80.    P2DIR=0xff;//输出
  81.    P1DIR=0xff;//输出
  82.    P1OUT=0xff;
  83. }
  84. void lcd_spi(unsigned char t)
  85. {
  86. unsigned char i=0x80,s;
  87.    do
  88.    {
  89.       LCD &=~(SCLK);
  90.       s=t&i;
  91.       if(s==0)
  92.         LCD &=~SDA;
  93.       else
  94.         LCD |=SDA;
  95.       i=i>>1;
  96.       LCD |=SCLK;
  97.    }while(i!=0) ;
  98. }
  99. void lcd_wcom(unsigned char cmd)
  100. {
  101. LCD &=~(A0+CSB);
  102. lcd_spi(cmd);
  103. LCD |=A0+CSB;
  104. }
  105. void lcd_wdat(unsigned char dat)
  106. {
  107. LCD &=~(CSB);
  108. LCD |=A0;
  109. lcd_spi(dat);
  110. LCD |=A0+CSB;
  111. }
  112. void setpage(unsigned char page)//page 0-7
  113. {
  114.   lcd_wcom(page+0xb0);
  115. }
  116. void setcol_0(void)
  117. {
  118. lcd_wcom(0x10);
  119. lcd_wcom(0x00);
  120. }
  121. void clrscr(unsigned char u)
  122. {
  123.   unsigned  char page,col;
  124.   for(page=0xb0;page!=0xb8;page++)
  125.   {
  126.    lcd_wcom(page);
  127.    setcol_0();
  128.     for(col=0;col!=132;col++)
  129.     {
  130.      lcd_wdat(u);
  131.     }
  132.   }
  133. }
  134. void init_lcd(void)
  135. {
  136. LCD &=~RSTB;
  137. __delay_cycles(1500);//50ms
  138. LCD |=RSTB;
  139. __delay_cycles(1500);//50ms
  140. lcd_wcom(0xe2);//soft rest
  141. __delay_cycles(1500);//50ms
  142. lcd_wcom(0xaf);//turn on
  143. lcd_wcom(0x2f);//power magn on
  144. lcd_wcom(0xa1);//left<->right
  145. lcd_wcom(0x22);//对比度粗调0x20-0x27
  146. lcd_wcom(0x81);//对比度细调前行命令
  147. lcd_wcom(0x2f);//对比度细调
  148. lcd_wcom(0xa3);//chose bias
  149. clrscr(0xf0);
  150. }
  151. void display_bmp()
  152. {
  153. unsigned int i=0;
  154. unsigned char page,col;
  155.    for(page=0xb0;page!=0xb8;page++)
  156.    {
  157.     lcd_wcom(page);
  158.     setcol_0();
  159.      for(col=0;col!=128;col++)
  160.      {
  161.       lcd_wdat(tab[i]);
  162.       i++;
  163.      }
  164.    }
  165. }
  166. void main(void) {

  167.    // Stop watchdog timer to prevent time out reset
  168.    WDTCTL = WDTPW + WDTHOLD;
  169. unsigned char i=0;
  170. unsigned long p=1;
  171. init_sys();
  172. init_lcd();
  173. display_bmp();
  174. while(p!=0)
  175. {
  176.   p++;
  177.   __delay_cycles(150000);//50ms
  178. }
  179. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:325624 发表于 2022-11-16 12:18 | 只看该作者
很显然,这不是Arduino程序;Arduino可以用U8g2这个库
回复

使用道具 举报

板凳
ID:983394 发表于 2022-11-16 13:30 | 只看该作者
#include <Arduino.h>
#include <U8g2lib.h>

U8G2_ST7567_OS12864_1_4W_SW_SPI u8g2(U8G2_R2, /* clock=*/ D3, /* data=*/ D4, /* cs=*/ D9, /* dc=*/ D2, /* reset=*/ D1);

void setup(void) {
  u8g2.begin();
  u8g2.setContrast(0); //对比度调节
}

void loop(void) {
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_ncenB10_tr);
    u8g2.drawStr(0,24,"Hello World!");
  } while ( u8g2.nextPage() );
  delay(dht.getMinimumSamplingPeriod());
}
回复

使用道具 举报

地板
ID:284903 发表于 2023-1-24 19:43 | 只看该作者
这是51的代码,最上面定义了GPIO,下面就是简单的字符定义,之后就是main函数显示定义的字符
回复

使用道具 举报

5#
ID:284903 发表于 2023-1-24 19:44 | 只看该作者
这是51的程序,最上面定义了GPIO,之后定义了字符,main显示字符
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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