欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機定時器,延時程序的時間是怎么算的?
[打印本頁]
作者:
heicad
時間:
2016-3-11 22:17
標題:
單片機定時器,延時程序的時間是怎么算的?
#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;
}
延時程序的時間是怎么算的?
倒數第二行" P1=Countor“有什么作用?
作者:
heicad
時間:
2016-3-11 22:17
" P1=Countor“大概是用發光二極管顯示Countor二進制的值。
作者:
heicad
時間:
2016-3-11 22:18
把Countor的值賦給P1,還有你的程序有問題,主函數最后是while(1)結尾,這樣樣程序在空跑。也就是相當于在等待。程序只執行一次后面就是在等待。
作者:
heicad
時間:
2016-3-11 22:18
賦值,使P1輸出
作者:
heicad
時間:
2016-3-11 22:18
這個看你所用單片機的晶振頻率以及單片機型號 例如51系列單片機 其機器頻率等于晶振頻率12分頻 即除以12,用12MHz的晶振時機器頻率一MHz 處理一條指令的時間是1us ,用C語言的話時間不太精確,大致一條指令1Us 10^6分之一秒
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1