8位共阳数码管滚动显示单个数字

8位共阳数码管滚动显示单个数字

请点击☛link 私信客服,免费领取1tb电子硬件软件,职业规划,编程语言等资料!!(小编的小店,感谢支持,您的支持是我创作的动力)

代码:

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int

uchar code DSY_CODE[]=
{
 	0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};

void DelayMS(uint x)
{
 	uchar i;
	while(x--)
	{
	 	for(i=200;i>0;i--);
	}
}

void main()
{
 	uchar i,k=0x80;
	while(1)
	{
	 	for(i=8;i>0;i--)
		{
		 	P2=0xff;
			k=_crol_(k,1);
			P0=DSY_CODE[8-i];
			P2=k;
			DelayMS(3);
		}
	}
}

硬件连接:
在这里插入图片描述

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
下面是共阴极数码管滚动显示单个数字的代码,其中使用了延时函数实现数字滚动效果。代码中默认使用Arduino开发板,如果您使用其他类型的开发板,请根据具体情况进行修改。 ``` int digitPins[] = {2,3,4,5,6,7,8,9}; // 数码管数字引脚 int segmentPins[] = {10,11,12,13,A0,A1,A2,A3}; // 数码管段引脚 int digitCount = 8; // 数码管数量 int delayTime = 100; // 滚动延时时间,单位毫秒 // 数字表 byte numbers[] = { B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, // 3 B01100110, // 4 B10110110, // 5 B10111110, // 6 B11100000, // 7 B11111110, // 8 B11110110, // 9 }; void setup() { // 初始化引脚 for (int i = 0; i < digitCount; i++) { pinMode(digitPins[i], OUTPUT); digitalWrite(digitPins[i], HIGH); } for (int i = 0; i < 8; i++) { pinMode(segmentPins[i], OUTPUT); digitalWrite(segmentPins[i], LOW); } } void loop() { // 显示数字 0-9 for (int i = 0; i < 10; i++) { for (int j = 0; j < digitCount; j++) { digitalWrite(digitPins[j], LOW); byte number = numbers[i]; if (j == digitCount - 1) { number |= B00000001; // 小数点 } displayNumber(number); delay(delayTime); digitalWrite(digitPins[j], HIGH); } } } // 显示数字 void displayNumber(byte number) { for (int i = 0; i < 8; i++) { digitalWrite(segmentPins[i], bitRead(number, i)); } } ``` 在上述代码中,我们定义了8个数码管数字引脚和8个数码管段引脚,并使用`byte`类型的`numbers`数组存储了0-9的数字表。在`setup()`函数中,我们初始化了这些引脚。在`loop()`函数中,我们循环显示数字0-9,并使用`delay()`函数实现数字滚动效果。最后,我们在`displayNumber()`函数中实现了显示数字的功能,其中通过`bitRead()`函数读取数字表中相应位的值,然后通过`digitalWrite()`函数输出到数码管的段引脚上。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晟佳未来电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值