📄 numled.c
字号:
#include <AT89X52.H>
/* 10us延时程序 */
void delay_10us(void)
{
unsigned char i;
for (i=0;i<1;i++)
;
}
/* ms级延时程序 */
void delay_ms(unsigned int number)
{
unsigned char i;
do
{
for(i=0;i<100;i++)
delay_10us();
}
while(--number!=0);
}
#define num_bit P1
unsigned char xdata num_seg _at_ 0xf700;
unsigned char code seg_tabel[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
unsigned char idata led_buffer[6] _at_ 0x90;
void display(void)
{
unsigned char i;
for(i=0;i<6;i++)
{
num_seg=led_buffer[i];
num_bit=~(0x04<<i);
delay_ms(1);
num_bit=0xff;
num_seg=0xff;
}
}
void main(void)
{
unsigned char i,j=6;
for (i=0;i<6;i++)
led_buffer[5-i]=seg_tabel[i];
while(1)
{
for(i=0;i<200;i++)
display();
for (i=5;i>0;i--)
led_buffer[i]=led_buffer[i-1];
led_buffer[0]=seg_tabel[j];
if (j<15)
j++;
else
j=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -