找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求助大佬,单片机多位数码管如何同时亮并间隔一段时间再灭?

[复制链接]
跳转到指定楼层
楼主
下面是我的程序,是不是只有时钟和中断才能实现呢?
#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, 下载次数: 0)

屏幕截图 2024-09-19 005402.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1128898 发表于 2024-9-19 10:53 | 只看该作者
计数读秒
回复

使用道具 举报

板凳
ID:973695 发表于 2024-9-19 15:55 | 只看该作者
定时中断是最好的解决方法,不过简单的循环也是可以实现的。

学习的时候建议不要一开始就自己写代码,先看例程。
普中的A2单片机开发板带有例子程序的,全都跑一遍,看看运行效果,再看看例子代码,看懂了再开始写自己的代码。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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