51单片机数码管滚动显示

本文详细介绍了如何使用51单片机进行数码管动态显示的编程技巧,通过扫描方式实现数码管内容的滚动效果,涵盖了硬件连接、软件设计的关键步骤和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <reg51.h>

unsigned char code smgduan[18]={0x00, 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char code smgwei[8] = {0x00, 0x04,0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c};
unsigned char data_code[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
void disp(unsigned char FirBit, unsigned char Num);

void DelayUs2x(unsigned int n)//t = 2*n + 6 us
{
	while(--n);
}
void DelayMs(unsigned int n)//t = n ms
{
	while(n--)
	{
		DelayUs2x(245);
		DelayUs2x(245);
	}
}


void main()
{
	unsigned char i;
	unsigned char j;
	unsigned char n = 10000;
	unsigned int num[] = {2,0,8,1,6,0,6,0,9};
	
	while(1)
	{
		for(j = 0; j < 9; j++)
		{
			for(i = 0; i < 7; i++)
			{
				data_code[7 - i] = data_code[6 - i];
			}
			data_code[0] = smgduan[num[j] + 1];
			while(n--)
			{
				disp(1, 8);
			}
			n = 10000;
		}
		for(j = 0; j < 9; j++)
		{
		  for(i = 0; i < 7; i++)
			{
				data_code[7 - i] = data_code[6 - i];
			}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值