标题: 求助大佬,单片机多位数码管如何同时亮并间隔一段时间再灭? [打印本页]

作者: xiaowu233    时间: 2024-9-19 01:02
标题: 求助大佬,单片机多位数码管如何同时亮并间隔一段时间再灭?
下面是我的程序,是不是只有时钟和中断才能实现呢?
#include <REGX52.H>
void Delay(unsigned int xms)//@11.0592MHz
{
unsigned char data i, j;
while(xms--)
{i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67};//数码管显示数字断码
void Nixie(unsigned char Location,Number)//第几个数码管,显示的数字
{
switch(Location)
{
case 1:P2_4=1;P2_3=1;P2_2=1;break;
case 2:P2_4=1;P2_3=1;P2_2=0;break;
case 3:P2_4=1;P2_3=0;P2_2=1;break;
case 4:P2_4=1;P2_3=0;P2_2=0;break;
case 5:P2_4=0;P2_3=1;P2_2=1;break;
case 6:P2_4=0;P2_3=1;P2_2=0;break;
case 7:P2_4=0;P2_3=0;P2_2=1;break;
case 8:P2_4=0;P2_3=0;P2_2=0;break;
}
P0=NixieTable[Number];//调用第几个断码
Delay(1);
P0=0x00;
}
void main()
{
while(1)
{
Nixie(8,6);Nixie(7,6);Nixie(6,6);
//第八个晶体管,显示6//第七个晶体管,显示6//第六个晶体管,显示6
}
}
/*********************************************************
是普中的A2单片机开发板
89c52rc
下面是数码管和译码器的原理图

屏幕截图 2024-09-19 005402.png (81.43 KB, 下载次数: 8)

屏幕截图 2024-09-19 005402.png

作者: chchking    时间: 2024-9-19 10:53
计数读秒
作者: stycx    时间: 2024-9-19 15:55
定时中断是最好的解决方法,不过简单的循环也是可以实现的。

学习的时候建议不要一开始就自己写代码,先看例程。
普中的A2单片机开发板带有例子程序的,全都跑一遍,看看运行效果,再看看例子代码,看懂了再开始写自己的代码。
作者: xiaowu233    时间: 2024-9-19 17:02
chchking 发表于 2024-9-19 10:53
计数读秒

我有写过这个,用的if,但是跑起来感觉秒数不对
作者: xiaowu233    时间: 2024-9-19 17:03
stycx 发表于 2024-9-19 15:55
定时中断是最好的解决方法,不过简单的循环也是可以实现的。

学习的时候建议不要一开始就自己写代码,先 ...

嗯嗯,好的,我是跟着网上学的,就是找半天找不到这个例子,谢谢大佬
作者: stycx    时间: 2024-9-20 09:59
51单片机A2开发板基础实验 http://www.51hei.com/bbs/dpj-195994-1.html
普中A2开发板教程与原理图 http://www.51hei.com/bbs/dpj-223550-1.html
这两个下载好好学习一下
作者: lkc8210    时间: 2024-9-20 13:21


作者: 东篱南山客    时间: 2024-9-20 13:45
可以每个数码管显示之后加一点点延时,直接切换貌似看不到现象
作者: xiaowu233    时间: 2024-10-21 02:16
stycx 发表于 2024-9-20 09:59
51单片机A2开发板基础实验 http://www.51hei.com/bbs/dpj-195994-1.html
普中A2开发板教程与原理图 http:/ ...

谢谢大佬,我已经解决啦
作者: xiaowu233    时间: 2024-10-21 02:17
lkc8210 发表于 2024-9-20 13:21

谢谢大佬,我已经解决啦
作者: xiaowu233    时间: 2024-10-21 02:18
东篱南山客 发表于 2024-9-20 13:45
可以每个数码管显示之后加一点点延时,直接切换貌似看不到现象

每个数码管后面加延迟太久的话,就无法同时现实啦,不过我已经解决了,谢谢
作者: lkc8210    时间: 2024-10-22 11:26
xiaowu233 发表于 2024-10-21 02:17
谢谢大佬,我已经解决啦

赠人玫瑰 手留余香
解决了就把答案贴出来
让后人参考一下




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