找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8707|回復(fù): 6
收起左側(cè)

51單片機(jī)按鍵控制oled顯示圖片

[復(fù)制鏈接]
ID:267575 發(fā)表于 2017-12-27 11:03 | 顯示全部樓層 |閱讀模式
單片機(jī)源程序如下:
  1. /************************************************************************************
  2. *  Copyright (c), 2013, HelTec Automatic Technology co.,LTD.
  3. *            All rights reserved.
  4. * File name: OLED12864.c
  5. * Project  : OLED
  6. * Processor: STC89C52
  7. * Compiler : Keil C51 Compiler
  8. *
  9. * Author : 小林
  10. * Version: 1.00
  11. * Email  : hello14blog@gmail.com
  12. * Modification: none
  13. *
  14. * Description: 128*64點(diǎn)整OLED模塊功能演示程序的主函數(shù),僅適用heltec.taobao.com所售產(chǎn)品
  15. *
  16. * Others: none;
  17. *
  18. * Function List:
  19. *
  20. * 1. void delay(unsigned int z) -- 主函數(shù)中用于調(diào)整顯示效果的延時(shí)函數(shù),STC89C52 12MHZ z=1時(shí)大約延時(shí)1ms,其他頻率需要自己計(jì)算
  21. * 2. void main(void) -- 主函數(shù)
  22. *
  23. * History: none;
  24. *
  25. *************************************************************************************/

  26. //#include "reg52.h"
  27. #include "intrins.h"
  28. #include "codetab.h"
  29. #include "LQ12864.h"
  30. sbit k1=P3^0;
  31. sbit k2=P3^1;
  32. sbit k3=P3^2;
  33. sbit k4=P3^3;

  34. void main(void)
  35. {


  36.         OLED_Init(); //OLED初始化
  37.                 Draw_BMP(0,0,128,8,BMP0);
  38.         while(1)
  39.         {
  40. //                OLED_Fill(0xff); //屏全亮
  41. //                delay(2000);
  42. //                OLED_Fill(0x00); //屏全滅
  43. //                delay(200);
  44.                 //OLED_P16x16Ch(24,0,1);
  45.                 //OLED_P16x16Ch(40,0,2);
  46.                 //OLED_P16x16Ch(57,0,3);
  47.                 //OLED_P16x16Ch(74,0,4);
  48.                 //OLED_P16x16Ch(91,0,5);
  49.                 /*        for(i=0; i<7; i++)//通過(guò)點(diǎn)整顯示漢字 -- i表示字表數(shù)組的位置
  50.                 {
  51. //                        OLED_P16x16Ch(i*16,0,i);
  52.                          //OLED_P16x16Ch(i*16,2,i+8);
  53.                          OLED_P16x16Ch(i*16,4,i+16);
  54.                  //        OLED_P16x16Ch(i*16,6,i+24);
  55.                 }
  56.                 delay(4000);
  57.                 OLED_CLS();//清屏

  58.                 /*        OLED_P8x16Str(0,0,"HelTec");//第一行 -- 8x16的顯示單元顯示ASCII碼
  59.                 OLED_P8x16Str(0,2,"OLED Display");
  60.                 OLED_P8x16Str(0,4,"www8heltec8cn");
  61.                 OLED_P6x8Str(0,6,"cn.heltec@gmail8com");
  62.                 OLED_P6x8Str(0,7,"heltec8taobao8com");
  63.                 delay(4000);
  64.                 OLED_CLS();         */
  65.        
  66.                         if(k1==0)                  //檢測(cè)按鍵K1是否按下
  67.         {       
  68.                 delay(100);   //消除抖動(dòng) 一般大約10ms
  69.                 if(k1==0)         //再次判斷按鍵是否按下
  70.                 {
  71.                   
  72.             Draw_BMP(0,0,128,8,BMP1);          //led狀態(tài)取反
  73.                 }
  74.                 while(!k1);         //檢測(cè)按鍵是否松開(kāi)
  75.         }               
  76.                
  77.                
  78.        
  79.                                            if(k2==0)                  //檢測(cè)按鍵K1是否按下
  80.         {       
  81.                 delay(100);   //消除抖動(dòng) 一般大約10ms
  82.                 if(k2==0)         //再次判斷按鍵是否按下
  83.                 {
  84.                
  85.                       
  86.          Draw_BMP(0,0,128,8,BMP2);          //led狀態(tài)取反
  87.                 }
  88.                 while(!k2);         //檢測(cè)按鍵是否松開(kāi)
  89.         }               
  90.                
  91.                
  92.                                            if(k3==0)                  //檢測(cè)按鍵K1是否按下
  93.         {       
  94.                 delay(100);   //消除抖動(dòng) 一般大約10ms
  95.                 if(k3==0)         //再次判斷按鍵是否按下
  96.                 {
  97.                
  98.                    
  99.          Draw_BMP(0,0,128,8,BMP3);          //led狀態(tài)取反
  100.                 }
  101.                 while(!k3);         //檢測(cè)按鍵是否松開(kāi)
  102.         }       
  103. ……………………

  104. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
(03)C51例程(STC89C52).zip (71.37 KB, 下載次數(shù): 328)


回復(fù)

使用道具 舉報(bào)

ID:243748 發(fā)表于 2017-12-28 20:19 來(lái)自觸屏版 | 顯示全部樓層
怎么接線的?
回復(fù)

使用道具 舉報(bào)

ID:267575 發(fā)表于 2018-1-2 16:26 | 顯示全部樓層

scl,sdl,一個(gè)P2.0一個(gè)P2.1具體看程序
回復(fù)

使用道具 舉報(bào)

ID:540439 發(fā)表于 2019-8-9 11:17 | 顯示全部樓層
感謝分享 東西很有用
回復(fù)

使用道具 舉報(bào)

ID:585455 發(fā)表于 2020-9-27 13:53 | 顯示全部樓層
正在學(xué)習(xí)控制oled,非常有幫助,立即測(cè)試。
回復(fù)

使用道具 舉報(bào)

ID:929053 發(fā)表于 2021-5-30 15:26 | 顯示全部樓層

感謝分享 東西很有用
回復(fù)

使用道具 舉報(bào)

ID:967910 發(fā)表于 2021-9-28 16:14 | 顯示全部樓層
感謝分享,東西對(duì)我最近的工作幫上忙了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表