客車載客計(jì)數(shù)器設(shè)計(jì) 1、設(shè)計(jì)一個(gè)設(shè)計(jì)器用以統(tǒng)計(jì)客車人數(shù)。 2、乘客的上下車檢測(cè)用按鍵代替,其中上車按鍵每按下一次表示上車1人,下車按鍵每按下一次表示下車1人。 3、通過2位數(shù)碼管顯示車內(nèi)乘客數(shù)。 4、當(dāng)乘客數(shù)大于10人時(shí),紅色報(bào)警燈閃爍。
電路原理圖如下:
20220422204054.png (45.74 KB, 下載次數(shù): 39)
下載附件
2022-4-22 20:41 上傳
單片機(jī)源程序如下:
- #include <reg51.h>
- nnsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- sbit K1=P3^0;
- sbit K2=P3^1;
- sbit LED_led=P1^7;
- sbit A1=P2^0;
- sbit B1=P2^1;
- sbit buzz=P3^7;
- unsigned char cos=0,shi=0;
- int num=0;
- /*延時(shí)函數(shù)*/
- void delay(int i)
- {
- int x,y;
- for(x=0;x<i;x++)
- for(y=0;y<120;y++);
- }
- /*按鍵控制子函數(shù)*/
- void key()
- {
- if(K1==0)
- {
- delay(500);
- num=num+1;
- if(num>99)
- num=0;
- }
- if(K2==0)
- {
- delay(500);
- num=num-1;
- if(num<0)
- num=0;
- }
- }
- /*數(shù)碼管顯示函數(shù)*/
- void display()
- {
- A1=0;
- B1=0;
- cos=num%10;//個(gè)位
- shi=num/10;//十位
-
- B1=1;
- P0=tab[cos];
- delay(10);
- B1=0;
- A1=1;
- P0=tab[shi];
- delay(10);
- A1=0;
-
- }
- /*主函數(shù)*/
- void main()
- {
- LED_led=1;
- while(1)
- {
- key();
- display();
- if(num>10)
- {
- LED_led=0;
- buzz=0;
- delay(10);
- LED_led=1;
-
- }
- else
- {
- LED_led=1;
- buzz=1;
- }
- }
- }
復(fù)制代碼
|