问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么实现数码管动态动态扫描显示(同时显示不同的数字)?以下程序只能一次显示一个数字。

发布网友 发布时间:2022-04-29 17:15

我来回答

2个回答

热心网友 时间:2023-10-22 15:36

很容易,首先假如我们有6位数码管,每位数码管需要8个段选1个公共选通端, 那么6位数码管自然是8位端选信号 6位选通信号(分别选通1-6其中的一个数码管)
#define SMG_WEI P0 //P1.0 -P1.5 分别驱动数码管选通
#define SMG_DUAN P1 //P1.0 -P1.7接数码管8个段选
unsigned char smgcode[]={x,x,x,x,x,x,x,x,x,x} //对应数码管0-9的值,实际根据段信号确定

void Delay(unsigned long w)
{
while(w--);
}

void DisPlay(unsigned char s1,unsigned char s2,unsigned char s3,unsigned char s4,unsigned char s5,unsigned char s6) //s1 -s6表示1-6的数码管需要显示的数字
{
SMG_WEI =0x01 //第1个数码管选通 000001
SMG_DUAN =smgcode[s1]; //如s1传入1表示要显示1,那么直接调用数组偏移量为1的值,显示1
Delay(100); //延时一段时间消影

SMG_WEI =0x02 //第2个数码管选通 000010
SMG_DUAN =smgcode[s2]; //如s2传入2表示要显示2,那么直接调用数组偏移量为2的值,显示2
Delay(100); //延时一段时间消影

S3 /////

S4 /////

S5 //////

SMG_WEI =0x20 //第6个数码管选通 100000
SMG_DUAN =smgcode[s6]; //如s6传入6表示要显示6,那么直接调用数组偏移量为6的值,显示6
Delay(100); //延时一段时间消影

SMG_WEI =0;
SMG_DUAN =0; //清除显示,保证每位数码管亮度一致

}

void main()
{
while(1)
{
DisPlay(1,2,3,4,5,6);//数码管显示 1 2 3 4 5 6
}
}

热心网友 时间:2023-10-22 15:36

是扫描频率太低了,人眼能够分辨出来,所以只看到一位数字在显示。你试试把主程序delay(50000);的时间改短一点,慢慢调试,总能成功的。

热心网友 时间:2023-10-22 15:36

很容易,首先假如我们有6位数码管,每位数码管需要8个段选1个公共选通端, 那么6位数码管自然是8位端选信号 6位选通信号(分别选通1-6其中的一个数码管)
#define SMG_WEI P0 //P1.0 -P1.5 分别驱动数码管选通
#define SMG_DUAN P1 //P1.0 -P1.7接数码管8个段选
unsigned char smgcode[]={x,x,x,x,x,x,x,x,x,x} //对应数码管0-9的值,实际根据段信号确定

void Delay(unsigned long w)
{
while(w--);
}

void DisPlay(unsigned char s1,unsigned char s2,unsigned char s3,unsigned char s4,unsigned char s5,unsigned char s6) //s1 -s6表示1-6的数码管需要显示的数字
{
SMG_WEI =0x01 //第1个数码管选通 000001
SMG_DUAN =smgcode[s1]; //如s1传入1表示要显示1,那么直接调用数组偏移量为1的值,显示1
Delay(100); //延时一段时间消影

SMG_WEI =0x02 //第2个数码管选通 000010
SMG_DUAN =smgcode[s2]; //如s2传入2表示要显示2,那么直接调用数组偏移量为2的值,显示2
Delay(100); //延时一段时间消影

S3 /////

S4 /////

S5 //////

SMG_WEI =0x20 //第6个数码管选通 100000
SMG_DUAN =smgcode[s6]; //如s6传入6表示要显示6,那么直接调用数组偏移量为6的值,显示6
Delay(100); //延时一段时间消影

SMG_WEI =0;
SMG_DUAN =0; //清除显示,保证每位数码管亮度一致

}

void main()
{
while(1)
{
DisPlay(1,2,3,4,5,6);//数码管显示 1 2 3 4 5 6
}
}

热心网友 时间:2023-10-22 15:36

是扫描频率太低了,人眼能够分辨出来,所以只看到一位数字在显示。你试试把主程序delay(50000);的时间改短一点,慢慢调试,总能成功的。

热心网友 时间:2023-10-22 15:36

