标题: 分享STC12C5A60S2单片机+LCD19624大屏万年历农历生肖节气节日显示+闹钟+温湿度+小台灯 [打印本页]

作者: 1860774xxxx    时间: 2021-3-2 22:21
标题: 分享STC12C5A60S2单片机+LCD19624大屏万年历农历生肖节气节日显示+闹钟+温湿度+小台灯
实物展示

1,开灯与关灯
小台灯功率不大 所以没有加入调光
需要大功率调光台灯的则要改台灯电路



2,背光关显示状态
小台灯打开状态下 屏背光灯常开
其他状态下 如果大约30秒内无操作 则自动关背光灯



3,背光灯支持自动调光
与手机一样 弱暗光下 屏背光柔和不刺眼




4,节日节气生肖显示
农历节日 公历节日 24节气 生肖
若遇到节日重叠 则轮番显示 无节日则显示生肖






5,时钟设置

时分秒年月日包括闹钟字体反白设置


6,其他 温湿显示 小动物轮流显示
带字体显示微调与屏背光微调 调出舒服视觉



7,仿真电路图
因为使用STC12C5A60S2  仿真温湿显示无数据
请勿使用89C52来做 跑得慢估计够呛的 反正仿真呛的很 也不知道是不是我的电脑太菜了
提示:仿真版本8.9 低于8.9都打不开的


9,部分程序 写得不好 请多提点
#include <STC12C5A60S2.H>  //此文件中定义了单片机的一些特殊功能寄存器
#include "Delay.h"         //全局通用延时头文件
#include "19264ks0108ZK.h" //19264屏字库
#include "19264ks0108.h"   //19264屏驱动
#include "ds3231.h"        //ds3231时钟芯片驱动
#include "rqzh.h"          //日期转换
#include "dht11.h"         //DHT11湿度温度驱动
#define uchar unsigned char  //宏定义无符号字符形数据类型进行声明定义 定义名称uchar 所占位数8位 范围0~255
#define uint unsigned int   //宏定义无符号整形数据类型进行声明定义 定义名称uint 所占位数16位 范围0~65535
sbit LED_NO=P1^7;  //LEDD开关按键
sbit SJTZ_k1=P1^6; //调整时钟按键
sbit SJTZ_k2=P1^5; //调整时钟加按键
sbit SJTZ_k3=P1^4; //调整时钟减按键
sbit SJTZ_k4=P1^3; //调整时钟OK按键
sbit fmq=P1^2;    //闹钟蜂鸣器引脚
sbit LED=P3^7;    //LEDD灯引脚
sbit pingbg=P3^6; //屏背光引脚
sbit nz_KG=P2^0;  //闹钟开关引脚

