自行車測速系統 基于單片機c
自行車測速 c.docx
(11.66 KB, 下載次數: 10)
2017-11-28 15:20 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
- #include <AT89X51.H>
- #define uchar unsigned char
- #define uint unsigned int
-
- uchar code seg7code[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
- uint sec,miaoshu,tcnt,count;
-
- sbit p00=P0^0; //各個口定義
- sbit p01=P0^1;
- sbit p02=P0^2;
- sbit p03=P0^3;
- sbit p04=P0^4;
- sbit p05=P0^5;
-
- void Delay(uchar t)
- {
- uchar i;
- while(t--)
- {
- for ( i = 0; i < 200 ;i ++);
- }
- }
-
-
-
- void t0(void) interrupt 1 using 0 //定時T0中斷服務函數
- {
- tcnt++; //每過250ust tcnt 加一
- if(tcnt==40) //計滿40 次(1/100 秒)時
- {
- tcnt=0; //重新再計
- sec++;
- if(sec==100) //定時1 秒,在從零開始計時
- {
- sec=0;
- TH0=0x06; //對TH0 TL0 賦值
- TL0=0x06;
- miaoshu=count;
- count=0;
- }
- }
- }
-
- void t1(void) interrupt 3 using 0 //計數T1中斷服務函數
- {
- count=count+1;
- TF0=1;
- TH1=255;
- TL1=255;
- TR1=1;
- EA=1;
- }
-
- void LED()
- {
- if (miaoshu>=100)
- {
- p04=0;P1=0x00;
- }
- else
- {
- p04=1;P1=0xFF;
- }
-
- P2=seg7code[miaoshu/1000];
- p00=1;
- Delay(5);
- p00=0;
-
- P2=seg7code[miaoshu/100%10];
- p01=1;
- Delay(5);
- p01=0;
-
- P2=seg7code[(miaoshu%100)/10];
- p02=1;
- Delay(5);
- p02=0;
-
- P2=seg7code[miaoshu%10];
- p03=1;
- Delay(5);
- p03=0;
- }
-
- void main(void)//主程序
- {
- TMOD=0x62; //定時器T0工作在方式2 自動重裝方式,計數器T1工作在方式2 自動重裝方式
- TH0=0x06; //對TH0 TL0 賦值
- TL0=0x06;
- TR0=1; //開始定時
- ET0=1; //允許T0 產生中斷
- EA=1;
- TH1=255;
- TL1=255;
- TR1=1;
- ET1=1;
-
- EA=1;
- sec=0;
- miaoshu=0;tcnt=0;count=0;
- while(1)//調用各個函數模塊,死循環
- {
- LED();
- }
- }
-
復制代碼
|