找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 15095|回复: 6
打印 上一主题 下一主题
收起左侧

用89c51单片机控制两位数码管倒计时

[复制链接]
跳转到指定楼层
楼主
ID:101955 发表于 2016-1-5 18:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个大前提是:在仅使用51单片机跟一个两位数码管,不加译码器锁存器。
实现功能:两位数码一位显示一个固定的数字,另一位数码管进行倒计时。
我这只菜鸟是初学者,想到这个问题是因为我刚学到“单片机控制数码管动态显示”,实际上是通过短暂延时来达到八个数码管同时点亮的效果。然后我就想到了手表倒计时,然后我就想试着能不能我控制一个两位数码管实现倒计时功能。
我是用P0控制数码管COM进行位选,用P1控制数码管位选。那么我写出来的程序,一直进入一个死胡同,我弄出来的描述起来是这样的:我控制第一个数码管也就是COM1亮,给P1端口第一个值(假设‘1’),这时第一个数码管显示1;当我想要让第二个数码管也就是COM2点亮时,这时候P1端口还在输出刚才给的第一个值,这样第二个数码管也显示1。
这样由于只存在P1一个端口,我第一个数码管和第二个数码管会形成覆盖,达不到我想要设计的效果。
我现在就卡到这里了,希望大神来指点指点我。
(是两位数码管,不是两个一位数码管)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:33984 发表于 2016-1-5 23:01 | 只看该作者
实际还是动态显示

评分

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

查看全部评分

回复

使用道具 举报

板凳
ID:33984 发表于 2016-1-5 23:03 | 只看该作者
如果你会动态显示了,这个不成问题的。,给它们两个分别送想要送的数值。
回复

使用道具 举报

地板
ID:33984 发表于 2016-1-5 23:05 | 只看该作者
送19, 再送18,再送17。。。。。。。。。
回复

使用道具 举报

5#
ID:33984 发表于 2016-1-6 00:10 | 只看该作者
void main()
{
  关断第一个数码管位选;
  关断第二个数码管位选;

  while(1)
   {

    关断第二个位选;
    向段选送第一个数;//想送几,你说了算
    开启第一个位选;
    延时;

    关第一个位选;
    向段选送第二个数;//想送几,你说了算
    开启第二个位选;
    延时;   

   }
}

评分

参与人数 1黑币 +10 收起 理由
taoran + 10 很给力!

查看全部评分

回复

使用道具 举报

6#
ID:86857 发表于 2016-1-7 16:43 | 只看该作者
个人经验 初学者 先把数码管显示的数组学会  从数组里选数显示 会使你的程序写起来更流畅 ,第二 你要清楚的是 人眼睛的视觉频率是1/24秒 的停留视觉  只需保持24hz的频率 眼睛不会发现 前一个亮的后来灭了 而是看起来他一直在亮  最后就是锁存你要搞懂   单片机就是个先后顺序的问题 把时间算明白 什么都好说
回复

使用道具 举报

7#
ID:191403 发表于 2017-4-22 18:18 | 只看该作者
我也想知道怎么用I/O扣控制数码管的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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