久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4939|回復: 3
收起左側

UG-2864HSWEG0或ssd1306與stm32源程序+Proteus仿真

[復制鏈接]
ID:771565 發表于 2020-6-18 02:48 | 顯示全部樓層 |閱讀模式
我在做這個仿真的時候也遇到了一定問題,現附上proteus仿真模擬圖和源代碼供大家參考。大家在用這塊屏幕取字模的時候一定要注意是行列式還是列行試。注意在打印數組的時候要注意他的頁與行的變換。加油

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png

單片機源程序如下:
  1. #include "sys.h"
  2. #include "usart.h"
  3. #include "delay.h"
  4. //unsigned char a[10]="mengxinyu";
  5. unsigned char a[]={//孟
  6.         /*        0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m
  7.           0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e
  8.                
  9. 省略


  10. 0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x02,0x02,0x00,0x00,/*"?",2*/
  11. };
  12. void LCD_Init(void)        
  13. {
  14.   /*GPIO_InitTypeDef  GPIO_InitStruct;
  15.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  16.   
  17.   GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_6;
  18.   GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
  19.   GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
  20.         GPIO_Init(GPIOB, &GPIO_InitStruct);
  21.         
  22.         GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_7;
  23.         GPIO_Init(GPIOB, &GPIO_InitStruct);
  24.         
  25.         GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_8;
  26.         GPIO_Init(GPIOB, &GPIO_InitStruct);
  27.         
  28.         GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_9;
  29.         GPIO_Init(GPIOB, &GPIO_InitStruct);

  30.         
  31.         GPIO_WriteBit(GPIOB,GPIO_Pin_6,0) ;
  32.         GPIO_WriteBit(GPIOB,GPIO_Pin_7,0) ;
  33.         GPIO_WriteBit(GPIOB,GPIO_Pin_8,0) ;
  34.         GPIO_WriteBit(GPIOB,GPIO_Pin_9,0) ;*/
  35.         RCC->APB2ENR|=1<<3;     //使能PORTB時鐘
  36.       GPIOB->CRL&=0X00000000;
  37.           GPIOB->CRL|=0X33FFFFFF;
  38.           GPIOB->CRH&=0X00000000;
  39.           GPIOB->CRH|=0XFFFFFF33;         
  40.       GPIOB->ODR|=0XFFFFFFFF;
  41.                         
  42. }
  43. void comdate(int h,unsigned char data)//0命令 1數據
  44. {
  45.         int i;
  46.         if(h==0)
  47.                 PBout(6)=0;
  48.         else
  49.                 PBout(6)=1;
  50.         PBout(9)=0;
  51.         for(i=0;i<8;i++)
  52.         {
  53.                 if(data&0x80)
  54.                 PBout(8)=1;
  55.     else
  56.         PBout(8)=0;
  57.     PBout(9)=1;            
  58.     PBout(9)=0;   
  59.     data<<=1;
  60.         }
  61. }
  62. void chushihua(void)
  63. {
  64.                         comdate(0,0xae);//close 屏
  65.       comdate(0,0x00);//write low address
  66.       comdate(0,0x10);//write high address
  67.                         comdate(0,0xaf);//開屏
  68.         
  69.                         /*        comdate(0,0x2E);        
  70.         comdate(0,0x26);        // 26/27 light right
  71.         comdate(0,0x00);        
  72.         comdate(0,0x00);        
  73.         comdate(0,0x07);        
  74.         comdate(0,0x07);        
  75.         comdate(0,0x00);        
  76.         comdate(0,0xFF);        
  77.         comdate(0,0x2F);*/
  78. }
  79. void LCD_Set_Pos(unsigned char x, unsigned char y)
  80. {
  81.   comdate(0,0xb0+y);
  82.   comdate(0,((x&0xf0)>>4)|0x10);
  83.   comdate(0,(x&0x0f)|0x01);
  84. }
  85. void xianshi(unsigned char x,unsigned char y)
  86. {
  87.         int i,j;
  88.         int q;
  89.         /*for(i=0;i<64;i++)
  90.         {
  91.                 comdate(1,a[i]);
  92.                 //for(i=0;i<8;i++);
  93.                 if(i>0&&i%16==0)
  94.                 {
  95.                         y=y+1;
  96.                         x+=8;
  97.                 }
  98.         }*/
  99.         for(i=0;i<2;i++)
  100.         {
  101.         for(j=0;j<32;j++)
  102.         {
  103.                 LCD_Set_Pos(j,i);
  104.                 comdate(1,a[q++]);
  105.         }
  106. }
  107. }
  108. void xianshi1(unsigned char x,unsigned char y)
  109. {
  110.         int i,j;
  111.         int q;
  112.         for(i=0;i<2;i++)
  113.         {
  114.         for(j=0;j<32;j++)
  115.         {
  116.                 LCD_Set_Pos(j,i+2);
  117.                 comdate(1,b[q++]);
  118.         }
  119. }
  120.         }
  121. void xianshi2(unsigned char x,unsigned char y)
  122. {
  123.         int i,j;
  124.         int q;
  125.         for(i=0;i<2;i++)
  126.         {
  127.         for(j=0;j<32;j++)
  128.         {
  129.                 LCD_Set_Pos(j,i+4);
  130.                 comdate(1,c[q++]);
  131.         }
  132. }
  133.         }
  134. void xianshi3(unsigned char x,unsigned char y)
  135. {
  136.         int i,j;
  137.         int q;
  138.         for(i=0;i<8;i++)
  139.         {
  140.         for(j=0;j<128;j++)
  141.         {
  142.                 LCD_Set_Pos(j,i);
  143.                 comdate(1,0x00);
  144.         }
  145. }
  146.         }
  147. int main()
  148. {
  149.         int i;
  150.         LCD_Init();
  151.         chushihua();
  152.                 xianshi(0,0);//參數毫無意義
  153.         xianshi1(0,2);
  154.         xianshi2(3,3);
  155.         
  156.         //xianshi3(1,0);
  157.         //xianshi(1,0);
  158.         //xianshi1(1,0);
  159.          /*comdate(0,0x00);
  160.         xianshi3(1,0);
  161.         //for(i=0;i<100000;i++);
  162.         xianshi1(1,0);
  163.         comdate(0,0x00);
  164.         xianshi3(1,0);
  165.         //for(i=0;i<100000;i++);
  166.         xianshi2(1,0);
  167.         //xianshi2(9,0);*/
  168.         while(1);
  169. }
  170. /*for(j=0;j<10;j++)
  171.         {
  172.                 for(i=0;i<8;i++)
  173.     comdate(1,a[i]);
  174.           // comdate(1,43);
  175.           LCD_Set_Pos(x,y+1);   
  176.           for(i=0;i<8;i++)   
  177.                         comdate(1,a[i+8]);  
  178.           x+=8;
  179.         }*/
