一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
楼主: lyxing

再抄翻页钟(无键红外调整、音乐闹铃、整点提示、误差自动修正等)

 火... [复制链接]
 楼主| 发表于 2012-6-5 22:34 | 显示全部楼层
回复 229# xzp0209

    只需在音乐开启时,增加一个开启I/O端口的程序即可:

    if(alarm_crray[a][1]==CurrentTime.Hour&&alarm_crray[a][2]==CurrentTime.Minute)
    {music_CON(alarm_crray[a][0]);

    此处加上如下程序试试:
         switch(a)
       {case 0:              
        P0^4=0;      //此处I/O可以自由设定,注意别用已使用的端口。
        break;
        case 1:
        P0^5=0;
        break;
        .........
        case 7:      
        P...=0;
        break;   
      }  

    不过这样只能开启I/O口,却不能关,可以变通下,改为控制四路输出,即四路闹钟控制开,四路闹钟控制关:

   if(alarm_crray[a][1]==CurrentTime.Hour&&alarm_crray[a][2]==CurrentTime.Minute)
    {music_CON(alarm_crray[a][0]);

    此处加上如下程序试试:
         switch(a)
       {case 0:              
        P0^4=0;      //开一路
        break;
        case 1:
        P0^4=1;      //关一路
        break;
        .........
         case 6:
        P....=0;       //开四路
        break;
        case 7:      
        P...=1;       //关四路
        break;   
      }

     如想控制八路,程序还得作一些大改动。
回复

使用道具 举报

 楼主| 发表于 2012-6-5 22:49 | 显示全部楼层
回复 230# abcd2010118


     按键不好使,可以将以下数据5改小试试。
    #define  KEY_VAL 5          //定义按键手感

   看了下,确有兄弟所说的BUG。这是对农历日期的判断没考虑到有些年份只有二十九天的原因造成的。
回复

使用道具 举报

发表于 2012-6-6 11:07 | 显示全部楼层
回复 231# lyxing

如果我要的只是在定时时间到时,打开一个I/O(只需要给一个下降沿脉冲即可那种)是不是可以这样:
if(alarm_crray[a][1]==CurrentTime.Hour&&alarm_crray[a][2]==CurrentTime.Minute)
    {music_CON(alarm_crray[a][0]);
    switch(a)
       {case 0:              
       P0^4=0;      //此处I/O可以自由设定,注意别用已使用的端口。
   delay_nms(5);
      P0^4=1; ;
        break;
        ......
        ......   
      }  
这样用到延时,会不会对扫描屏和时间造成影响。
回复

使用道具 举报

发表于 2012-6-6 11:45 | 显示全部楼层
回复  lyxing


  又下载了多谢楼主。楼主的几款翻页钟都仿制过;89C52款已使用有一年多了非常实用。现 ...
abcd2010118 发表于 2012-6-5 22:19 https://www.yleee.com.cn/images/common/back.gif



按键不能用,时有时无,后面干脆一按就黑屏,期待解决
回复

使用道具 举报

 楼主| 发表于 2012-6-6 21:33 | 显示全部楼层
回复 233# xzp0209


    这个影响不大,其实可不进行延时,I/O口有锁存,不关闭,会一直是低电平,如想拉低后再拉高,就需要延时。延时时间长短可根据实验来确定,以控制的电路可靠开启来确定延时时间。
回复

使用道具 举报

 楼主| 发表于 2012-6-6 21:40 | 显示全部楼层
回复 234# 280078498


按键不好使,可以将以下数据5改小试试。
    #define  KEY_VAL 5          //定义按键手感

   试验过,按键没发现什么问题,可将数据改小试试,再则检查检查按键有无接触不良;出现黑屏现象,看看有无将屏幕显示开关键(POWER)按下了。
    #define  KEY_VAL 5          //定义按键手感
回复

使用道具 举报

发表于 2012-6-8 01:40 | 显示全部楼层
前两天断网,今天看了下,谢谢搂主的回复.顺便问一下,那个红绿使能怎么弄,分别把驱动红绿的595的使能引脚连在一起引出来两根线吗?
我看了下一乐1.9MM点阵的使能都是接地的。
回复

使用道具 举报

发表于 2012-6-8 21:45 | 显示全部楼层
回复 236# lyxing

您好;先前提到按键不好按是按键不良换后正常了。不过还有一个问题;我设置了21点到次日7点关闭整点报时。但是每晚整点报不误。这样会影响睡觉的;89C52版是可以关闭整点报时的。
回复

使用道具 举报

 楼主| 发表于 2012-6-8 22:09 | 显示全部楼层
回复 237# zhouqian2018


    红、绿使能可以并在一起引出。如直接接地,可能会有拖尾、亮度不能调整的现象,具体以实验结果为准。
回复

使用道具 举报

 楼主| 发表于 2012-6-9 00:08 | 显示全部楼层
回复 238# abcd2010118


    呵呵,程序有误,将
void zd_check(void)          //整点提示判断
{uchar a;
  if(CurrentTime.Hour==23)
   a=0;
   else a++;
    if(color(zd_con,a))
     music_CON(0);


改为:
void zd_check(void)          //整点提示判断
{uchar a;
  if(CurrentTime.Hour==23)
   a=0;
   else a=CurrentTime.Hour+1;
    if(color(zd_con,a))
     music_CON(0);
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-8-22 08:28 , Processed in 0.044891 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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