運用51單片機的中斷,LED顯示,實現一個微型的秒表。

定時器秒表
實驗報告
原理圖

程序流程圖


實驗反思
經過本次的上機,我對51單片機工作模式的轉換有了更加深刻的認識,能從根本上知道是怎么一回事了,本次的實驗三,在機房操作時,對定時器的工作模式有點錯誤的認識,還有對一個按鍵控制多種操作自己也是遇到了很大困難,好在經過自己認真看書,以及積極向老師和同學請教,問題才能夠迎刃而解,總之,這節課再次把書本上的知識搬到了實踐中,收獲挺大的。
源程序 - #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- unsigned char code table []={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- unsigned char count=0,b;
- sbit key=P3^7;
- uchar ds_time = 0;
- uchar i;
- uchar t=0;
- void delay(uint i)
- {
- char j;
- for(i; i > 0; i--)
- for(j = 200; j > 0; j--);
- }
- void main()
- {
- TMOD=0x01;
- TH0=0x3c;
- TL0=0xb0;
- ET0=1;
- TR0=1;
- EA=1;
- key=1;
- while(1){
- if(key==0)
- {while(!key)
- {b++;
- delay(1000);
- if(b>100)
- {b=0;
- count=0;
- }
- }
- delay(100);
- TR0=~TR0;
- }
- if(ds_time==1){
- ds_time=0;
- P0=table[count/10];
- P2=table[count%10];
- count++;
- }}
-
- }
- timer0() interrupt 1{
- t++;
- if(t==20){t=0;ds_time=1; }
- TH0=0x3c;TL0=0xb0;
- }
復制代碼
完整的Word格式文檔51黑下載地址:
定時器秒表.docx
(367.56 KB, 下載次數: 35)
2018-5-4 08:30 上傳
點擊文件名下載附件
源程序 orotues圖 下載積分: 黑幣 -5
|