|
#include<reg51.h> //包含51單片機(jī)寄存器定義的頭文件
sbit u=P3^0; //將u位定義為P3.0,從該引腳輸出矩形脈沖
unsigned char Countor; //設(shè)置全局變量,儲(chǔ)存負(fù)跳變累計(jì)數(shù)
/*************************************************
函數(shù)功能:延時(shí)約30ms (3*100*100=30 000μs =30ms)
*************************************************/
void delay30ms(void)
{
unsigned char m,n;
for(m=0;m<100;m++)
for(n=0;n<100;n++)
;
}
/*******************************************
函數(shù)功能:主函數(shù)
******************************************/
void main(void)
{
unsigned char i;
EA=1; //開放總中斷
EX0=1; //允許使用外中斷
IT0=1; //選擇負(fù)跳變來觸發(fā)外中斷
Countor=0;
for(i=0;i<100;i++) //輸出100個(gè)負(fù)跳變
{
u=1;
delay30ms();
u=0;
delay30ms();
}
while(1)
; //無限循環(huán), 防止程序跑飛
}
/**************************************************************
函數(shù)功能:外中斷T0的中斷服務(wù)程序
**************************************************************/
void int0(void) interrupt 0 using 0 //外中斷0的中斷編號(hào)為0
{
Countor++;
P1=Countor;
}
延時(shí)程序的時(shí)間是怎么算的?
倒數(shù)第二行" P1=Countor“有什么作用?
|
|