标题:
用89c51单片机控制两位数码管倒计时
[打印本页]
作者:
qbb_and_wzq
时间:
2016-1-5 18:03
标题:
用89c51单片机控制两位数码管倒计时
一个大前提是:在仅使用51单片机跟一个两位数码管,不加译码器锁存器。
实现功能:两位数码一位显示一个固定的数字,另一位数码管进行倒计时。
我这只菜鸟是初学者,想到这个问题是因为我刚学到“单片机控制数码管动态显示”,实际上是通过短暂延时来达到八个数码管同时点亮的效果。然后我就想到了手表倒计时,然后我就想试着能不能我控制一个两位数码管实现倒计时功能。
我是用P0控制数码管COM进行位选,用P1控制数码管位选。那么我写出来的程序,一直进入一个死胡同,我弄出来的描述起来是这样的:我控制第一个数码管也就是COM1亮,给P1端口第一个值(假设‘1’),这时第一个数码管显示1;当我想要让第二个数码管也就是COM2点亮时,这时候P1端口还在输出刚才给的第一个值,这样第二个数码管也显示1。
这样由于只存在P1一个端口,我第一个数码管和第二个数码管会形成覆盖,达不到我想要设计的效果。
我现在就卡到这里了,希望大神来指点指点我。
(是两位数码管,不是两个一位数码管)
作者:
plnh8258
时间:
2016-1-5 23:01
实际还是动态显示
作者:
plnh8258
时间:
2016-1-5 23:03
如果你会动态显示了,这个不成问题的。,给它们两个分别送想要送的数值。
作者:
plnh8258
时间:
2016-1-5 23:05
送19, 再送18,再送17。。。。。。。。。
作者:
plnh8258
时间:
2016-1-6 00:10
void main()
{
关断第一个数码管位选;
关断第二个数码管位选;
while(1)
{
关断第二个位选;
向段选送第一个数;//想送几,你说了算
开启第一个位选;
延时;
关第一个位选;
向段选送第二个数;//想送几,你说了算
开启第二个位选;
延时;
}
}
作者:
yscydy
时间:
2016-1-7 16:43
个人经验 初学者 先把数码管显示的数组学会 从数组里选数显示 会使你的程序写起来更流畅 ,第二 你要清楚的是 人眼睛的视觉频率是1/24秒 的停留视觉 只需保持24hz的频率 眼睛不会发现 前一个亮的后来灭了 而是看起来他一直在亮 最后就是锁存你要搞懂 单片机就是个先后顺序的问题 把时间算明白 什么都好说
作者:
467357729
时间:
2017-4-22 18:18
我也想知道怎么用I/O扣控制数码管的
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1