uint pingbgjs; //用于屏背光自动控制定时计数标志
uchar SJTZ=0;  //调整时钟标志
uchar jia=0;   //调整时钟或闹钟加标志
uchar jian=0;  //调整时钟或闹钟减标志
uchar fb_nian,fb_yue,fb_ri,fb_shi,fb_fen,fb_nz1_shi,fb_nz1_fen;//调整时钟反白标志
uchar NZ_xl=0;  //闹钟状态标志 NZ_xl=0不响铃 NZ_xl=1响铃
static uint D=0,L=0; //声明定时器static静态变量标志 用于某些功能计数
/*按键程序*/
void anjian()
{
if(LED_NO==0||SJTZ_k1==0||SJTZ_k2==0||SJTZ_k3==0||SJTZ_k4==0) //任意键开屏背光
{
  if(pingbg==1)pingbg=0;   //屏背光开
  pingbgjs=0; //定时计数清零
}

if(pingbg==1||LED==0)  //当背光关闭或LED台灯打开时关闭定时器
{                      //即在LED台灯打开下屏背光常亮 直至LED台灯关闭为止定时计数又开始重新计数
  TR0 = 0;              
  pingbgjs=0; //定时计数清零
}
  else  TR0 = 1;  //当背光打开时定时器开始计数 用于屏背光自动关闭控制   
  if(pingbg==1)SJTZ=0;  //如果在屏背光关闭后 强行退出时钟设置
  if(LED==0&&(SJTZ==0||SJTZ==1))SJTZ=1;  

if(LED_NO==0)    //LED台灯开关
{
  Delay_ms(10); //按键消抖延时10微秒
  if(LED_NO==0)
  {
   LED=~LED;
  }
   while(!LED_NO); //检测按键是否松开
}

if(SJTZ_k1==0)   //时钟调整
{
  Delay_ms(10);  //按键消抖延时10微秒
  if(SJTZ_k1==0)
  {
   SJTZ++;
   if(SJTZ==9)SJTZ=2;
  }
   while(!SJTZ_k1); //检测按键是否松开
}

if(SJTZ_k2==0)    //时钟调整加
{            
   jia=1;          //设置时钟+1
    Delay_ms(150); //延时一段时间 如果还没松开 继续加
}
else(jia=0);

if(SJTZ_k3==0)    //时钟调整减
{
   jian=1;         //设置时钟-1
  Delay_ms(150);  //延时一段时间 如果还没松开 继续减
}
else(jian=0);


if(SJTZ_k4==0&&NZ_xl==0)   //完成退出
{
  if(SJTZ!=0&&SJTZ!=1)
  {
    Disp_16x16(8,0,0,ZM_16x16[22]);
     Disp_16x16(9,0,0,ZM_16x16[23]);
     Disp_16x16(10,0,0,ZM_16x16[24]);
  }
  SJTZ=1;
}

if(SJTZ_k4==0&&NZ_xl==1||SJTZ!=0&&SJTZ!=1||nz_KG==1)   //如果闹钟响时 此按键可以关闭闹钟响声
{
  fmq=1;
  NZ_xl=0;    //关闭响铃
  TR1 = 0;    //关闭定时器1
   D=0;        
  L=0;
}
}
/*时钟设置程序*/
void SZSZ()
{
if(SJTZ==0||SJTZ==1)
{
  Ds3231ReadTime(); //运行时钟数据
}
else                //如果SJTZ!=0时 证明进入了时钟时钟
{
   Ds3231Init();     //停止时钟 调整时钟数据写入ds3231
  rilijis();        //读取日历自动计算函数
}

if(SJTZ==2)
{
   fb_fen=1;
  if(jia==1)if(fen<59)fen=fen+1;else(fen=0);  //调整分+
   if(jian==1)if(fen>0)fen=fen-1;else(fen=59); //调整分-1
}
else(fb_fen=0);

if(SJTZ==3)
{
   fb_shi=1;
  if(jia==1)if(shi<23)shi=shi+1;else(shi=0);  //调整时+1
   if(jian==1)if(shi>0)shi=shi-1;else(shi=23); //调整时-1
}
else(fb_shi=0);

if(SJTZ==4)
{
   fb_ri=1;
  if(yue!=2&&yue_dx==0&&jia==1)if(ri<31)ri=ri+1;else(ri=1);  //调整日+1
   if(yue!=2&&yue_dx==0&&jian==1)if(ri>1)ri=ri-1;else(ri=31); //调整日-1
            /*4,6,9,11月只有30天 为小月*/
   if(yue!=2&&yue_dx==1&&jia==1)if(ri<30)ri=ri+1;else(ri=1); //调整日+1
   if(yue!=2&&yue_dx==1&&jian==1)if(ri>1)ri=ri-1;else(ri=30); //调整日-1
      
       /*...如果是闰年只有29天.....*/      
   if(yue==2&&nian_r==0&&jia==1)if(ri<29)ri=ri+1;else(ri=1); //调整日+1
   if(yue==2&&nian_r==0&&jian==1)if(ri>1)ri=ri-1;else(ri=29); //调整日-1
      
            /*....如果是平年只有28天.....*/
   if(yue==2&&nian_r==1&&jia==1)if(ri<28)ri=ri+1;else(ri=1); //调整日+1
   if(yue==2&&nian_r==1&&jian==1)if(ri>1)ri=ri-1;else(ri=28); //调整日-1
}
else(fb_ri=0);

if(SJTZ==5)
{
   fb_yue=1;
  if(jia==1)if(yue<12)yue=yue+1;else(yue=1);  //调整月+1
   if(jian==1)if(yue>1)yue=yue-1;else(yue=12); //调整月-1
}
else(fb_yue=0);

if(SJTZ==6)
{
   fb_nian=1;
  if(jia==1)if(nian<99)nian=nian+1;else(nian=0);  //调整年+1
   if(jian==1)if(nian>0)nian=nian-1;else(nian=99); //调整年-1
}
else(fb_nian=0);

/*............以下是闹钟设置函数....................*/
if(SJTZ==7)                                    
{
  fb_nz1_fen=1;
  if(jia==1)if(nz1_fen<59)nz1_fen=nz1_fen+1;else(nz1_fen=0);  //闹钟1钟分+1
    if(jian==1)if(nz1_fen>0)nz1_fen=nz1_fen-1;else(nz1_fen=59); //闹钟钟分-1
}
else (fb_nz1_fen=0);

if(SJTZ==8)                                   
{
  fb_nz1_shi=1;
  if(jia==1)if(nz1_shi<23)nz1_shi=nz1_shi+1;else(nz1_shi=0);  //闹钟1时加+1
    if(jian==1)if(nz1_shi>0)nz1_shi=nz1_shi-1;else(nz1_shi=23); //闹钟时-1
}
else (fb_nz1_shi=0);
}
/*农历生肖其他节日--------------------------------------------------------------------*/
void jshs()
{
nonglixs();    //显示农历
jiqijs();      //节气计算
nonglijrjs();  //农历节日计算
gljr();       //公历节日计算
  
  if(jieqijs!=0&&nljs==0&&gljrjs==0)    //如果当天只有节气 生肖与节气轮番显示
  {
   if(miao>=0&&miao<30)shengxiaoxs();//显示生肖
   if(miao>=30&&miao<=59)jieqixs();   //显示节气
  }

else if(jieqijs==0&&nljs!=0&&gljrjs==0)  //如果当天只有农历节日 生肖与节气轮番显示
  {
  if(miao>=0&&miao<30)shengxiaoxs();  //显示生肖
  if(miao>=30&&miao<=59)nonglijrxs();  //农历节日显示
}

else if(jieqijs==0&&nljs==0&&gljrjs!=0)  //如果当天只有公历节日 生肖与节气轮番显示
{
  if(miao>=0&&miao<30)shengxiaoxs();  //显示生肖
  if(miao>=30&&miao<=59)gljxs();      //公历节日显示
}

else if(jieqijs!=0&&nljs!=0&&gljrjs==0) //如果当天同时有节气农历节日  生肖与农历节日与节气轮番显
{
  if(miao>=0&&miao<20)shengxiaoxs();  //显示生肖
  if(miao>=20&&miao<40)jieqixs();   //显示节气
  if(miao>=40&&miao<=59)nonglijrxs();  //农历节日显示  
}

else if(jieqijs==0&&nljs!=0&&gljrjs!=0) //如果当天同时有农历节日公历节日  农历节日与公历节日轮番显
{
  if(miao>=0&&miao<20)shengxiaoxs();  //显示生肖
  if(miao>=20&&miao<40)nonglijrxs();  //农历节日显示
  if(miao>=40&&miao<=59)gljxs();      //公历节日显示  
}

else if(jieqijs!=0&&nljs==0&&gljrjs!=0) //如果当天同时有生肖公历节日  生肖与公历节日轮番显
{
  if(miao>=0&&miao<20)shengxiaoxs();  //显示生肖
  if(miao>=20&&miao<40)jieqixs();    //显示节气
  if(miao>=40&&miao<=59)gljxs();     //公历节日显示  
}

else if(jieqijs!=0&&nljs!=0&&gljrjs!=0) //如果当天同时有生肖农历节日公历节日  生肖与农历与公历节日轮番显
{
  if(miao>=0&&miao<15)shengxiaoxs();  //显示生肖
  if(miao>=15&&miao<30)jieqixs();    //显示节气
  if(miao>=30&&miao<45)nonglijrxs();  //农历节日显示
  if(miao>=45&&miao<=59)gljxs();     //公历节日显示
}
else shengxiaoxs(); //如果没有其他节日只显示生肖
}
/*闹钟相关--------------------------------------------------------------------*/
void naozhong()
{
if(nz_KG==0||(SJTZ!=0&&SJTZ!=1))Disp_16x16(7,0,0,ZM_16x16[21]); //显示闹钟图标
else Disp_16x16(7,0,0,ZM_16x16[0]);
  
if((SJTZ!=0&&SJTZ!=1))                              //显示闹钟            
{
  Disp_8x16(16,0,fb_nz1_shi,ZM_8x16[nz1_shi/10]);   //
  Disp_8x16(17,0,fb_nz1_shi,ZM_8x16[nz1_shi%10]);  //闹钟时
   Disp_8x16(18,0,0,ZM_8x16[15]);
  Disp_8x16(19,0,fb_nz1_fen,ZM_8x16[nz1_fen/10]);   //
  Disp_8x16(20,0,fb_nz1_fen,ZM_8x16[nz1_fen%10]);  //闹钟分
   Disp_8x16(21,0,0,ZM_8x16[16]);
}

if(shi==nz1_shi&&fen==nz1_fen&&miao==0&&nz_KG==0) //闹钟对比
{
  TR1 = 1;    //打开定时器1
  NZ_xl=1;    //NZ_xl=1响铃
}
}
/*主函数--------------------------------------------------------------------*/
void main()//无返回值主函数
{
TMOD = 0x11; //定时器0与定时器1打开

  TH0 = 0x0D1;
  TL0 = 0x20; //给定时器0赋初值,定时1ms

TH1 = 0x0D1;
  TL1 = 0x20; //给定时器1赋初值,定时1ms

  ET0 = 1;    //打开定时器0中断允许
  TR0 = 1;    //打开定时器0

ET1 = 1;    //打开定时器1中断允许
  //TR1 = 1;    //打开定时器1

EA = 1;     //打开总中断

pingbg=0;   //刚通电屏背光开
SJTZ=1;
LCD19264AInit();  //LCD19264A初始化
ClearDisplay();   //LCD19264A清屏
zhoucqh();       //DS3231芯片初次通电时钟初始化
  while(1)
{
  anjian(); //按键程序
  SZSZ();   //时钟设置程序
  jshs();   //农历生肖其他节日显示
  naozhong();//闹钟相关
  
  Disp_8x16(0,0,fb_nian,ZM_8x16[2]);       //
  Disp_8x16(1,0,fb_nian,ZM_8x16[0]);       //
  Disp_8x16(2,0,fb_nian,ZM_8x16[nian/10]); //
  Disp_8x16(3,0,fb_nian,ZM_8x16[nian%10]); //年
  Disp_8x16(4,0,0,ZM_8x16[10]);      //-
  Disp_8x16(5,0,fb_yue,ZM_8x16[yue/10]);  //
  Disp_8x16(6,0,fb_yue,ZM_8x16[yue%10]);  //月
  Disp_8x16(7,0,0,ZM_8x16[10]);      //-
  Disp_8x16(8,0,fb_ri,ZM_8x16[ri/10]);   //
  Disp_8x16(9,0,fb_ri,ZM_8x16[ri%10]);   //日
  
   Disp_16x32(0,8,fb_shi,ZM_16x32[shi/10]);  //
   Disp_16x32(1,8,fb_shi,ZM_16x32[shi%10]);  //时
  Disp_16x32(2,8,0,ZM_16x32[10]);      //:
  Disp_16x32(3,8,fb_fen,ZM_16x32[fen/10]);  //
   Disp_16x32(4,8,fb_fen,ZM_16x32[fen%10]);  //分
  Disp_16x32(5,8,0,ZM_16x32[10]);      //:
   Disp_16x32(6,8,0,ZM_16x32[miao/10]); //
   Disp_16x32(7,8,0,ZM_16x32[miao%10]); //秒
  
  Disp_16x16(5,3,0,ZM_16x16[18]); //星
  Disp_16x16(6,3,0,ZM_16x16[19]); //期
    switch(zhou)
    {
     case 1:Disp_16x16(7,3,0,ZM_16x16[1]);break;  //星期一
     case 2:Disp_16x16(7,3,0,ZM_16x16[2]);break;  //星期二
     case 3:Disp_16x16(7,3,0,ZM_16x16[3]);break;  //星期三
     case 4:Disp_16x16(7,3,0,ZM_16x16[4]);break;  //星期四
     case 5:Disp_16x16(7,3,0,ZM_16x16[5]);break;  //星期五
     case 6:Disp_16x16(7,3,0,ZM_16x16[6]);break;  //星期六
     case 7:Disp_16x16(7,3,0,ZM_16x16[17]);break; //星期天
    }
   DHT11_receive();          //读取湿度温度函数
  Disp_8x16(18,1,0,ZM_8x16[11]);
  Disp_8x16(20,1,0,ZM_8x16[RH/10]);      //湿度
  Disp_8x16(21,1,0,ZM_8x16[RH%10]);
  Disp_8x16(22,1,0,ZM_8x16[12]);
  
  Disp_8x16(18,2,0,ZM_8x16[13]);
  Disp_8x16(20,2,0,ZM_8x16[TH/10]);      //温度
  Disp_8x16(21,2,0,ZM_8x16[TH%10]);
  Disp_8x16(22,2,0,ZM_8x16[14]);  
  
  if(LED==0)Disp_16x16(6,0,0,ZM_16x16[20]); //台灯图标显示
  else Disp_16x16(6,0,0,ZM_16x16[0]);
  
  
  /*显示小动物图标*/
  if(SJTZ==0||SJTZ==1)
  {
    if(miao>=0&&miao<5)Disp_16x16(8,0,0,ZM_16x16[22]);
    else if(miao>=5&&miao<10)
    {
     Disp_16x16(8,0,0,ZM_16x16[0]);
     Disp_16x16(9,0,0,ZM_16x16[23]);
    }
    else if(miao>=10&&miao<15)
    {
      Disp_16x16(9,0,0,ZM_16x16[0]);
     Disp_16x16(10,0,0,ZM_16x16[24]);
    }
    else if(miao>=15&&miao<20)Disp_16x16(10,0,0,ZM_16x16[0]);
    else
    {
     Disp_16x16(8,0,0,ZM_16x16[22]);
      Disp_16x16(9,0,0,ZM_16x16[23]);
     Disp_16x16(10,0,0,ZM_16x16[24]);
    }
    }
   }
}
/*定时器1函数*/
void Timer0() interrupt 1
{
  TH0 = 0x0D1;
   TL0 = 0x20;  //给定时器0赋初值,定时1ms

if(pingbg==0) //当背光打开时定时器开始计数 用于屏背光自动关闭控制
{
   pingbgjs++;
  if(pingbgjs==3000) pingbg=1; //屏背光开后如果无操作大约30秒后关闭屏背光
}
else pingbgjs=0; //定时计数清零
}
/*定时器1函数*/
void Timer1() interrupt 3
{
  TH1 = 0x0D1;
  TL1 = 0x20;  //给定时器1赋初值,定时1ms
  D++;
  if(D==100)D=0;
  if(D>0&&D<50)
  {
   L++;
   if(L==10)
   {
    L=0;
    fmq=~fmq; //闹钟时间到时蜂鸣器响铃
  }
}
else(L=0);
}

