新人發(fā)帖: 實(shí)驗(yàn)六、實(shí)驗(yàn)內(nèi)容 1. 連線并編制程序。使用定時(shí)器1中斷,按方式1工作,得到1S的定時(shí);按方式2工作,得到4ms的定時(shí)。 2.初始化程序 包括定時(shí)器初始化和中斷系統(tǒng)初始化。主要對(duì)IP,IE,TCON,TMOD 的相應(yīng)位進(jìn)行正確的設(shè)置,并將時(shí)間常數(shù)送入定時(shí)器中。由于只有定時(shí)器中斷,IP不必設(shè)置。 3.設(shè)計(jì)中斷服務(wù)程序和主程序 中斷服務(wù)程序除了要完成計(jì)時(shí)工作外,還要實(shí)現(xiàn)動(dòng)態(tài)顯示。
軟件設(shè)計(jì):擴(kuò)展單個(gè)按鍵,使其具有“開啟/停止/清除”的功能,開啟:可以實(shí)現(xiàn)0—99S的計(jì)時(shí),停止:能顯示記錄的時(shí)間,清除:具有清除當(dāng)前記錄重新記錄數(shù)據(jù)。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.png (85.94 KB, 下載次數(shù): 85)
下載附件
電路設(shè)計(jì)參考圖
2020-6-11 17:44 上傳
單片機(jī)源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint usigned int
- #define SEG P2
- uchar key_idx,key_state;
- #define SCANP P1;
- sbit LED=P0^7;
- sbit K1=P1^7;
- char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,
- 0x92,0x83,0xf8,0x80,0x98};
- char disp[2]={0xc0,0xc0};
- char seconds=0; //秒數(shù)
- char scan=0; //掃描信號(hào)
- int count_T0=0; //中斷次數(shù)
- int count_T1=0;
- void delay(int x)
- {
- uchar i;
- while(x--)
- for(i=0;i<100;i++);
- }
- void key_envent()
- {
- if(key_state==0)
- {
- key_idx=(key_idx+1)%3;
- switch(key_idx)
- {
- case 1:EA=1;TR0=1;break;
- case 2:TR0=0;break ;
- case 0:TR0=1;seconds=0;
- }
- }
- }
- main()
- { key_idx=0; //按鍵次數(shù)(0,1,2,3)
- key_state=1;//按鍵狀態(tài)
- IE=0x8a;
- TMOD=0x21;
- TH0=(65636-50000)/256;
- TL0=(65636-50000)%256;
- TR0=1;
- TH1=256-250;
- TL1=256-250;
- TR1=1;
- LED=1;
- while(1)
- {
- if(key_state!=K1)
- {
- delay(10);
- key_state=K1;
- key_envent();
- }
- }
- }
- //T0中斷子程序,計(jì)算顯示秒數(shù)
- void T0_1s(void) interrupt 1
- { TH0=(65636-50000)/256;
- TL0=(65636-50000)%256;
-
- if(++count_T0==20) //20*0.05=1s
- {
- count_T0=0;
- if(key_idx==1) seconds++;
- if(seconds==100)
- { seconds=0;
- LED=~LED;}
-
- }
- disp[1]=TAB[seconds/10];
- disp[0]=TAB[seconds%10]; //個(gè)位
- }
- void T1_8ms(void) interrupt 3
- {
- if(++count_T1==32) //0.25*32=8ms
- { count_T1=0;
- if(++scan==3) scan=1;
- SEG=0xff;
- P1=~scan;
- SEG=disp[scan-1];
- }
- }
復(fù)制代碼
51hei.png (16.62 KB, 下載次數(shù): 96)
下載附件
2020-6-11 18:46 上傳
所有資料51hei提供下載:
實(shí)驗(yàn)六.zip
(49.42 KB, 下載次數(shù): 46)
2020-6-11 17:47 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|