?? 4ledint.c
字號(hào):
/*******************************************************************************
* *
* 4位不帶小數(shù)點(diǎn)的頻率計(jì) *
* *
********************************************************************************
* 51測(cè)試網(wǎng)論壇例程 版權(quán)所有轉(zhuǎn)載注明版權(quán)連接WWW.8951.com *
*******************************************************************************/
#include <AT89X51.H>
#include <stdio.h>
int value=0,n=0;
int n,n1,n2,n3,n4;
int LEDData [] = { 0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60};
void delay(short i);
void initial(void);
void display(void);
main ()
{
initial();
while(1)
{
if(n==100)
{
display();
n=0;
value=0;
}
}
}
void initial(void)//定時(shí)器計(jì)數(shù)器初始化
{
IE=0x8b;
TCON=0x01;
TMOD=0x11;
TH0=0xD8;//T0作為定時(shí)器初始化0.01秒中一次斷
TL0=0xF0;
TH1=0XFF;//T1產(chǎn)生625HZ
TL1=0X60;
TR0=1;
TR1=1;
}
void delay(short i)
{
int j=0;
int k=0;
k=i*2;
while(j<k) j++;
}
void extern0_ISR () interrupt 0 //INT0外部脈沖中斷
{
EX0=0;
value++;
EX0=1;
}
void timer0_ISR () interrupt 1 //定時(shí)器每0.01秒中斷一次T0
{
n++;
TH0=0xD8;
TL0=0xF0;
}
void timer1_ISR () interrupt 3//T1625hz
{
P1=P1^0xc0;
TH1=0XFF;//T1產(chǎn)生3125HZ
TL1=0X60;
}
void display(void)
{
n4=value/1000;
n3=(value-n4*1000)/100;
n2=(value-n4*1000-100*n3)/10;
n1=value-n4*1000-100*n3-10*n2;
while(1)
{
P2=0x3f;
P0=LEDData [n1];
delay(50);
P2=0x5f;
P0=LEDData [n2];
delay(50);
P2=0x6f;
P0=LEDData [n3];
delay(50);
P2=0xf7;
P0=LEDData [n4];
delay(50);
P2=0xff;
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -