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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6894|回復: 11
打印 上一主題 下一主題
收起左側

我做的OLED單片機萬年歷,希望對你有幫助

  [復制鏈接]
跳轉到指定樓層
樓主
       網上看到很多人做單片機萬年歷的,但是OLED萬年歷的很少做,放假這幾天沒事干,做著玩一玩,累,很多東西都要自己重頭做起,這個例程只是一個初步,后面還有很多東西沒有做進來,我的OLED是IIC接口的,0.96寸的雙色屏.晶振是11.0592
M的.網上的買的時鐘模塊也沒有到貨.后面會加上,晶振應該用12,或者24M的.時間會更準確.按鍵調時也沒有加,我準備用
遙控器.就這個簡單的程序就花了近4K的程序空間,單片機用的STC12C5404,后面換成STC12C5412,不知道寫不寫得下.下面的跟貼有移植到STM32的圖片
如果有不懂的,或者調試中遇到困難,可以加我QQ或者we信QQ112001198
本人從事單片機30多年,可以幫你輕松的進階STM32.


話不多說,上程序:
#include "codetab.h"
#include "LQ12864.h"
unsigned char a=0,b=0,c=0,d=0,e=0,f=0,g=0;
unsigned int l=0;
unsigned int i=31500; //這個值校時,12小時制 比如8.39分,8*3600+39*60+秒數
bit disp=0;
void Timer0Init()//定時一秒,完成后進行中斷
{
        TMOD|=0X01;//0000 0001方式一
        TH0=0X4C;        //給定時器賦初值,定時50ms
        TL0=0X00;        
        ET0=1;//打開定時器0中斷允許
        EA=1;//打開總中斷
        TR0=1;//打開定時器
                TF0=0;                        
}

void display()
{
                OLED_P16x16Ch(0,2,f*2);
                OLED_P16x16Ch(0,4,f*2+1); //0
                OLED_P16x16Ch(16,2,e*2);
                OLED_P16x16Ch(16,4,e*2+1);//1
                OLED_P16x16Ch(32,2,32);
                OLED_P16x16Ch(32,4,33);//:
                OLED_P16x16Ch(48,2,d*2);
                OLED_P16x16Ch(48,4,d*2+1);//2
                OLED_P16x16Ch(64,2,c*2);
                OLED_P16x16Ch(64,4,c*2+1);//3
                OLED_P16x16Ch(80,2,32);
                OLED_P16x16Ch(80,4,33);//:
                OLED_P16x16Ch(95,2,b*2);
                OLED_P16x16Ch(95,4,b*2+1);//4
                OLED_P16x16Ch(111,2,a*2);
                OLED_P16x16Ch(111,4,a*2+1);//5;
}

void main(void)
{
//        unsigned char i;
//        while(1){
//    SCL=!SCL;
//        delay(1000);//1000是257ms;
//    SDA=!SDA;}
    Timer0Init();  
    ET0=1;
    EA=1;
        delay(2000);
//        OLED_CLS();
        OLED_Init(); //OLED初始化
        OLED_Fill(0xff); //屏全亮
        delay(2000);
        OLED_Fill(0x00); //屏全滅
        delay(200);
        //初始化時間顯示區
        while(1)
        {

                OLED_P8x16Str(8,0,"2020");//第一行 -- 8x16的顯示單元顯示ASCII碼
                OLED_P16x16Ch(40,0,34);//第一行第三列顯示年
                OLED_P8x16Str(56,0,"02");
                OLED_P16x16Ch(74,0,35);        //顯示月
                OLED_P8x16Str(90,0,"02");
                OLED_P16x16Ch(106,0,36);        //顯示日
                if(disp)
                {
                   display();
                   disp=0;
                }

                OLED_P16x16Ch(0,6,37);//星
                OLED_P16x16Ch(16,6,38);//期
                OLED_P16x16Ch(32,6,36);//日
                OLED_P16x16Ch(48,6,20);//空
                OLED_P16x16Ch(63,6,39);//正
                OLED_P16x16Ch(79,6,35);//月
                OLED_P16x16Ch(95,6,40);//初
                OLED_P16x16Ch(111,6,29);//九
                while(disp)
                {
                   display();
                   disp=0;
                }                                                  

        }
}

void Timer0() interrupt 1 using 1
{
        TF0=0;
    TH0=0X4C; //50ms中斷一次      
    TL0=0X00;
        g++;
        disp=1;
        if(g<20)return;
    else {i++;g=0;}
    if(i<10)
      {//
        a=i;
      }//
     else if(i>=10&&i<60)
      {//
        a=i%10;
        b=i/10;
      }//
     else if(i>=60&&i<600)
      {//
                        
        c=i/60;
        b=(i-60*c)/10;
        a=i-60*c-10*b;
      }//
     else if(i>=600&&i<3600)
      {//
                        
        d=i/600;
        c=(i-600*d)/60;
        b=(i-600*d-60*c)/10;
        a=i-600*d-60*c-10*b;
      }//
     else if(i>=3600&&i<43200)
     {//
        if(i>=36000)
        {
           l=36000;f=1;//表示有進位
        } //
        e=(i-l)/3600;
        d=(i-l-3600*e)/600;
        c=(i-l-3600*e-600*d)/60;
        b=(i-l-3600*e-600*d-60*c)/10;
        a=i-l-3600*e-600*d-60*c-10*b;
    }//點亮小時,十二小時制。
    else if(i==43200)
             {i=0;f=0;a=0;b=0;c=0;d=0;e=0;}
   disp=1;
}

