⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 digitallight.c

📁 共有四个例子
💻 C
字号:
//从小到大计数
#include "reg51.h"

//管脚定义 74HC138(3-8)译码器输入控制信号线
sbit p10 = P1^0;
sbit p11 = P1^1;
sbit p12 = P1^2;

unsigned char table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管 0-9 表

void delay(unsigned int n);
void display_one_digit(unsigned int num,unsigned int pos,unsigned int delay_time);
void display_integer(unsigned int n,unsigned int delay_time);

void main(void)
{
	int i;
	for(i=0;i<10000;i++)
		display_integer(i,20);
}

void display_integer(unsigned int n,unsigned int delay_time)
{
	int pos,num,res,i,j;
	unsigned int ary[8];

	pos = 0;
	num = n;
	do
	{
		res = num%10;
		num = num/10;
		ary[pos++] = res;
	}
	while(num>0);

	for(j=0;j<delay_time/pos;j++)
	{
		for(i=0;i<pos;i++)
			display_one_digit(ary[i],i,1);
	}
}

/**
 * pos: 0-7 显示位数(个十百千...)
 * num: num 显示数字(0-9)
*/
void display_one_digit(unsigned int num,unsigned int pos,unsigned int delay_time)
{
	pos = ~pos;
	p10 = pos&0x01;
	p11 = (pos&0x02)>>1;
	p12 = (pos&0x04)>>2;
	P2 = table[num];
	delay(delay_time);
	P2 = 0;
}

void delay(unsigned int n)
{
	unsigned int i,j;
	i=n;
	while(i--){		
		j=255;
		while(j--); 
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -