?? main.c
字號:
#include <reg51.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
#define LED_MAX 6
uchar code seg_table[17]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,
0x6F,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
uchar led_buf[LED_MAX]={0};
uchar led_x=0;
uchar led_scan_code=1;
void delay_ms(int ms)
{uchar i;
uint j;
for(j=2*ms;j>0;j--)
for(i=250;i>0;i--);
}
void scan_buf()
{
P1=~led_scan_code;
P0=seg_table[led_buf[led_x]];
// delay_ms(5);
led_x++;
if (led_x>LED_MAX) led_x=0;
led_scan_code<<=1;
if (led_scan_code>(01<<LED_MAX)) led_scan_code=1;
}
void led_display(uchar x , uchar c)
{
led_buf[LED_MAX-x]=c;
}
void led_clear()
{
uchar i;
for (i=0;i<LED_MAX;i++) led_buf[i]=16;
}
void led_init()
{
ET0=1;
EA=1;
TL0=(65536-5000);
TH0=(65536-5000)>>8;
TMOD=0X01;
TR0=1;
led_clear();
}
void led_num(long x)
{
char str[10],i;
char fstr[5];
sprintf(fstr,"%%%dlu",LED_MAX);
sprintf(str,"%6lu",x);
for (i=0;i<LED_MAX;i++)
led_display(i+1,str[LED_MAX-i-1]-'0');
}
void main()
{
uchar i=0;
led_init();
led_clear();
led_num(123356);
while (1)
{
}
}
void isr_timer0() interrupt 1
{
scan_buf();
TL0=(65536-5000);
TH0=(65536-5000)>>8;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -