找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11189|回复: 30
收起左侧

51单片机和数码管做时钟调时间的时候如何让某一位闪烁

  [复制链接]
ID:98193 发表于 2015-12-20 09:13 | 显示全部楼层 |阅读模式
比如调小时的时候如何让小时那两位闪烁以确定没调错位置。。大体思路应该是取反,但是具体怎么写呢?下面是按键后调时的部分程序。请大神们指点。或者也可以是要调的那一位亮,其他位暗也可以。

if(num==3) //功能键第三次被按下时
{
TR0=0; // 关闭定时器,调小时
dula=1;
P0=table[shi/10]; //调小时的 十位
dula=0;
wela=1;
P0=0x01;
wela=0;
delay(10);

dula=1;
P0=table[shi%10]; //调小时的个位
dula=0;
wela=1;
P0=0x02;
wela=0;
delay(1);
}
回复

使用道具 举报

ID:1 发表于 2015-12-20 18:25 来自手机 | 显示全部楼层
实现明暗区分比较简单一点,只需要把delay(10);,改一下就行了,,加一个if判断
回复

使用道具 举报

ID:7485 发表于 2015-12-20 19:09 | 显示全部楼层
闪动,每秒亮两次。
回复

使用道具 举报

ID:99728 发表于 2015-12-20 21:40 | 显示全部楼层
会 啊  伞懂  每秒两次
回复

使用道具 举报

ID:99728 发表于 2015-12-20 21:44 | 显示全部楼层
这个很简单  不懂问我啊
回复

使用道具 举报

ID:98193 发表于 2015-12-20 22:35 | 显示全部楼层
郭常德 发表于 2015-12-20 21:44
这个很简单  不懂问我啊

能 指教一下吗
回复

使用道具 举报

ID:98193 发表于 2015-12-20 22:35 | 显示全部楼层
ahshmj 发表于 2015-12-20 19:09
闪动,每秒亮两次。

具体怎么写程序啊?
回复

使用道具 举报

ID:98193 发表于 2015-12-20 22:36 | 显示全部楼层
admin 发表于 2015-12-20 18:25
实现明暗区分比较简单一点,只需要把delay(10);,改一下就行了,,加一个if判断

是啊,但是具体怎么写程序呢。怎么改,if判断的作用是什么,怎么写?能具体给个例子参考一下吗
回复

使用道具 举报

ID:69862 发表于 2015-12-21 09:11 | 显示全部楼层
可以参考我的程序,里面有你想要的功能。
纯手工打造,51单片机智能热水器控制系统
http://www.51hei.com/bbs/dpj-28880-1.html

回复

使用道具 举报

ID:98193 发表于 2015-12-21 21:49 | 显示全部楼层
有没有大神能具体教教我闪烁或者是明暗。。还有两天就时钟比赛了,时间来不及了,求各位帮帮忙教一下我。。本人初学,不太会
回复

使用道具 举报

ID:98193 发表于 2015-12-21 21:53 | 显示全部楼层
我用的是2个573锁存器,一个控制位选。一个控制段选、
回复

使用道具 举报

ID:86421 发表于 2015-12-22 21:02 | 显示全部楼层
在2MS定时器中定义一个变量,如
  1.         a++;                                  //秒闪
  2.    if(a<=250){ms=1;flag=1;}
  3.    if(a>250){ms=0;flag=0;}
  4.    if(a==500)a=0;
复制代码



然后在显示模式中用IF  、else去把不显示和正常显示分开就是了

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:122184 发表于 2016-5-20 15:37 来自手机 | 显示全部楼层
楼主怎么解决的啊求教啊
回复

使用道具 举报

ID:111634 发表于 2016-5-20 20:11 | 显示全部楼层
介绍你去看本坛51单片机专栏上传的“模拟电子钟(由80C51定时器产生秒时基)”。
回复

使用道具 举报

ID:111634 发表于 2016-5-20 20:11 | 显示全部楼层
程序层次简单清晰,每句都有注解,便于理解。电路结构合理(串行输出),性价比高。仿真演示生动,还可按键校正时分秒。


图7-13.jpg
回复

使用道具 举报

ID:111634 发表于 2016-5-20 20:13 | 显示全部楼层
本帖最后由 zl2168 于 2016-5-21 09:33 编辑

模拟电子钟.jpg

你先Proteus仿真一下,感受演示实效,包你满意。

实例94 模拟电子钟(由80C51定时器产生秒时基).rar (43.05 KB, 下载次数: 94)
回复

使用道具 举报

ID:111634 发表于 2016-5-20 20:15 | 显示全部楼层
本帖最后由 zl2168 于 2016-5-20 20:16 编辑

全速运行后,6位LED显示00:00:00,然后计时运行,4个发光二极管秒闪烁。