很容易,首先假如我们有6位数码管,每位数码管需要8个段选1个公共选通端, 那么6位数码管自然是8位端选信号 6位选通信号(分别选通1-6其中的一个数码管)
#define SMG_WEI P0 //P1.0 -P1.5 分别驱动数码管选通
#define SMG_DUAN P1 //P1.0 -P1.7接数码管8个段选
unsigned char smgcode[]={x,x,x,x,x,x,x,x,x,x} //对应数码管0-9的值,实际根据段信号确定

void Delay(unsigned long w)
{
while(w--);
}

void DisPlay(unsigned char s1,unsigned char s2,unsigned char s3,unsigned char s4,unsigned char s5,unsigned char s6) //s1 -s6表示1-6的数码管需要显示的数字
{
SMG_WEI =0x01 //第1个数码管选通 000001
SMG_DUAN =smgcode[s1]; //如s1传入1表示要显示1,那么直接调用数组偏移量为1的值,显示1
Delay(100); //延时一段时间消影

SMG_WEI =0x02 //第2个数码管选通 000010
SMG_DUAN =smgcode[s2]; //如s2传入2表示要显示2,那么直接调用数组偏移量为2的值,显示2
Delay(100); //延时一段时间消影

S3 /////

S4 /////

S5 //////

SMG_WEI =0x20 //第6个数码管选通 100000
SMG_DUAN =smgcode[s6]; //如s6传入6表示要显示6,那么直接调用数组偏移量为6的值,显示6
Delay(100); //延时一段时间消影

SMG_WEI =0;
SMG_DUAN =0; //清除显示,保证每位数码管亮度一致

}

void main()
{
while(1)
{
DisPlay(1,2,3,4,5,6);//数码管显示 1 2 3 4 5 6
}
}

热心网友 时间:2023-10-22 15:36

是扫描频率太低了,人眼能够分辨出来,所以只看到一位数字在显示。你试试把主程序delay(50000);的时间改短一点,慢慢调试,总能成功的。

热心网友 时间:2023-10-22 15:36

很容易,首先假如我们有6位数码管,每位数码管需要8个段选1个公共选通端, 那么6位数码管自然是8位端选信号 6位选通信号(分别选通1-6其中的一个数码管)
#define SMG_WEI P0 //P1.0 -P1.5 分别驱动数码管选通
#define SMG_DUAN P1 //P1.0 -P1.7接数码管8个段选
unsigned char smgcode[]={x,x,x,x,x,x,x,x,x,x} //对应数码管0-9的值,实际根据段信号确定

void Delay(unsigned long w)
{
while(w--);
}

void DisPlay(unsigned char s1,unsigned char s2,unsigned char s3,unsigned char s4,unsigned char s5,unsigned char s6) //s1 -s6表示1-6的数码管需要显示的数字
{
SMG_WEI =0x01 //第1个数码管选通 000001
SMG_DUAN =smgcode[s1]; //如s1传入1表示要显示1,那么直接调用数组偏移量为1的值,显示1
Delay(100); //延时一段时间消影

SMG_WEI =0x02 //第2个数码管选通 000010
SMG_DUAN =smgcode[s2]; //如s2传入2表示要显示2,那么直接调用数组偏移量为2的值,显示2
Delay(100); //延时一段时间消影

S3 /////

S4 /////

S5 //////

SMG_WEI =0x20 //第6个数码管选通 100000
SMG_DUAN =smgcode[s6]; //如s6传入6表示要显示6,那么直接调用数组偏移量为6的值,显示6
Delay(100); //延时一段时间消影

SMG_WEI =0;
SMG_DUAN =0; //清除显示,保证每位数码管亮度一致

}

void main()
{
while(1)
{
DisPlay(1,2,3,4,5,6);//数码管显示 1 2 3 4 5 6
}
}

热心网友 时间:2023-10-22 15:36

是扫描频率太低了,人眼能够分辨出来,所以只看到一位数字在显示。你试试把主程序delay(50000);的时间改短一点,慢慢调试,总能成功的。

热心网友 时间:2023-10-22 15:36

很容易,首先假如我们有6位数码管,每位数码管需要8个段选1个公共选通端, 那么6位数码管自然是8位端选信号 6位选通信号(分别选通1-6其中的一个数码管)
#define SMG_WEI P0 //P1.0 -P1.5 分别驱动数码管选通
#define SMG_DUAN P1 //P1.0 -P1.7接数码管8个段选
unsigned char smgcode[]={x,x,x,x,x,x,x,x,x,x} //对应数码管0-9的值,实际根据段信号确定