全部程序51hei下载地址:
LCD12964 A多功能时钟.zip (226.38 KB, 下载次数: 1001)



作者: 1860774xxxx    时间: 2021-3-2 23:18
漏介绍 暗屏下 任意键 打开屏背光灯 若30秒内无操作 自动关闭屏背光 在台灯开启下屏背光常亮 直到台灯关闭30后自动关闭屏背光灯
作者: 来51学习    时间: 2021-3-3 08:45
感谢分享,很好的资料,很有借鉴价值
作者: zsw3721    时间: 2021-3-3 08:56
很厉害啊。我要用你的图画个板子,直接刷你的程序。做个带壳的。
作者: 1860774xxxx    时间: 2021-3-3 10:07
zsw3721 发表于 2021-3-3 08:56
很厉害啊。我要用你的图画个板子,直接刷你的程序。做个带壳的。

裸机更有艺术感  
作者: mengsiu    时间: 2021-3-3 22:52
做得真好!学习了。
作者: 1860774xxxx    时间: 2021-3-4 19:16
mengsiu 发表于 2021-3-3 22:52
做得真好!学习了。

多谢 互相学习而已
作者: zsw3721    时间: 2021-3-12 15:48
仿制了一个,其它都正常,但是显示不了温湿度,一直是0。在网上买的DHT11传感器,上拉电阻接的4.7k的。
作者: 1860774xxxx    时间: 2021-3-12 16:25
zsw3721 发表于 2021-3-12 15:48
仿制了一个,其它都正常,但是显示不了温湿度,一直是0。在网上买的DHT11传感器,上拉电阻接的4.7k的。

