|
主要是用單片機(jī) INT0 的中斷進(jìn)行脈沖計數(shù)
脈沖是由Clock元器件產(chǎn)生。
INT0外部中斷輸入脈沖。
設(shè)置舉例,設(shè)置高低高時鐘,頻率為10,則設(shè)置第一個邊沿出現(xiàn)時間為1.1。
INT0是低電平觸發(fā),設(shè)置出現(xiàn)時間為1.1剛好每秒增加數(shù)為10,并且每次都是10的倍數(shù)。
開關(guān)型霍爾元器件剛好是低電平,可以直接使用。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機(jī)源程序如下:
- // 脈沖計數(shù)
- // INT0中斷計數(shù)
- #include <reg51.h>
- sbit P2_0 = P2^0;//數(shù)碼管選定位
- sbit P2_1 = P2^1;//數(shù)碼管選定位
- sbit P2_2 = P2^2;//數(shù)碼管選定位
- sbit P2_3 = P2^3;//數(shù)碼管選定位
- //共陽極數(shù)碼管
- unsigned char code table[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e};
- unsigned int motorspeed = 0;
- unsigned char GE, SHI, BAI, QIAN;
- unsigned int counter = 0;//脈沖數(shù)
- unsigned int calsp;//設(shè)定多長時間計數(shù)一次
- void display();//數(shù)碼管顯示
- void delay();//延遲函數(shù)
- void calspeed();
- void main()
- {
- EA = 1;//開啟總中斷
- EX0 = 1;//開啟外部中斷0
- IT0 = 1;//設(shè)置成下降沿觸發(fā)方式
- TMOD = 0x01;//設(shè)置定時器0為模式1,即16位計數(shù)模式
- TH0 = (65536-10000)/256;//計數(shù)時間為10ms
- TL0 = (65536-10000)%256;
- ET0 = 1;//開啟定時器0中斷
- TR0 = 1;//啟動定時器0
- P2 = P2&0xf0;//將P2的1~4置1
- while(1)
- {
- display();
- calspeed();
- }
- return ;
- }
- void calspeed()
- {
- if (calsp == 100)//100*10=1s計算1次
- {
- motorspeed = motorspeed + counter;
- counter = 0;//清零脈沖數(shù)
- calsp = 0;//清零標(biāo)志
- }
- }
- //數(shù)碼管顯示函數(shù),依次點亮數(shù)碼管
- void display()
- {
- GE = motorspeed%10;
- SHI = motorspeed/10%10;
- BAI = motorspeed/100%10;
- QIAN = motorspeed/1000%10;
- P2_0 = 1;
- P0 = table[QIAN];
- delay();
- P2_0 = 0;
- P2_1 = 1;
- P0 = table[BAI];
- delay();
- P2_1 = 0;
- P2_2 = 1;
- P0 = table[SHI];
- delay();
- P2_2 = 0;
- P2_3 = 1;
- P0 = table[GE];
- delay();
- P2_3 = 0;
- }
- //延遲函數(shù)
- void delay()
- {
- unsigned char i = 10;
- while(i--)
- ;
- }
- void _TIMER0() interrupt 1
- {
- TH0 = (65536-10000)/256;//重新裝入初值,計數(shù)時間為10ms
- TL0 = (65536-10000)%256;
- calsp++;
- }
- //INT0輸入
- void _INT0() interrupt 0
- {
- counter++;
- }
復(fù)制代碼
所有資料51hei提供下載:
脈沖計數(shù)-20190310183300.zip
(20.7 KB, 下載次數(shù): 145)
2019-3-10 18:47 上傳
點擊文件名下載附件
脈沖計數(shù)
|
評分
-
查看全部評分
|