單片機源程序如下:
- #include "reg51.h"
- #include "intrins.h"
- #define uchar unsigned char
- #define uint unsigned int
- #define out P0
- uchar code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x01};
- int i=0;
- //int TH00;
-
- void main(void)
- {
- int j;
- TMOD=0x15; // T0方式1計數(shù),T1方式1定時
- TH0=0; // T0計數(shù)器清零
- TL0=0;
- TH1=0x3C; // 12MHz晶振,T1定時50ms
- TL1=0xB0;
- TR0=1; // 啟動T0計數(shù)器
- TR1=1; // 啟動T1
- IE=0x88; // 允許T1中斷和總中斷允許
- while(1)
- { P2=0x00; // 輸出百位顯示值
- out=seg[i/100];
- P2=0x02;
- for(j=0;j<100;j++);
- P2=0x00;
- out=seg[i%100/10]; // 輸出十位顯示值
- P2=0x04;
- for(j=0;j<100;j++);
- P2=0x00; out=seg[i%10]; // 輸出個位顯示值
- P2=0x08;
- for(j=0;j<100;j++);
- }
- }
- void Timer1_ISR() interrupt 3 // T1中斷程序,產(chǎn)生50ms 定時
- { static char j = 0;
- TH1=0x3C; // 重設定時器值,50ms 定時,12MHz 晶振
- TL1=0xB0;
- if(++j == 20) // 是否中斷20次,即50msx20次 = 1s
- { j=0;
- i=(TH0 << 8)|TL0;
- // 1s內(nèi)的計數(shù)值即為電機轉動速度,單位:轉/秒
- TH0=0; // T0清零
- TL0=0;
- }
- }
復制代碼
所有資料51hei提供下載:
E1.zip
(779 Bytes, 下載次數(shù): 23)
2018-5-16 17:38 上傳
點擊文件名下載附件
51單片機測量電機轉速 下載積分: 黑幣 -5
|