标题: KS0108 12864+DS3231的万年历制作 [打印本页]

作者: FrankJi    时间: 2023-1-20 12:07
标题: KS0108 12864+DS3231的万年历制作
前阵子看到坛友的OLED12864+DS3231的万年历制作,带农历,大字体(单片机源码+实物)

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

单片机使用STC89C52RC。

制作实物如下:



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

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

// 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, 下载次数: 215)


作者: cwb2038    时间: 2023-1-22 22:28
谢谢分享,不知有没有原理图?
作者: 触景情伤    时间: 2023-1-23 22:56
可以调时间吗?
作者: FrankJi    时间: 2023-1-28 14:36
触景情伤 发表于 2023-1-23 22:56
可以调时间吗?

有按键,可以调整时间。
作者: FrankJi    时间: 2023-1-28 14:42
cwb2038 发表于 2023-1-22 22:28
谢谢分享,不知有没有原理图?

用的开发板,没画专门的原理图。但是原理图很简单,12864、按键、DS3231模块就是和单片机把相应引脚连上,具体哪些引脚在程序代码里有。12864加接一个调对比度的电位器。就可以了。
作者: man1234567    时间: 2023-1-30 11:23
FrankJi 发表于 2023-1-28 14:42
用的开发板,没画专门的原理图。但是原理图很简单,12864、按键、DS3231模块就是和单片机把相应引脚连上 ...

没原理图、没仿真、没文档 ... 真麻烦你懂的
作者: hqboy    时间: 2023-2-5 17:41
正在筹备一个电子时钟。 谢谢大佬分享
作者: tnovicet    时间: 2023-2-6 14:32
我也仿制了一套.



作者: fancunwu    时间: 2023-7-14 21:47
比OLED屏耐用 OLED用一年亮度就衰减了 我买的就是。感觉LCD好
作者: fsj5098    时间: 2023-7-19 21:45
stc89c52rc程序空间好像不够吧
作者: fancunwu    时间: 2023-7-20 21:03
无字库串口液晶屏怎么改
作者: 15699183053    时间: 2023-7-23 11:30
我买的就是。感觉LCD好,非常感谢
作者: ziba108    时间: 2023-7-23 14:58
这个设计我最细化,赶紧去研究,,,
作者: yongquan    时间: 2023-10-5 19:28
我有TM1638不会加入到代码里   调时间,这个没有设置多个闹钟

作者: 宏达工控    时间: 2023-10-6 19:48
yongquan 发表于 2023-10-5 19:28
我有TM1638不会加入到代码里   调时间,这个没有设置多个闹钟

仿真为啥不能计时
作者: huangzx    时间: 2023-10-13 16:55
左右分屏的都淘汰了吧
作者: fancunwu    时间: 2023-10-15 16:19
用串口屏怎么改程序
作者: sjh7366    时间: 2024-1-14 14:28
还是大屏幕好看,就是不知道功耗如何
作者: lmn2005    时间: 2024-1-15 08:31
sjh7366 发表于 2024-1-14 14:28
还是大屏幕好看,就是不知道功耗如何

背灯亮的时候耗电挺大的,不开背灯耗电很小。
作者: stman    时间: 2024-1-17 09:13
没原理图,接脚定义在代码里面!要会看懂。
作者: by64214    时间: 2024-1-22 13:54


作者: Frank660405    时间: 2024-4-23 16:29
赞楼主!最近想学习单片机,做一个实用的电子钟,最好用WIFI对时。先下载下来,,,谢谢!
作者: dsbk123    时间: 2025-1-3 16:53
楼主老师好,附件下载解压后编译显示82个错误。


作者: Moucen    时间: 2025-1-4 18:07
感谢楼主分享
作者: dsbk123    时间: 2025-1-9 12:35
原程序更换为“stc15.h”头文件后所有错误消失。
作者: keemee    时间: 2025-2-18 09:23
fancunwu 发表于 2023-7-20 21:03
无字库串口液晶屏怎么改

发送数据时,把1个字节拆分成8个位逐位发出去
作者: dsbk123    时间: 2025-5-19 14:27
感谢楼主开源无私奉献,我用Proteus 8制作了一个仿真送给大家。压缩文件包含仿真图和HEX文件。



KS0108 STC89C52 DS3231仿真.rar (26.38 KB, 下载次数: 0)




作者: joyb    时间: 2025-5-22 08:14
感谢27楼的仿真
作者: daye520    时间: 2025-5-27 08:39
万年历的时间还准确吧
作者: daye520    时间: 2025-5-29 10:24
现在这个还有人在用吧,时间还准确吧
作者: dsbk123    时间: 2025-5-30 13:24
我按照楼主的程序稍微修改后做了一个,5V供电情况下走时很准,两个多月大约快了1秒。
单片机:STC8H1K28-361-SOP28,1.65元一片,不需要晶振和复位电路。
时钟芯片:DS3231SN-SOP16,散装全新3.6元一片。
液晶屏:KS0108,3.2吋,不带字库,20元一片。














作者: aking991    时间: 2025-6-3 08:31
真不错,可以下载学习学习




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1