?? ex52.c
字號:
//實例52:用定時器T0控制輸出高低寬度不同的矩形波
#include<reg51.h> //包含51單片機寄存器定義的頭文件
sbit u=P3^0; //將u位定義為P3.0,從該引腳輸出矩形脈沖
unsigned char Countor; //設置全局變量,儲存負跳變累計數
/*************************************************
函數功能:延時約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++)
;
}
/*******************************************
函數功能:主函數
******************************************/
void main(void)
{
unsigned char i;
EA=1; //開放總中斷
EX0=1; //允許使用外中斷
IT0=1; //選擇負跳變來觸發外中斷
Countor=0;
for(i=0;i<100;i++) //輸出100個負跳變
{
u=1;
delay30ms();
u=0;
delay30ms();
}
while(1)
; //無限循環, 防止程序跑飛
}
/**************************************************************
函數功能:外中斷T0的中斷服務程序
**************************************************************/
void int0(void) interrupt 0 using 0 //外中斷0的中斷編號為0
{
Countor++;
P1=Countor;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -