📄 digitallight.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 + -