void Delay(unsigned long w)
{
while(w--);
}

void DisPlay(unsigned char s1,unsigned char s2,unsigned char s3,unsigned char s4,unsigned char s5,unsigned char s6) //s1 -s6表示1-6的数码管需要显示的数字
{
SMG_WEI =0x01 //第1个数码管选通 000001
SMG_DUAN =smgcode[s1]; //如s1传入1表示要显示1,那么直接调用数组偏移量为1的值,显示1
Delay(100); //延时一段时间消影

SMG_WEI =0x02 //第2个数码管选通 000010
SMG_DUAN =smgcode[s2]; //如s2传入2表示要显示2,那么直接调用数组偏移量为2的值,显示2
Delay(100); //延时一段时间消影

S3 /////

S4 /////

S5 //////

SMG_WEI =0x20 //第6个数码管选通 100000
SMG_DUAN =smgcode[s6]; //如s6传入6表示要显示6,那么直接调用数组偏移量为6的值,显示6
Delay(100); //延时一段时间消影

SMG_WEI =0;
SMG_DUAN =0; //清除显示,保证每位数码管亮度一致

}

void main()
{
while(1)
{
DisPlay(1,2,3,4,5,6);//数码管显示 1 2 3 4 5 6
}
}

热心网友 时间:2023-10-22 15:36

是扫描频率太低了,人眼能够分辨出来,所以只看到一位数字在显示。你试试把主程序delay(50000);的时间改短一点,慢慢调试,总能成功的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
粒上皇开口熟栗120g*5袋(共600g)-详细介绍 三皇王板栗介绍 品牌榜:2024年板栗十大品牌排行榜 投票结果公布【新】 为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 软考初级网络管理员,是什么时候考试? 网络管理员一年考几次?都在什么时候报考 ? 网络管理员考试的科目 数码管动态显示原理 (如何让数码管的动态扫描慢一点) 国家的网络管理员考证每年进行几次什么时候 动态扫描显示的c语言程序是怎么写的,是共阳极的,四个管 关于用单片机实现数码管动态扫描显示 网络管理员考试时间和地点 基于单片机的数码管动态扫描显示问题 数码管显示的动态扫描原理 网络管理员 全国计算机技术与软件专业技术资格(水平)考试 用动态扫描方式显示12345678编程单片机 网络管理员好考吗? 单片机控制的LED动态扫描显示原理 网络管理员考试是什么时候? 单片机初学,数码管动态扫描,显示问题 单片机数码管动态扫描显示,时间这样设置才能更好的显示一连串数在屏幕上,有没有数码规律?、? 网络管理员每年什么时候考,可以考几次? LED显示屏静态扫描和动态扫描有什么区别? 国考网络管理员等级考试的考试时间 2009年江苏 网络管理员考试时间? proteus 仿真单片机 两位数码管动态扫描显示乱码 网络管理员考试何时报名 江苏的 索尼x280寻像器怎么更换 2008杭州网络管理员考试报名 什么是LED数码管静态扫描和动态扫描.简述LED数码管动态扫描的原理及其实现方式 LED显示屏静态扫描和动态扫描有什么区别 商贸公司怎样缴纳印花税? 昆明市做商贸销售的一般纳税人印花税怎么计算,谢谢�1�3 一般纳税人的贸易公司、进货5000元、销出是10000元、请问我应该交多少税、利润有多少?它的公式怎样计算 word图片改成文字环绕后还是无法移动是为什么? 为什么word插入文本框里面的图片不跟着文本框动 救命呀word图片衬于文字下怎么移动不了? 求开业期间打折的广告词 金杯阁瑞斯7座空调继电器那加一个电笔就可以用拿掉就不工作啦 华晨金杯阁瑞斯九座空调不出风? 求几句XX商品夏季打折优惠200元的广告语——可以模仿他人 我是卖早点的~三八节开业~想对所有妇女同半价优惠…请问一各位朋友我该怎么写广告语!谢谢 金杯阁瑞斯,暖风开关,空调开关,都打开了,没放应,放了一夜打开了就工作几分钟,有不能用了??? 我要写一个卖衣服打折的广告语怎么写吸引人 谢谢 急用