用什么型号单片机?本程序用STC12C5A60S2 与STC89C52不同的是 STC12比STC89运行速度要快12倍 DHT11要求的延时非常严格 所以单片机型号不同温湿度读不出来无非是改下延时  最简单的方法就是把你能用的DHT11程序移植过去不就可以了

作者: 区区&致命伤    时间: 2021-3-12 20:19
楼主你好,我仿制了一个,但是程序弄不好,#include "Delay.h"         
#include "19264ks0108ZK.h"
#include "19264ks0108.h"   
#include "ds3231.h"        
#include "rqzh.h"         
#include "dht11.h"        
这几个定义显示打不开,想我一下那错了,第一次用12的,是个新手
作者: zsw3721    时间: 2021-3-12 23:48
用的楼主的程序,自己画了个板子,今天做好了。第一次用DHT11这个传感器,可能型号与楼主的不同,传感器的延时进行了一些调整才能读出数据,但准确度偏差很大。下图显示的温度是我加了10度后的结果。。。





作者: 1860774xxxx    时间: 2021-3-13 10:21
区区&致命伤 发表于 2021-3-12 20:19
楼主你好,我仿制了一个,但是程序弄不好,#include "Delay.h"         
#include "19264ks0108ZK.h"
#in ...

不知道你那里弄错了
作者: 1860774xxxx    时间: 2021-3-13 10:30
zsw3721 发表于 2021-3-12 23:48
用的楼主的程序,自己画了个板子,今天做好了。第一次用DHT11这个传感器,可能型号与楼主的不同,传感器的 ...

DHT11 这东西  最好卖来的时候单独测试下
你加了壳 光敏电阻处你不开孔  检测不到光的变化  自动背光亮度调节就没意义了
你少了一个闹钟小开关  只要小开关打开了闹钟才会生效 同时闹钟图标亮起  
作者: zsw3721    时间: 2021-3-13 12:00
1860774xxxx 发表于 2021-3-13 10:30
DHT11 这东西  最好卖来的时候单独测试下
你加了壳 光敏电阻处你不开孔  检测不到光的变化  自动背光亮 ...

闹钟开关我装了,在右边,但是闹钟好像不会自动停止?另外,我装的光敏电阻(型号5516),没有试出来自动背光,是型号不对吗?现在我修改了一下程序让背光常亮了,因为我这块屏关掉背光的时候看不太清楚字。
作者: 1860774xxxx    时间: 2021-3-13 12:14
区区&致命伤 发表于 2021-3-12 20:19
楼主你好,我仿制了一个,但是程序弄不好,#include "Delay.h"         
#include "19264ks0108ZK.h"
#in ...

搜索不到路径 自己百度一下  我也不知道 估计是编译器设置问题吧
作者: 1860774xxxx    时间: 2021-3-13 12:21
zsw3721 发表于 2021-3-13 12:00
闹钟开关我装了,在右边,但是闹钟好像不会自动停止?另外,我装的光敏电阻(型号5516),没有试出来自动 ...

