找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3639|回复: 21
收起左侧

KS0108 12864+DS3231的万年历制作

  [复制链接]
ID:1059989 发表于 2023-1-20 12:07 | 显示全部楼层 |阅读模式
前阵子看到坛友的OLED12864+DS3231的万年历制作,带农历,大字体(单片机源码+实物)

正好手里也有这种DS3231模块,就也想制作一个。但手边没有OLED 12864,就改用KS0108 12864了,同时显示屏幕也比较大些。

单片机使用STC89C52RC。

制作实物如下:

KS0108+DS3231万年历

KS0108+DS3231万年历



为了便于改造代码,对原来的代码稍做了分离处理。感谢坛友分享!

代码片段如下。附件压缩包中有完整的代码。

// Define the register command code
#define Disp_On                0x3F
#define Disp_Off        0x3E
#define Col_Add                0x40
#define Page_Add        0xB8
#define Start_Line        0xC0

#define LCD_BUS P2        //MCU P2<------> LCM

sbit LCD_DI = P0 ^ 5;                //rs, Data or Instrument Select
sbit LCD_RW = P0 ^ 6;                //Write or Read
sbit LCD_ENABLE = P0 ^ 7;        //6800 mode LCD_ENABLE single
sbit LCD_MCS = P0 ^ 2;                //CS1, Master chip LCD_ENABLE
sbit LCD_SCS = P0 ^ 3;                //CS2, Slave chip LCD_ENABLE
sbit LCD_RST = P0 ^ 4;                //Lcm reset

#define OLED_WrCmd                _WriteCmd
#define OLED_WrDat                _WriteData


//延时子程序
// STC89Cxx @11.0592MHz
void delay(uint t)
{
        uint i, j;
        for (i = 0; i < t; i++)
                for (j = 0; j < 10; j++)
                        ;
}
/*
//STC12Cxx @11.0592MHz 延时100us
void delay(uint t)
{
        uint k;
        for(k=0; k < t; k++)
        {
                unsigned char i, j;

                i = 2;
                j = 15;
                do
                {
                        while (--j);
                } while (--i);
        }
}
*/

//写命令到LCD
void _WriteCmd(uchar cCmd)
{
        LCD_DI = 0;
        LCD_RW = 0;

        LCD_BUS = cCmd;
        delay(0);
        LCD_ENABLE = 1;
        delay(0);
        LCD_ENABLE = 0;
}

//写数据到LCD
void _WriteData(uchar cData)
{
        LCD_DI = 1;
        LCD_RW = 0;

        LCD_BUS = cData;
        delay(0);
        LCD_ENABLE = 1;
        delay(0);
        LCD_ENABLE = 0;
}


Keil代码下载: 万年历 (51Hei显示正负温度版).rar (417.46 KB, 下载次数: 175)
回复

使用道具 举报

ID:673647 发表于 2023-1-22 22:28 | 显示全部楼层
谢谢分享,不知有没有原理图?
回复

使用道具 举报

ID:229641 发表于 2023-1-23 22:56 来自手机 | 显示全部楼层
可以调时间吗?
回复

使用道具 举报

ID:1059989 发表于 2023-1-28 14:36 | 显示全部楼层

有按键,可以调整时间。
回复

使用道具 举报

ID:1059989 发表于 2023-1-28 14:42 | 显示全部楼层
cwb2038 发表于 2023-1-22 22:28
谢谢分享,不知有没有原理图?

用的开发板,没画专门的原理图。但是原理图很简单,12864、按键、DS3231模块就是和单片机把相应引脚连上,具体哪些引脚在程序代码里有。12864加接一个调对比度的电位器。就可以了。
回复

使用道具 举报

ID:584814 发表于 2023-1-30 11:23 | 显示全部楼层
FrankJi 发表于 2023-1-28 14:42
用的开发板,没画专门的原理图。但是原理图很简单,12864、按键、DS3231模块就是和单片机把相应引脚连上 ...

没原理图、没仿真、没文档 ... 真麻烦你懂的
回复

使用道具 举报

ID:105115 发表于 2023-2-5 17:41 | 显示全部楼层
正在筹备一个电子时钟。 谢谢大佬分享
回复

使用道具 举报

ID:98396 发表于 2023-2-6 14:32 | 显示全部楼层
我也仿制了一套.
20230206.jpg

回复

使用道具 举报

ID:34298 发表于 2023-7-14 21:47 | 显示全部楼层
比OLED屏耐用 OLED用一年亮度就衰减了 我买的就是。感觉LCD好
回复

使用道具 举报

ID:78901 发表于 2023-7-19 21:45 | 显示全部楼层
stc89c52rc程序空间好像不够吧
回复

使用道具 举报

ID:34298 发表于 2023-7-20 21:03 来自手机 | 显示全部楼层
无字库串口液晶屏怎么改
回复

使用道具 举报

ID:1083556 发表于 2023-7-23 11:30 | 显示全部楼层
我买的就是。感觉LCD好,非常感谢
回复

使用道具 举报

ID:138707 发表于 2023-7-23 14:58 | 显示全部楼层
这个设计我最细化,赶紧去研究,,,
回复

使用道具 举报

ID:1093241 发表于 2023-10-5 19:28 | 显示全部楼层
我有TM1638不会加入到代码里   调时间,这个没有设置多个闹钟
回复

使用道具 举报

ID:611626 发表于 2023-10-6 19:48 | 显示全部楼层
yongquan 发表于 2023-10-5 19:28
我有TM1638不会加入到代码里   调时间,这个没有设置多个闹钟

仿真为啥不能计时
回复

使用道具 举报

ID:1075458 发表于 2023-10-13 16:55 | 显示全部楼层
左右分屏的都淘汰了吧
回复

使用道具 举报

ID:34298 发表于 2023-10-15 16:19 | 显示全部楼层
用串口屏怎么改程序
回复

使用道具 举报

ID:349598 发表于 2024-1-14 14:28 | 显示全部楼层
还是大屏幕好看,就是不知道功耗如何
回复

使用道具 举报

ID:71233 发表于 2024-1-15 08:31 | 显示全部楼层
sjh7366 发表于 2024-1-14 14:28
还是大屏幕好看,就是不知道功耗如何

背灯亮的时候耗电挺大的,不开背灯耗电很小。
回复

使用道具 举报

ID:860003 发表于 2024-1-17 09:13 | 显示全部楼层
没原理图,接脚定义在代码里面!要会看懂。
回复

使用道具 举报

ID:44037 发表于 2024-1-22 13:54 | 显示全部楼层
无标题.jpg
回复

使用道具 举报

ID:1021614 发表于 2024-4-23 16:29 | 显示全部楼层
赞楼主!最近想学习单片机,做一个实用的电子钟,最好用WIFI对时。先下载下来,,,谢谢!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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