按下K0(锁定),进入时钟修正。


首先2位时数据快速闪烁,表示时数据允许修正。此时每按一次K2(鼠标左键单击键图形中键盖帽,单击一次,键闭合后弹开一次,不闭锁),时显示数加1,但不超过最大值23,超过时复0


若按一次K1(不闭锁,方法同K2),被修正位(快速闪烁)移至分数据位,每按一次K2,分显示数加1,但不超过最大值59,超过时复位0


再按一次K1(不闭锁,方法同K2),被修正位(快速闪烁)移至秒数据位,每按一次K2,秒显示数加1,但不超过最大值59,超过时复位0


再按一次K1,回复到时数据修正(继续按K1,重复上述①~③过程)。


释放K0,退出时钟修正,恢复正常计时显示


回复

使用道具 举报

ID:122238 发表于 2016-5-20 20:16 | 显示全部楼层
使用指令集0x0e
回复

使用道具 举报

ID:111634 发表于 2016-5-20 20:26 | 显示全部楼层
本帖最后由 zl2168 于 2016-5-20 20:43 编辑

模拟电子钟程序设计

disp6.jpg

key.jpg


t0t1.jpg



上述电路和程序引自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版、《80C51单片机实用教程》ISBN 978-7-04-044532-9,高教社出版。欢迎咨询,zzlls@126.com

回复

使用道具 举报

ID:111634 发表于 2016-5-20 20:33 | 显示全部楼层
调节位闪烁,zl2168已给您答复。
回复

使用道具 举报

ID:111634 发表于 2016-5-21 19:18 | 显示全部楼层
你先Proteus仿真一下,感受演示实效,包你满意。
回复

使用道具 举报

ID:122546 发表于 2016-5-22 12:57 | 显示全部楼层
一闪一闪 每秒亮两次
回复

使用道具 举报

ID:111634 发表于 2016-5-22 18:07 | 显示全部楼层
本案例秒闪烁是0.5s亮0.5s暗,修正位闪烁是131ms亮131ms暗,每秒近4次,修正位闪烁明显快于秒闪烁。你仿真演示感受一下就知道了。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:196816 发表于 2017-5-5 19:11 | 显示全部楼层
程序有问题
回复

使用道具 举报

ID:84492 发表于 2018-1-9 09:12 | 显示全部楼层
感谢分享            
回复

使用道具 举报

ID:273919 发表于 2018-1-9 18:45 | 显示全部楼层
比如调小时的时候如何让小时那两位闪烁以确定没调错位置。。大体思路应该是取反,但是具体怎么写呢?下面是按键后调时的部分程序。请大神们指点。或者也可以是要调的那一位亮,其他位暗也可以。  if(num==3) //功能键第三次被按下时 { TR0=0; // 关闭定时器,调小时 dula=1;  P0=table[shi/10]; //调小时的 十位 dula=0;  wela=1;  P0=0x01; wela=0; delay(10);  dula=1; P0=table[shi%10]; //调小时的个位 dula=0;  wela=1;  P0=0x02; wela=0;  delay(1); }

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:111634 发表于 2018-1-9 22:29 | 显示全部楼层
上面早有答案,不去研读,还问什么?
回复

使用道具 举报

ID:382322 发表于 2018-8-22 19:40 | 显示全部楼层
switch(N)
     {
       case 1:COM6_H_EL();break;
       case 2:COM5_H_EL();break;
       case 3:COM4_H_EL();DP_L_EL();break;
       case 4:COM3_H_EL();break;
       case 5:COM2_H_EL();DP_L_EL();break;
       case 6:COM1_H_EL();break;
     }
    if((Mode==1)&&(SS1==1)&&(a==0)&&(N==1))
   {
     
     COM6_L_EL();
   }  
   if((Mode==1)&&(SS1==1)&&(a==0)&&(N==2))
   {
     
     COM5_L_EL();
   }  
   if((Mode==1)&&(SS1==2)&&(a==0)&&(N==3))
   {
   
     COM4_L_EL();
   }  
    if((Mode==1)&&(SS1==2)&&(a==0)&&(N==4))
   {
   
     COM3_L_EL();
   }  
   if((Mode==1)&&(SS1==3)&&(a==0)&&(N==5))
   {
     
     COM2_L_EL();
   }  
   if((Mode==1)&&(SS1==3)&&(a==0)&&(N==6))
   {
     
     COM1_L_EL();
   }  
这个是我的例程,另外设置a=0 ,350毫秒,a=1  350毫秒,你看看吧!

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:371957 发表于 2018-8-22 21:33 | 显示全部楼层
利用定时器,加个if判断 半秒调用显示半秒不调用
回复

使用道具 举报

ID:388013 发表于 2018-8-23 15:20 | 显示全部楼层
可以吧这两位延时调长,
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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