客車載客計數器設計 1、設計一個設計器用以統計客車人數。 2、乘客的上下車檢測用按鍵代替,其中上車按鍵每按下一次表示上車1人,下車按鍵每按下一次表示下車1人。 3、通過2位數碼管顯示車內乘客數。 4、當乘客數大于10人時,紅色報警燈閃爍。
電路原理圖如下:
20220422204054.png (45.74 KB, 下載次數: 39)
下載附件
2022-4-22 20:41 上傳
單片機源程序如下:
- #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;
- /*延時函數*/
- void delay(int i)
- {
- int x,y;
- for(x=0;x<i;x++)
- for(y=0;y<120;y++);
- }
- /*按鍵控制子函數*/
- 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;
- }
- }
- /*數碼管顯示函數*/
- void display()
- {
- A1=0;
- B1=0;
- cos=num%10;//個位
- shi=num/10;//十位
-
- B1=1;
- P0=tab[cos];
- delay(10);
- B1=0;
- A1=1;
- P0=tab[shi];
- delay(10);
- A1=0;
-
- }
- /*主函數*/
- 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;
- }
- }
- }
復制代碼
|