找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机按键控制oled显示图片

[复制链接]
跳转到指定楼层
楼主
ID:267575 发表于 2017-12-27 11:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机源程序如下:
  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点整OLED模块功能演示程序的主函数,仅适用heltec.taobao.com所售产品
  15. *
  16. * Others: none;
  17. *
  18. * Function List:
  19. *
  20. * 1. void delay(unsigned int z) -- 主函数中用于调整显示效果的延时函数,STC89C52 12MHZ z=1时大约延时1ms,其他频率需要自己计算
  21. * 2. void main(void) -- 主函数
  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++)//通过点整显示汉字 -- i表示字表数组的位置
  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)                  //检测按键K1是否按下
  67.         {       
  68.                 delay(100);   //消除抖动 一般大约10ms
  69.                 if(k1==0)         //再次判断按键是否按下
  70.                 {
  71.                   
  72.             Draw_BMP(0,0,128,8,BMP1);          //led状态取反
  73.                 }
  74.                 while(!k1);         //检测按键是否松开
  75.         }               
  76.                
  77.                
  78.        
  79.                                            if(k2==0)                  //检测按键K1是否按下
  80.         {       
  81.                 delay(100);   //消除抖动 一般大约10ms
  82.                 if(k2==0)         //再次判断按键是否按下
  83.                 {
  84.                
  85.                       
  86.          Draw_BMP(0,0,128,8,BMP2);          //led状态取反
  87.                 }
  88.                 while(!k2);         //检测按键是否松开
  89.         }               
  90.                
  91.                
  92.                                            if(k3==0)                  //检测按键K1是否按下
  93.         {       
  94.                 delay(100);   //消除抖动 一般大约10ms
  95.                 if(k3==0)         //再次判断按键是否按下
  96.                 {
  97.                
  98.                    
  99.          Draw_BMP(0,0,128,8,BMP3);          //led状态取反
  100.                 }
  101.                 while(!k3);         //检测按键是否松开
  102.         }       
  103. ……………………

  104. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
(03)C51例程(STC89C52).zip (71.37 KB, 下载次数: 328)


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

使用道具 举报

沙发
ID:243748 发表于 2017-12-28 20:19 来自手机 | 只看该作者
怎么接线的?
回复

使用道具 举报

板凳
ID:267575 发表于 2018-1-2 16:26 | 只看该作者

scl,sdl,一个P2.0一个P2.1具体看程序
回复

使用道具 举报

地板
ID:540439 发表于 2019-8-9 11:17 | 只看该作者
感谢分享 东西很有用
回复

使用道具 举报

5#
ID:585455 发表于 2020-9-27 13:53 | 只看该作者
正在學習控制oled,非常有幫助,立即測試。
回复

使用道具 举报

6#
ID:929053 发表于 2021-5-30 15:26 | 只看该作者

感谢分享 东西很有用
回复

使用道具 举报

7#
ID:967910 发表于 2021-9-28 16:14 | 只看该作者
感谢分享,东西对我最近的工作帮上忙了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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