單片機源程序如下:
- /************************************************************************************
- * Copyright (c), 2013, HelTec Automatic Technology co.,LTD.
- * All rights reserved.
- * File name: OLED12864.c
- * Project : OLED
- * Processor: STC89C52
- * Compiler : Keil C51 Compiler
- *
- * Author : 小林
- * Version: 1.00
- * Email : hello14blog@gmail.com
- * Modification: none
- *
- * Description: 128*64點整OLED模塊功能演示程序的主函數,僅適用heltec.taobao.com所售產品
- *
- * Others: none;
- *
- * Function List:
- *
- * 1. void delay(unsigned int z) -- 主函數中用于調整顯示效果的延時函數,STC89C52 12MHZ z=1時大約延時1ms,其他頻率需要自己計算
- * 2. void main(void) -- 主函數
- *
- * History: none;
- *
- *************************************************************************************/
- //#include "reg52.h"
- #include "intrins.h"
- #include "codetab.h"
- #include "LQ12864.h"
- sbit k1=P3^0;
- sbit k2=P3^1;
- sbit k3=P3^2;
- sbit k4=P3^3;
- void main(void)
- {
- OLED_Init(); //OLED初始化
- Draw_BMP(0,0,128,8,BMP0);
- while(1)
- {
- // OLED_Fill(0xff); //屏全亮
- // delay(2000);
- // OLED_Fill(0x00); //屏全滅
- // delay(200);
- //OLED_P16x16Ch(24,0,1);
- //OLED_P16x16Ch(40,0,2);
- //OLED_P16x16Ch(57,0,3);
- //OLED_P16x16Ch(74,0,4);
- //OLED_P16x16Ch(91,0,5);
- /* for(i=0; i<7; i++)//通過點整顯示漢字 -- i表示字表數組的位置
- {
- // OLED_P16x16Ch(i*16,0,i);
- //OLED_P16x16Ch(i*16,2,i+8);
- OLED_P16x16Ch(i*16,4,i+16);
- // OLED_P16x16Ch(i*16,6,i+24);
- }
- delay(4000);
- OLED_CLS();//清屏
- /* OLED_P8x16Str(0,0,"HelTec");//第一行 -- 8x16的顯示單元顯示ASCII碼
- OLED_P8x16Str(0,2,"OLED Display");
- OLED_P8x16Str(0,4,"www8heltec8cn");
- OLED_P6x8Str(0,6,"cn.heltec@gmail8com");
- OLED_P6x8Str(0,7,"heltec8taobao8com");
- delay(4000);
- OLED_CLS(); */
-
- if(k1==0) //檢測按鍵K1是否按下
- {
- delay(100); //消除抖動 一般大約10ms
- if(k1==0) //再次判斷按鍵是否按下
- {
-
- Draw_BMP(0,0,128,8,BMP1); //led狀態取反
- }
- while(!k1); //檢測按鍵是否松開
- }
-
-
-
- if(k2==0) //檢測按鍵K1是否按下
- {
- delay(100); //消除抖動 一般大約10ms
- if(k2==0) //再次判斷按鍵是否按下
- {
-
-
- Draw_BMP(0,0,128,8,BMP2); //led狀態取反
- }
- while(!k2); //檢測按鍵是否松開
- }
-
-
- if(k3==0) //檢測按鍵K1是否按下
- {
- delay(100); //消除抖動 一般大約10ms
- if(k3==0) //再次判斷按鍵是否按下
- {
-
-
- Draw_BMP(0,0,128,8,BMP3); //led狀態取反
- }
- while(!k3); //檢測按鍵是否松開
- }
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
(03)C51例程(STC89C52).zip
(71.37 KB, 下載次數: 328)
2017-12-27 11:01 上傳
點擊文件名下載附件
51單片機按鍵控制oled顯示5張圖片 下載積分: 黑幣 -5
|