剛開始接觸單片機。作為一個新手小白,是選擇從基礎的流水燈,數碼管,定時/計數等方面的學習,來實現簡單的編程,從而逐步提高自己的能力水平。這是剛學會的用單片機中斷系統來實現的簡單的秒表。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- uint addNum;
- uchar secNum;
- #define SEGNUM P0
- #define WEI P2
- uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
- 0x7d,0x07,0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71,0x00};
- void delay(uint num)
- {
- uchar i,j;
- for(i=num;i>0;i--)
- for(j=120;j>0;j--);
- }
- void main()
- {
- TMOD =0x02;
- TL0=TH0=6;
- ET0=1;
- EA=1;
- TR0=1;
- while(1)
- {
- WEI=0xfe;
- SEGNUM=table[secNum%100/10];
- delay(50);
- WEI=0xfd;
- SEGNUM=table[secNum%10];
- delay(50);
-
- }
- }
- void timer0() interrupt 1
- {
- addNum++;
- if(addNum==4000)
- {
- secNum++;
- addNum=0;
- }
- }
復制代碼
所有資料51hei提供下載:
DPJ秒表.zip
(52.55 KB, 下載次數: 16)
2018-11-10 16:40 上傳
點擊文件名下載附件
|