我的選題基于單片機流水線自動計數器,要求是自動計數,自動加一。它是由一塊51單片機控制,數碼管顯示,以及紅外光電計數,其中電阻的功能是驅動數碼管。其中單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統集成到一個芯片上。概括的講:一塊芯片就成了
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- //段碼
- uchar code
- DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
- uchar Count=0;
- //主程序
- void main()
- {
- P0=0x00;
- P2=0x00;
-
- TMOD=0x06; //計數器 T0 方式 2
- TH0=TL0=256-1; //計數值為 1
- ET0=1; //允許 T0 中斷
- EX0=1; //允許 INT0 中斷
- EA=1; //允許 CPU 中斷
- IP=0x02; //設置優先級,T0 高于 INT0
- IT0=1; //INT0 中斷觸發方式為下降沿觸發
- TR0=1; //啟動 T0
- while(1)
- {
- P0=DSY_CODE[Count/10];
- P2=DSY_CODE[Count%10];
- }
- }
- //T0 計數器中斷函數
- void Key_Counter() interrupt 1
- {
- Count=(Count+1)%100; //因為只有兩位數碼管,計數控制在 100 以內(00~99)
- }
- //INT0 中斷函數
- void Clear_Counter() interrupt 0
- {
- Count=0;
- }
復制代碼
一臺計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。
|