全部資料51hei下載地址:
OLED12864-萬年歷12小時制.zip (81.16 KB, 下載次數: 213)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏16 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:614068 發表于 2020-2-5 18:22 | 只看該作者
謝謝分享,值得學習
回復

使用道具 舉報

板凳
ID:375003 發表于 2020-2-5 22:21 | 只看該作者
本帖最后由 guangshi_wq 于 2020-2-9 22:32 編輯

成功移值到STM32上,因為上面有一個RTC模塊,時間一定很精準,雖然沒有電池,我從電腦上取下來的時候,先保存時間到EEPROM,修改時間就不用菜單了,直接
用串口發命令修改,比如:TIME 1230,DATE 0205,YEAR 2020反正一年只用修改
一次.別的都能算出來.      我準備將程序再優化一下,寫入4K的空間,將字模全部寫入片上EEPROM
不常用的程序段也寫入EEPROM.12K的空間不能浪費
后繼增加語音報時功能不用語音模塊
想出一個更簡單的算法,讓單片機飛起來       

     這是我以前用的點陣屏96年Made in Hongkong
主控HD61830A顯存是屏點陣的8倍可以輕松實現圖片滾動
掃描方式和以前電視機的一樣橫向逐行.
控制用匯編,單片機不帶rom寫入rom用的是ALL03編程器
擦除程序用紫外光照,編程器和電腦相連用ISA卡
編程器的價格是電腦的1/2,2K多.
       



背面.JPG (60.76 KB, 下載次數: 78)

以前用的屏背面

以前用的屏背面

正面.JPG (24.4 KB, 下載次數: 89)

以前用的屏正面

以前用的屏正面

IMG_0408.JPG (2.16 MB, 下載次數: 107)

IMG_0408.JPG
回復

使用道具 舉報

地板
ID:687144 發表于 2020-2-6 19:56 | 只看該作者
不錯,謝謝!
回復

使用道具 舉報

5#
ID:208733 發表于 2020-2-7 23:40 | 只看該作者
等一切都恢復正常后再入手
回復

使用道具 舉報

6#
ID:634466 發表于 2020-2-8 17:47 | 只看該作者
會單片機就是好!
回復

使用道具 舉報

7#
ID:23606 發表于 2020-2-8 22:36 | 只看該作者
好資料,謝謝分享
回復

使用道具 舉報

8#
ID:375003 發表于 2020-2-9 15:05 | 只看該作者
本帖最后由 guangshi_wq 于 2020-3-8 16:01 編輯

調整時間改一下
這樣改
#define ADJTIME  11*3600+58*60        //這是11點58分.
u16 UNIXtime=ADJTIME;//這個值調時間12小時制 比如8.39分,8*3600+39*60+秒數

ALL03接口板.JPG (1.19 MB, 下載次數: 95)

ALL03編程器與電腦的接口

ALL03編程器與電腦的接口
回復

使用道具 舉報

9#
ID:375003 發表于 2020-2-10 09:00 | 只看該作者
本帖最后由 guangshi_wq 于 2020-2-10 14:15 編輯

如果有意者可以看看我做了部分優化的結果
http://www.zg4o1577.cn/bbs/dpj-179602-1.html這是我優化的操作系統,里面有圖片.
http://www.zg4o1577.cn/bbs/dpj-179604-1.html
如果想了解NEC協議的朋友看看這里;
http://www.zg4o1577.cn/bbs/dpj-128955-1.html
如果想了解開關電源的朋友看看這里
http://www.zg4o1577.cn/bbs/forum.p ... mp;page=1#pid528876
如果喜歡玩數碼管的朋友看看這里;
http://www.zg4o1577.cn/bbs/dpj-179339-1.html
如果你是還沒有入門看看這里
http://www.zg4o1577.cn/bbs/dpj-129124-4.html

回復

使用道具 舉報

10#
ID:315554 發表于 2020-3-10 16:39 | 只看該作者
留印,謝謝樓主,搭個橋顯示看下,
回復

使用道具 舉報

11#
ID:102963 發表于 2020-4-7 15:46 | 只看該作者
確實還有很多沒寫進來,只寫了個時間界面。年月日星期農歷,都是寫的字,根本不是參數,不能修改!!!
回復

使用道具 舉報

12#
ID:202824 發表于 2021-3-6 13:41 | 只看該作者
多謝樓主。正在找OLED顯示方面的資料。終于找到了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品一区在线观看 | 国产欧美日韩精品在线观看 | 欧美综合一区二区 | 免费视频二区 | www.亚洲| www狠狠干 | 亚洲精品久 | 成人国产精品久久 | 成人免费视频 | 国产精品视屏 | 国产视频一区二区在线观看 | 国产在线二区 | 国产成人综合在线 | 91精品国产91久久久久久密臀 | 国产成人精品一区二区三区四区 | 亚洲协和影视 | 韩日一区二区 | 伊人二区 | 日韩av一区二区在线观看 | 三区在线观看 | 久久久99精品免费观看 | 国产91一区 | 欧美激情精品久久久久久变态 | 精品一区二区三区在线观看 | 久久久久国产精品 | 日韩在线观看网站 | 在线视频 亚洲 | 精品福利在线视频 | 午夜影院 | 亚洲国产视频一区二区 | 精品一区二区三区91 | 99久久国产综合精品麻豆 | 欧美高清视频在线观看 | 日韩免费在线 | 欧洲在线视频 | 99久久99| 国产最新视频在线 | 中文字幕亚洲精品 | 国产精品爱久久久久久久 | 亚洲欧美一区二区三区在线 | 二区三区视频 |