看电路图 最后一个按键 停止响铃 自动停止都不会起床了 当然没手机那么先进 响一会5分钟后再响  光敏嘛  你在晚上关上灯后全暗 然后通过背光微调 调到屏幕微微亮眼看舒服不刺眼就行了 调好后再开灯试试
作者: minjunshuyi    时间: 2021-3-13 14:35
做得真好!裸机更有艺术感,学习了!
作者: cykhyk    时间: 2021-3-13 16:42
想做一个,屏幕用的是什么型号?
作者: 1860774xxxx    时间: 2021-3-13 17:45
cykhyk 发表于 2021-3-13 16:42
想做一个,屏幕用的是什么型号?

19264 ks0108控制器 无字库屏
作者: birdzhyli    时间: 2021-3-18 20:23
学习了,大佬,今天刚下单了STC12C5A60S2就看到了这个帖子,我也是这个想法,只是没有想这么多,我只想到了时间和温度,膜拜
作者: 1860774xxxx    时间: 2021-3-18 21:10
birdzhyli 发表于 2021-3-18 20:23
学习了,大佬,今天刚下单了STC12C5A60S2就看到了这个帖子,我也是这个想法,只是没有想这么多,我只想到了 ...

大佬不敢当 都是网上前辈无私奉献  然后跟据自己爱好结合去写
作者: birdzhyli    时间: 2021-3-18 21:54
看了程序的头文件,大佬的字模都自己一个一个的做的?非常细致啊
作者: 1860774xxxx    时间: 2021-3-18 22:57
birdzhyli 发表于 2021-3-18 21:54
看了程序的头文件,大佬的字模都自己一个一个的做的?非常细致啊

字模不难啊  有取模软件 想用什么字体随自己好爱换就是了
作者: yxdz1358    时间: 2021-5-3 17:12
这几天正好在研究19264LCD屏呢,这个例程太好了,我也比较喜欢搞电子钟方面的小制作,这样有成就感!下载过来,玩一下,谢谢楼主!
作者: yxdz1358    时间: 2021-5-4 14:40
1860774xxxx 发表于 2021-3-2 23:18
漏介绍 暗屏下 任意键 打开屏背光灯 若30秒内无操作 自动关闭屏背光 在台灯开启下屏背光常亮 直到台灯关闭3 ...

这个功能很好哦

作者: shuma520    时间: 2021-5-5 11:26
这个用的DS3231,走时应该很准了,谢谢分享
作者: cb474265474265    时间: 2021-5-5 13:51
做得太好了,学习了。
作者: oosheoo    时间: 2021-5-7 04:48
真羡慕单片机高手,我要学习一下,搞一搞,研究研究。
作者: yygdzjs    时间: 2021-5-10 12:02
STC12C5A60S2单片机+LCD19624,有两点蛮好.
1. 万能板焊接 像PCB走线一样,以前PCB打样难时,做工程就这样做.
2. LCD19664  UI 界面显示,很好.
有条件的的  可以自己动动手.

作者: lthy640220    时间: 2021-5-10 19:52
请问:下载的原理图文件用什么软件打开

作者: yin11111    时间: 2021-5-12 15:43
大哥 能帮忙设计一个pcb板吗 自己也从来没接触过 很简单的pcb板 有原理图 电路比较简单 谢谢大哥
作者: 1860774xxxx    时间: 2021-5-13 17:17
lthy640220 发表于 2021-5-10 19:52
请问:下载的原理图文件用什么软件打开

Proteus8.9
作者: 1860774xxxx    时间: 2021-5-13 17:22
yin11111 发表于 2021-5-12 15:43
大哥 能帮忙设计一个pcb板吗 DIY小玩意迫切需要,自己也从来没接触过  就很着急 有chang 很简单的pcb板 有 ...

自己动手 丰衣足食哈
作者: wangyiming678    时间: 2021-5-14 11:24
非常好,想自己画个板子做出来
作者: yxdz1358    时间: 2021-5-15 07:37
楼主,看了您的作品,我自己设计了一款PCB,买了一块19264的液晶屏,单片机用的是STC8G2K64S4,硬件做好后,按您的例程改了一下,但是现在显示不了任何息信,请问一下,是哪里的问题?谢谢!
作者: 1860774xxxx    时间: 2021-5-15 19:26
yxdz1358 发表于 2021-5-15 07:37
楼主,看了您的作品,我自己设计了一款PCB,买了一块19264的液晶屏,单片机用的是STC8G2K64S4,硬件做好后 ...

随便搞个小程序 先把12964屏点亮了 再回来搞时钟吧 谁知道你是屏型号不对还是电路其它问题不呢
作者: AAA_MCU    时间: 2021-5-15 19:48
zsw3721 发表于 2021-3-12 23:48
用的楼主的程序,自己画了个板子,今天做好了。第一次用DHT11这个传感器,可能型号与楼主的不同,传感器的 ...

湿度传感器放里面怕是测量不精确,哈哈
作者: zsw3721    时间: 2021-5-15 23:03
AAA_MCU 发表于 2021-5-15 19:48
湿度传感器放里面怕是测量不精确,哈哈

你说的是对的。我本来打算壳子后面钻几个孔然后把DHT11贴着孔安装,这样就能透个气。但是调试发现我买的DHT11太差了,温度都能差个10来度,湿度更是没啥变化,所以就心灰意懒,直接把它固定在里面拉倒,屏上就当显示个装饰
作者: 1860774xxxx    时间: 2021-5-16 15:58
AAA_MCU 发表于 2021-5-15 19:48
湿度传感器放里面怕是测量不精确,哈哈

我觉得也是
作者: yxdz1358    时间: 2021-5-16 17:40
1860774xxxx 发表于 2021-5-15 19:26
随便搞个小程序 先把12964屏点亮了 再回来搞时钟吧 谁知道你是屏型号不对还是电路其它问题不呢

谢谢楼主的回复,我先把它点亮了,再说。之前我是想把电路图和屏的图片发上去呢,可是不会弄,不知道在哪里上传图片?  后面搞好了,我会把图片发上去了。

作者: Ws10261121    时间: 2021-5-20 15:52
请问楼主,我下载程序后。我因为缺少STC12C5A60S2.H头文件导致编译报错,求指导如何获得此头文件啊?

