|
可能有些小毛病仿真沒毛病,就是自己的那個(gè)開發(fā)版出不來,大家拿去研究研究
仿真原理圖如下 需要用8.0以上的版本(proteus仿真工程文件可到本帖附件中下載)
0.png (40.85 KB, 下載次數(shù): 97)
下載附件
2017-5-30 01:24 上傳
0.png (69.13 KB, 下載次數(shù): 80)
下載附件
2017-5-30 01:24 上傳
單片機(jī)源代碼如下:
- #include <reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//變量定義
- sbit BEEP=P3^1;
- sbit start_stop=P3^2;
- sbit reset=P3^3;
- sbit key1=P1^0;
- sbit key2=P1^1;
- sbit key3=P1^2;
- sbit key4=P1^3;
- sbit key5=P1^4;
- sbit key6=P1^5;
- sbit key7=P1^6;
- sbit key8=P1^7;
- sbit state=P3^0;
- bit start_stop_flag=0;
- bit key1_flag=0;
- bit key2_flag=0;
- bit key3_flag=0;
- bit key4_flag=0;
- bit key5_flag=0;
- bit key6_flag=0;
- bit key7_flag=0;
- bit key8_flag=0;
- bit reset_flag=0;
- bit action=0;
- uchar second=20;
- uchar timer0_count=0;
- uchar number=0;
- uchar number_display=0;
- uint flag=1; //延時(shí)函數(shù)
- void delay(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=120;y>0;y--);
- } //蜂鳴器發(fā)聲延時(shí)
- void DelayMS(uint x)
- {
- uchar t;
- while(x--)
- for(t=0;t<100;t++);
- } //數(shù)碼管顯示驅(qū)動函數(shù)
- void display(uchar number,uchar second)
- {
- uchar second_first,second_second;
- second_first = second / 10;
- second_second = second % 10;
- P0 =0x00;
- P2 = 0xfe;
- P0 = table[number];
- delay(2);
- P0 =0x00;
- P2 = 0xfd;
- P0 = 0x40;
- delay(2);
- P0 =0x00;
- P2 = 0xfb;
- P0 = table[second_first];
- delay(2);
- P0 =0x00;
- P2 = 0xf7;
- P0 = table[second_second];
- delay(2);
- P0 =0x00; } //蜂鳴器響應(yīng)按周期t發(fā)音
- void Play(uchar t)
- { uchar i; for(i=0;i<1;i++)
- { BEEP=~BEEP;
- DelayMS(t); } BEEP=0;
- } //開始鍵掃描函數(shù)
- void start_stop_keyscan()
- {
- if(start_stop == 0)
- {
- delay(8);
- if((start_stop == 0)&&(!start_stop_flag))
- {
- start_stop_flag = 1;
- action = 1;
- TR0 = 1;
- state = 0;
- }
- }
- else
- {
- start_stop_flag = 0;
- }
- } //八位搶答鍵掃描函數(shù)
- uchar key_scan8()
- {
- if(key1 == 0)
- {
- delay(8);
- if((key1 == 0)&&(!key1_flag))
- {
- key1_flag = 1;
- number = 1;
- number_display = number;
- }
- }
- else
- {
- key1_flag = 0;
- number = 0;
- } if(key2 == 0)
- {
- delay(8);
- if((key2 == 0)&&(!key2_flag))
- {
- key2_flag = 1;
- number = 2;
- number_display = number;
- }
- }
- else
- {
- key2_flag = 0;
- number = 0;
- }
- if(key3 == 0)
- {
- delay(8);
- if((key3 == 0)&&(!key3_flag))
- {
- key3_flag = 1;
- number = 3;
- number_display = number;
- }
- }
- else
- {
- key3_flag = 0;
- number = 0;
- }
- if(key4 == 0)
- {
- delay(8);
- if((key4 == 0)&&(!key4_flag))
- {
- key4_flag = 1;
- number = 4;
- number_display = number;
- }
- }
- else
- {
- key4_flag = 0;
- number = 0;
- }
- if(key5 == 0)
- {
- delay(8);
- if((key5 == 0)&&(!key5_flag))
- {
- key5_flag = 1;
- number = 5;
- number_display = number;
- }
- }
- else
- {
- key5_flag = 0;
- number = 0;
- }
- if(key6 == 0)
- {
- delay(8);
- if((key6 == 0)&&(!key6_flag))
- {
- key6_flag = 1;
- number = 6;
- number_display = number;
- }
- }
- else
- {
- key6_flag = 0;
- number = 0;
- }
- if(key7 == 0)
- {
- delay(8);
- if((key7 == 0)&&(!key7_flag))
- {
- key7_flag = 1;
- number = 7;
- number_display = number;
- }
- }
- else
- {
- key7_flag = 0;
- number = 0;
- }
- if(key8 == 0)
- {
- delay(8);
- if((key8 == 0)&&(!key8_flag))
- {
- key8_flag = 1;
- number = 8;
- number_display = number;
- }
- } else
- {
- key8_flag = 0;
- number = 0;
- } if(number_display != 0)
- {
- return 1;
- }
- else
- {
- return 0;
- }
- } //復(fù)位鍵掃描函數(shù)
- void reset_keyscan()
- {
- if(reset == 0)
- {
- delay(8);
- if((reset==0)&&(!reset_flag))
- {
- reset_flag = 1;
- number_display = 0;
- state = 1;
- }
- }
- else
- {
- reset_flag = 0;
- }
- } //主函數(shù)
- void main()
- {
- TMOD=0x01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA= 1;
- ET0= 1;
- TR0=0;
- while( 1)
- {
- if(number_display!=0)
- Play(number_display/2); //蜂鳴器發(fā)聲
- start_stop_keyscan();
- reset_keyscan();
- while(action)
- {
- while(!key_scan8())
- {
- display(number_display,second);
- if(second == 0)
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
8位競賽搶答器課程設(shè)計(jì).zip
(56.9 KB, 下載次數(shù): 137)
2017-5-29 18:41 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|