復制代碼

所有資料51hei提供下載:
oled.7z (182.27 KB, 下載次數: 71)
仿真圖.rar (22.9 KB, 下載次數: 66)



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:784999 發表于 2020-7-9 21:24 | 顯示全部樓層
這個IIC驅動嗎還是SPI
回復

使用道具 舉報

ID:798633 發表于 2020-7-10 08:11 | 顯示全部樓層
proteus里用I2C老是驅動不成功,用SPI才能使用。
回復

使用道具 舉報

ID:718821 發表于 2020-7-10 09:33 | 顯示全部樓層
我也遇到了I2C的問題,怎么解決呢
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久久久久 | 亚洲一区二区久久 | 欧美精品一区二区免费 | 国产精品毛片久久久久久 | 日韩欧美国产一区二区 | 一区二区三区欧美 | 精品久久香蕉国产线看观看亚洲 | 中文字幕在线一区 | 国产 欧美 日韩 一区 | 日韩一二区 | 成人一区二区三区在线观看 | 黄色电影在线免费观看 | 久久综合一区二区三区 | 在线日韩在线 | 国产精品国产成人国产三级 | 狠狠撸在线视频 | 久草在线青青草 | 精品国产一区二区三区久久久久久 | 久久亚洲天堂 | 国产精品久久久久久久久大全 | 91精品国产自产在线老师啪 | 久草免费在线视频 | 日韩欧美中文字幕在线观看 | 亚洲精品一区二三区不卡 | 久久精品视频一区二区三区 | 亚洲九九精品 | 国产精品一区久久久 | 亚洲欧美久久 | 日韩在线观看中文字幕 | 欧美 日韩 亚洲91麻豆精品 | 男女午夜激情视频 | 成人免费视频网站在线观看 | 国产精品欧美精品 | 毛片在线免费 | 久草网站| 欧美v片| 久久国产精品-国产精品 | 久久噜噜噜精品国产亚洲综合 | 久久久精品网 | 中文字幕亚洲精品 | av在线成人|