|
兩個(gè)數(shù)碼管,K1,K2兩個(gè)按鍵,完成K1啟動(dòng)計(jì)數(shù),K2暫停計(jì)數(shù),每一秒鐘數(shù)碼管增加1,60秒鐘后,蜂鳴器響一聲,數(shù)碼管回歸0,重新計(jì)數(shù)。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (11.21 KB, 下載次數(shù): 53)
下載附件
2018-10-19 01:59 上傳
單片機(jī)源程序如下:
- #include <reg51.h>
- sbit P2_7=P2^7;
- sbit P3_2=P3^2;
- sbit P3_3=P3^3;
- int count=0;
- int sign=0;
- int count1=0;
- int count1_h=0;
- int count1_l=0;
- char count2[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- void delay(long time)
- {
- int i=0;
- while(time--)
- for(i=0;i<125;i++);
- }
- void delay1(long time)
- {
- int i=0;
- while(time--)
- for(i=0;i<125;i++);
- }
- void buz_on()
- {
- P2_7=1;
- delay(100);
- P2_7=0;
- }
- void clear()
- {
- count=0;
- buz_on();
- }
- void k1on() interrupt 0
- {
- if(P3_2!=1)
- {
- delay1(50);
- if(P3_2!=1)
- {
- TMOD=0x01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- ET0=1;
- TR0=1;
- }
- }
- sign=1;
- }
- void k2on() interrupt 2
- {
- TR0=0;
- sign=0;
- }
- void timer0() interrupt 1
- {
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- count++;
- }
- void main()
- {
- P2_7=0;
- P3_2=1;
- P3_3=1;
- P1=0x3f;
- P2=0x3f;
- EA=1;
- EX0=1;
- EX1=1;
- TCON=0x05;
- while(1)
- {
-
- count1=count/20;
- count1_h=count1/10;
- count1_l=count1%10;
- P2=count2[count1_h];
- P1=count2[count1_l];
- if(count1>=60)
- {
- clear();
- }
- }
- }
復(fù)制代碼
0.png (52.89 KB, 下載次數(shù): 51)
下載附件
2018-10-19 02:00 上傳
所有資料51hei提供下載:
實(shí)驗(yàn)四.zip
(54.68 KB, 下載次數(shù): 22)
2018-10-18 19:08 上傳
點(diǎn)擊文件名下載附件
內(nèi)含電路圖和代碼 下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|