找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STC8H8K64U RTC设计,1.3寸OLED显示

[复制链接]
跳转到指定楼层
楼主
ID:118322 发表于 2023-5-11 14:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STC出了带RTC功能的单片机,因此特地来试试STC8H8K64U内部RTC的精度如何,经过验证一天会快个4秒,用的外部32768晶振,三毛钱一个,没用示波器看频率的精度。板子用的1200ma 3.7V电池供电,需要每天都充电,于是干脆直接用外部电源供电了。  
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:118322 发表于 2023-5-11 14:28 | 只看该作者
系统功能包括显示年、月、日、时、分、秒、星期以及温度,可以用按键调整时间日期,红外遥控开关显示,因为OLED一直显示影响寿命,晚上可以关闭屏幕。

51hei图片_20230511142728.jpg (208.91 KB, 下载次数: 25)

51hei图片_20230511142728.jpg
回复

使用道具 举报

板凳
ID:118322 发表于 2023-5-11 14:55 | 只看该作者
附原理图及主函数代码
void main()
{       
    P_SW2 |= 0x80;
        P0M0=0x00;        P0M1=0x00;          //设置为双向IO
        P1M0=0x02;        P1M1=0x08;          //P13设置为ADC输入,P11设置为推挽输出
        P2M0=0x00;        P2M1=0x00;          //设置为双向IO
        P3M0=0x20;        P3M1=0xa0;          //P35设置为开漏输出,P37设置为高阻输入
        P4M0=0x00;        P4M1=0x00;          //设置为双向IO
        P5M0=0x00;        P5M1=0x00;          //设置为双向IO  
        P6M0=0x00;        P6M1=0x00;          //设置为双向IO
        P7M0=0x00;        P7M1=0x00;          //设置为双向IO
        P0=1;P12=1;P2=1;P34=1;P36=1;P4=1;P5=1;P6=1;P7=1;
        P1IE=0x37;               //关闭外部晶振&P13的数字输入
        P3PU=0x7f;                                 //打开P30~P36内部上拉电阻
        AUXR = 0xc0;    //Timer0&Timer1 set as 1T, 16 bits timer auto-reload,
        cnt_1ms = 10000 / 1000;
        adc_init();                                 //ADC初始化
        tm0_init();                                 //TIMER0初始化
        tm1_init();                                 //TIMER1初始化
        tm3_init();
        RTC_config();                         //RTC初始化
        CMP_config();                         //比较器初始化
        OLED_Init();                        //初始化OLED
        OLED_Clear();       
        DisplayRTC();
        while(1)
        {                 
                WKTCH=0xff;
                WKTCL=0xfe;
                Ext_Vcc_Det();  //每15秒钟检测一次外部电源,如果外部电源连接则工作,外部电源断开则进入休眠模式
                CaculateWeekDay(YEAR,MONTH,DAY);
                if(B_1s)
        {
            B_1s = 0;
                        DisplayRTC();
        }
                if(B_1ms)   //1ms到
        {
            B_1ms = 0;
            if(++msecond >= 500)    //500ms到
            {
                msecond = 0;
                                if(Get_ADC12bitResult(3)<4096)
                                OLED_ShowNum(96,6,NTC_Lookup(Get_ADC12bitResult(3)),2,16,16);
                                else OLED_ShowString(96,6,"--",16);                                       
                        }
                }       
                if(B1_1ms)
                {
                        B1_1ms = 0;
            
            if(B_IR_Press)      //检测到收到红外键码
            {
                B_IR_Press = 0;               
                LED8[0] = (u8)((UserCode >> 12) & 0x0f);    //用户码高字节的高半字节
                LED8[1] = (u8)((UserCode >> 8)  & 0x0f);    //用户码高字节的低半字节
                LED8[2] = (u8)((UserCode >> 4)  & 0x0f);    //用户码低字节的高半字节
                LED8[3] = (u8)(UserCode & 0x0f);            //用户码低字节的低半字节
                LED8[6] = IR_code >> 4;
                LED8[7] = IR_code & 0x0f;
            }
                        if(LED8[6]==4&&LED8[7]==5) OLED_Display_Off();
                        if(LED8[6]==4&&LED8[7]==6) OLED_Display_On();
                }
                key_scan();
                //OLED_Clear();
                //delay_ms(500);
                //OLED_DrawBMP(0,0,128,8,BMP1);  //图片显示(图片显示慎用,生成的字表较大,会占用较多空间,FLASH空间8K以下慎用)
                //delay_ms(500);
                //OLED_DrawBMP(0,0,128,8,BMP2);
                //delay_ms(500);
        }          
       
}

STC8 RTC BOARD.pdf

33.73 KB, 下载次数: 15, 下载积分: 黑币 -5

回复

使用道具 举报

地板
ID:526108 发表于 2023-5-11 17:01 | 只看该作者
我也做过这种时钟,200mah大概能用24小时,你这个有点费电了啊
【多功能时钟-200mah测试功耗】https://www.bilibili.com/video/B ... 45f65f1526041331823
回复

使用道具 举报

5#
ID:118322 发表于 2023-5-12 08:40 | 只看该作者
qq624353765 发表于 2023-5-11 17:01
我也做过这种时钟,200mah大概能用24小时,你这个有点费电了啊
【多功能时钟-200mah测试功耗】https://www ...

1200ma升压到5V就只有900ma了,系统电流30多ma,也就是只能用20多小时,所以每天都得充电。
回复

使用道具 举报

6#
ID:118322 发表于 2023-5-12 08:42 | 只看该作者
qq624353765 发表于 2023-5-11 17:01
我也做过这种时钟,200mah大概能用24小时,你这个有点费电了啊
【多功能时钟-200mah测试功耗】https://www ...

忘了还有四个电源指示灯也要用10ma
回复

使用道具 举报

7#
ID:688008 发表于 2023-5-18 09:30 | 只看该作者
ohshit 发表于 2023-5-12 08:42
忘了还有四个电源指示灯也要用10ma

可以用高亮的,只要0.2ma就够看了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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