25C7FFFJ(BI@$(IHP5@B@I9.png (188.14 KB, 下载次数: 665)

25C7FFFJ(BI@$(IHP5@B@I9.png

作者: 51hei团团    时间: 2021-5-20 15:57
Ws10261121 发表于 2021-5-20 15:45
我因为缺少STC12C5A60S2.H头文件导致编译报错,求指导如何获得此头文件啊?

去51hei搜索此头文件http://www.51hei.com/bbs/dpj-166473-1.html或者去stc官网下载都可以,放到工程目录就可以编译成功了

51hei.png (25.77 KB, 下载次数: 700)

51hei.png

作者: 1860774xxxx    时间: 2021-5-20 23:48
Ws10261121 发表于 2021-5-20 15:52
请问楼主,我下载程序后。我因为缺少STC12C5A60S2.H头文件导致编译报错,求指导如何获得此头文件啊?

STC官网下载
作者: 风铃草f    时间: 2021-5-24 22:08
楼主,你好,为什么用仿真软件仿真出来的结果是不对的呀,一个是显示不正常,二个是按退出/关闭键整个可以调的那些显示多会错乱
作者: hnxtlxx    时间: 2021-5-25 11:53
1860774xxxx 发表于 2021-5-20 23:48
STC官网下载

非常漂亮的万年历,此贴必火,我也买了19264,准备按照您的仿制一个,非常感谢大佬的无私共享,51有您而精彩
作者: 1860774xxxx    时间: 2021-5-25 17:10
风铃草f 发表于 2021-5-24 22:08
楼主,你好,为什么用仿真软件仿真出来的结果是不对的呀,一个是显示不正常,二个是按退出/关闭键整个可以 ...

非原版软件  各种问题都有 可能是兼容性问题吧
作者: hnxtlxx    时间: 2021-5-26 07:07
飞线做了一个,但没接按键和感应器,非常漂亮,惊艳,程序应该没问题,感谢楼主大佬无私分享,下次完全做好了再来发图

作者: xinyu17    时间: 2021-5-31 14:08
1860774xxxx 发表于 2021-3-3 10:07
裸机更有艺术感

我也觉得,裸机更有感觉
作者: 1860774xxxx    时间: 2021-6-1 13:53
xinyu17 发表于 2021-5-31 14:08
我也觉得,裸机更有感觉

是的 搞电子的 都喜欢欣赏自己一点点搭建起来的作品 除非自壳也是自己设计的 不然盖了壳感觉就像在拼多多卖的
作者: 一生所爱0.0    时间: 2021-6-1 19:14
zsw3721 发表于 2021-3-12 23:48
用的楼主的程序,自己画了个板子,今天做好了。第一次用DHT11这个传感器,可能型号与楼主的不同,传感器的 ...

你的程序怎么能正常使用呀,

作者: 一生所爱0.0    时间: 2021-6-1 19:18


吐了呀,楼主大大这是什么情况呀。跑不起来。


作者: zsw3721    时间: 2021-6-1 22:01
1860774xxxx 发表于 2021-6-1 13:53
是的 搞电子的 都喜欢欣赏自己一点点搭建起来的作品 除非自壳也是自己设计的 不然盖了壳感觉就像在拼多多 ...


我觉得带个简易的壳子也没什么不好的

作者: 一生所爱0.0    时间: 2021-6-3 12:34
zsw3721 发表于 2021-6-1 22:01
我觉得带个简易的壳子也没什么不好的

请问你的这个程序是改了吗,我用的跑不起来,谢谢。

作者: zsw3721    时间: 2021-6-3 20:27
一生所爱0.0 发表于 2021-6-3 12:34
请问你的这个程序是改了吗,我用的跑不起来,谢谢。

改了一点,我换了单片机,I/O口换了。改动很小。你的读不到时间,可能MCU和3231的通讯都有问题。先从硬件查起吧。
作者: 一生所爱0.0    时间: 2021-6-4 09:32
zsw3721 发表于 2021-6-3 20:27
改了一点,我换了单片机,I/O口换了。改动很小。你的读不到时间,可能MCU和3231的通讯都有问题。先从硬件 ...

仿真没问题(除了会跑飞),电路直接不跑
作者: 1860774xxxx    时间: 2021-6-4 16:20
一生所爱0.0 发表于 2021-6-1 19:18
吐了呀,楼主大大这是什么情况呀。跑不起来。

看看是不是那里接错了
作者: 埋汰孩    时间: 2021-6-6 16:56
厉害,借鉴学习。
作者: hnxtlxx    时间: 2021-6-10 14:16
非常漂亮,谢谢楼主无私共享

IMG_20210608_184008.jpg (389.46 KB, 下载次数: 680)

IMG_20210608_184008.jpg

IMG_20210526_055935~01.jpg (447.68 KB, 下载次数: 668)

IMG_20210526_055935~01.jpg

作者: saxhongan    时间: 2021-6-10 20:00
楼主太伟大了,膜拜
作者: 遇见小阿梨    时间: 2021-6-11 10:54
是我喜欢的样子,下载了
作者: 一生所爱0.0    时间: 2021-6-18 21:41
程序稍微改了一下,没啥大问题了,改了延时,传感器有读数了,现在就背光关不了,一直亮着。
楼主求解
作者: 1860774xxxx    时间: 2021-6-20 16:23
一生所爱0.0 发表于 2021-6-18 21:41
程序稍微改了一下,没啥大问题了,改了延时,传感器有读数了,现在就背光关不了,一直亮着。
楼主求解

注意一下 当台灯开启下屏幕灯常亮  直到台灯关闭后 屏幕灯才会自动关闭  又或者的改错了程序 又或者的电路接错了
作者: hnqylgq    时间: 2021-6-21 11:30
楼主做的很漂亮啊,要是再打印个外壳就完美了,谢谢分享!
作者: 触景情伤    时间: 2021-6-21 14:21
61楼牛逼了,居然还可以搭棚焊…
作者: 1860774xxxx    时间: 2021-6-21 17:00
hnxtlxx 发表于 2021-6-10 14:16
非常漂亮,谢谢楼主无私共享

居然祼奔 不过我喜欢 按键可以不用 改下程序用遥控的
作者: AAAMO    时间: 2021-6-28 20:35
你好,请问一8.9版本的proteus可以仿真stc12系列的单片机吗
作者: 1860774xxxx    时间: 2021-6-29 12:26
AAAMO 发表于 2021-6-28 20:35
你好,请问一8.9版本的proteus可以仿真stc12系列的单片机吗

都是AT stc的好像没有的
作者: akhfjisaf    时间: 2021-6-30 16:13
zsw3721 发表于 2021-3-12 23:48
用的楼主的程序,自己画了个板子,今天做好了。第一次用DHT11这个传感器,可能型号与楼主的不同,传感器的 ...

这个壳怎么设置的
作者: zsw3721    时间: 2021-6-30 21:35
akhfjisaf 发表于 2021-6-30 16:13
这个壳怎么设置的

买的塑料盒,自己开孔。
不得不说楼主设计的这个小闹钟又漂亮又好用,现在这个产品放在我的书桌上,每天6:30准时叫我起床。还有两片板子,有需要的可以联系我
作者: banzhiyang    时间: 2021-7-6 16:32
楼主的焊工真不错,要是做PCB就更好了,没多少钱, 这玩意在学校也搞过,那时刚玩的单片机,学了好久,嘿嘿,给楼主点赞
作者: 就是做不好    时间: 2021-7-20 16:12
楼主,我安装了8.9的版本仍然打不开文件,求解惑。
作者: 1860774xxxx    时间: 2021-7-21 17:28
就是做不好 发表于 2021-7-20 16:12
楼主,我安装了8.9的版本仍然打不开文件,求解惑。

假的吧
作者: 就是做不好    时间: 2021-7-29 13:01
楼主,之前的问题解决了。
但是我在加载了头文件编译出现了如下问题:
Rebuild target 'Target 1'
compiling main.c...
linking...
BL51 BANKED LINKER/LOCATER V6.22 - SN: Eval Version
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2009
".\Objects\main.obj"
TO ".\Objects\STC12C5A60S2"
PRINT(".\Listings\STC12C5A60S2.m51") RAMSIZE(256)
******************************************************************************
* RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 4175H BYTE (818%) *
******************************************************************************
Program Size: data=55.6 xdata=0 code=17016
LINK/LOCATE RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)
*** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
    MODULE:  K:\KEILC51\C51\LIB\C51S.LIB (-----)
    LIMIT:   0800H BYTES
Target not created.
Build Time Elapsed:  00:00:00

望解决。

-7da72346d5fcb854.png (10.28 KB, 下载次数: 658)

-7da72346d5fcb854.png

作者: 1860774xxxx    时间: 2021-7-29 23:50
就是做不好 发表于 2021-7-29 13:01
楼主,之前的问题解决了。
但是我在加载了头文件编译出现了如下问题:
Rebuild target 'Target 1'

用keil uvision5版本从新注册试下吧  我是用keil uvision5版本的  文件位置存放与旧版有区别的 可能找不到头文件  注册号你的也显示到2009 估计也过期了
作者: 达达别    时间: 2021-8-2 12:58

楼主,我的仿真怎么变成这样啦

51hei截图_20210802125702.png (140.79 KB, 下载次数: 683)

51hei截图_20210802125702.png

作者: 1860774xxxx    时间: 2021-8-2 21:24
达达别 发表于 2021-8-2 12:58
楼主,我的仿真怎么变成这样啦

兼容问题吧 目前实物没发现什么问题
作者: 达达别    时间: 2021-8-3 17:03
1860774xxxx 发表于 2021-8-2 21:24
兼容问题吧 目前实物没发现什么问题

谢谢楼主  打算自己做一个  安装8.9刚开始程序注册捣鼓了大半个月,前几天刚搞好仿真出现乱码不敢弄额
作者: 达达别    时间: 2021-8-3 17:06
对了 楼主的屏幕是有CSA、CSB、CSC  我的咋是CS1、CS2、//////////////小白求解释

作者: 1860774xxxx    时间: 2021-8-3 21:15
达达别 发表于 2021-8-3 17:06
对了 楼主的屏幕是有CSA、CSB、CSC  我的咋是CS1、CS2、//////////////小白求解释

ABC不就是123吗
作者: hnxtlxx    时间: 2021-8-4 15:09
1860774xxxx 发表于 2021-6-21 17:00
居然祼奔 不过我喜欢 按键可以不用 改下程序用遥控的

大佬,我没用按键,怕按的时间搭棚焊变形,用的干簧管代替按键,用小磁铁去调时间。替广大群友谢谢您的无私付出,谢谢!!!
作者: 达达别    时间: 2021-8-4 16:34
1860774xxxx 发表于 2021-8-3 21:15
ABC不就是123吗

我的只有CSA CSB呢 没有CSC
看了一下
*函数名称:wr_lcd_1
*功能描述:左屏写入指令/数据子程序
******************************************************************************************/
void wr_lcd_1(unsigned char dat_com,unsigned char content)
{
CS1=0;        //【CSA=0】
CS2=1;        //【CSB=0】
CS3=1;

/******************************************************************************************
*函数名称:wr_lcd_2
*功能描述:中屏写入指令/数据子程序
******************************************************************************************/
void wr_lcd_2(unsigned char dat_com,unsigned char content)
{
CS1=1;        //【CSA=1】
CS2=0;        //【CSB=0】
CS3=1;

/******************************************************************************************
*函数名称:wr_lcd_3
*功能描述:右屏写入指令/数据子程序
******************************************************************************************/
void wr_lcd_3(unsigned char dat_com,unsigned char content)
{
CS1=1;        //【CSA=0】
CS2=1;        //【CSB=1】
CS3=0;


不知道更改引脚定义(【】内的内容)可否实现  先试试。话说楼主回消息是真的快。

作者: lixingwei0122    时间: 2021-8-15 21:46
貌似12964要比12864好很多啊
作者: 1860774xxxx    时间: 2021-8-15 23:26
lixingwei0122 发表于 2021-8-15 21:46
貌似12964要比12864好很多啊

嗯 12864 左右两屏 19264左中右三屏 比咧好看点 也能显示多点信息
作者: lyMarvin    时间: 2021-8-21 19:22
很久玩过19264屏,一直放着吃灰呢
有空可以再打样更新一下
作者: 418854190    时间: 2021-9-23 22:14
程序有点问题 不延时读DHT11就不能正常读出数据   延时至少400毫秒才能读出数据并显示出来  延时时间长了按键要按时间长点才能进入设置我在读温度之前加了if(SJTZ==1)判断是不是进入设置了  进入就不读温度  这样只有第一次进入设置时按得时间长点  
设置时间日期顺序我也改成了年月日时分秒   连续按SJTZ_k1可退出不保存设置的数据  只有按SJTZ_k4才退出并保存设置的数据
闹钟还没改 打算用SJTZ_k4进入设置退出不保存设置     SJTZ_k1退出保存设置

作者: 1860774xxxx    时间: 2021-9-24 09:44
418854190 发表于 2021-9-23 22:14
程序有点问题 不延时读DHT11就不能正常读出数据   延时至少400毫秒才能读出数据并显示出来  延时时间长了按 ...

自行优化 这是公测版本  正式版本我就不发了
哈~  
作者: fancunwu    时间: 2021-9-24 14:23
用DS3231吧,误差小。
作者: 1860774xxxx    时间: 2021-9-25 19:18
fancunwu 发表于 2021-9-24 14:23
用DS3231吧,误差小。

是的 DS3231
作者: 418854190    时间: 2021-9-26 12:06
做出来了   只是还没加闹钟  光控部分有改动  电路图中的没法用  我都按电路图做好板了  使用时才发现光控没法用  还好我画图时在电位器到正极的地方预留了一个电阻的位置 这个位置刚好接光敏电阻   控制端原本用0欧电阻做跳线的地方接了一个二极管 二极管一端接单片机用来拉低电位  另一端接电位器也接电阻到地  正好可以光控   单片机是原本报废的  P0.0、P1.0、P1.1、P1.2、P1.4、P3.5损坏无法使用  刚好可以用在这上   
单片机开了P4端口 除了P4.7没用上其它三个全用了  


电路板是边设计边画的 修改修改 有些地方还不太理想  预留了程序下载接口  电脑点下载编程后按白色按键不放  下载完程序在放开

51hei截图20210926112031.jpg (141.21 KB, 下载次数: 738)

51hei截图20210926112031.jpg

IMG_20210925_132846.jpg (1003.89 KB, 下载次数: 747)

IMG_20210925_132846.jpg

51hei截图20210926112009.jpg (197.84 KB, 下载次数: 736)

51hei截图20210926112009.jpg

IMG_20210925_131651.jpg (935.38 KB, 下载次数: 745)

IMG_20210925_131651.jpg

IMG_20210925_113920.jpg (919.46 KB, 下载次数: 734)

IMG_20210925_113920.jpg

作者: smartphone    时间: 2021-9-29 08:21
现在打板都免费了还在自己雕刻?
作者: 老愚童63    时间: 2021-10-12 09:22
主电路板与显示屏的连接建议使用杜邦线或者相应的接插件为宜,线缆焊接虽然可靠性高,但相应技术要求比较高。初学者很容易搞砸。
作者: bd7jad    时间: 2021-11-5 14:18
太赞了。特别是右上角的猫猫狗狗,代表啥含义。 很有意思。。。
作者: 1860774xxxx    时间: 2021-11-7 11:12
bd7jad 发表于 2021-11-5 14:18
太赞了。特别是右上角的猫猫狗狗,代表啥含义。 很有意思。。。

没含义 装饰
作者: a399288395    时间: 2021-11-26 00:33
感谢分享,很好的资料,很有借鉴价值
作者: zjhchp    时间: 2021-11-26 14:01
源文件里的电路图AD打不开,求AD的电路图和PCB!
作者: fancunwu    时间: 2021-12-19 22:20
看看我做的

85e4d6f54f9ad68e36e6339968828fe.jpg (246.61 KB, 下载次数: 715)

85e4d6f54f9ad68e36e6339968828fe.jpg

504f6e9017dfef2cdf8572190a3a146.jpg (98.18 KB, 下载次数: 707)

504f6e9017dfef2cdf8572190a3a146.jpg

95649bba8e48588b165d2787f74cf49.jpg (187.93 KB, 下载次数: 728)

95649bba8e48588b165d2787f74cf49.jpg

50d1765854618bcf28855934177823e.jpg (137.89 KB, 下载次数: 781)

50d1765854618bcf28855934177823e.jpg

d4a455eb34d5245a85aa2421a8cb745.jpg (146.03 KB, 下载次数: 725)

d4a455eb34d5245a85aa2421a8cb745.jpg

638957698d5c8d0a2af015e46aebc64.jpg (157.06 KB, 下载次数: 777)

638957698d5c8d0a2af015e46aebc64.jpg

dbfdacf5b41f555fa1fef7c5548f350.jpg (165.97 KB, 下载次数: 742)

dbfdacf5b41f555fa1fef7c5548f350.jpg

作者: fancunwu    时间: 2021-12-19 22:43
fancunwu 发表于 2021-12-19 22:20
看看我做的

用红色亚克力板做的外壳,透明有机玻璃做的面板,用美工刀下的料,粘接胶水用的有点多了,热传印做的单面电路板,用常闭按钮做的闹钟开关,闹钟开时按一下,闹钟停响,第二天还能保持闹钟,外壳是梯形,2个5050贴片白色发光管代替台灯,调时按键做低,防止按台灯按钮误按调时。
作者: 紫气东来    时间: 2022-1-4 17:51
万年历到哪一年?
作者: fancunwu    时间: 2022-1-4 22:30
紫气东来 发表于 2022-1-4 17:51
万年历到哪一年?

2099年
作者: 1860774xxxx    时间: 2022-1-6 19:07
fancunwu 发表于 2021-12-19 22:20
看看我做的

一个比一个利害了




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