資源簡(jiǎn)介
基于單片機(jī)的 四路搶答器課程設(shè)計(jì),包含程序,protues仿真文件,可根據(jù)自己電路進(jìn)行修改。

代碼片段和文件信息
?#include“reg51.h“
???sbit?k1=P2^2;
???sbit?k2=P2^3;
???sbit?k3=P2^4;
???sbit?q1=P3^0;
???sbit?q2=P3^1;
???sbit?q3=P3^2;
???sbit?q4=P3^3;
???sbit?bz=P1^5;
???int?a=5;
???int?m=10;
???int?shige;
???int?time=0;?
???int?c=1;
??int?zan=1;
??int?f1f2f3f4;
??f1=0;f2=0;f3=0;f4=0;
char?table[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7c0x390x5e0x790x71};
???void?delay(int?time)//延時(shí)程序
??{int?j;
????for(;time>0;time--)
?????for(j=50;j>0;j--);}
? void?shu() ???//數(shù)字處理顯示
{?shi=m/10;
?ge=m%10;?}
??void anjian?()//按鍵掃描
{if((m!=0)&&(zan%2==0) )
{if(a==5)
{???if(q1==0)
??{delay(5);
????if(q1==0)
?a=2;
?f2++;TR0=0;
?while(!q1) ?//搶答成功,蜂鳴器發(fā)聲
{
bz=~bz;
delay(1);?
????????????????}?}
if(q2==0)
??{delay(5);
?if(q2==0)
?a=1;?
?f1++;TR0=0;while(!q2) ?//搶答成功,蜂鳴器發(fā)聲
{
bz=~bz;
delay(1);?
????????????????}??}
??if(q3==0)
??{delay(5);
?if(q3==0)
?a=3;
?f3++;TR0=0;while(!q3) ?//搶答成功,蜂鳴器發(fā)聲
{
bz=~bz;
delay(1);?
????????????????}??}
????????if(q4==0)
??{delay(5);
if(q4==0)
?a=4;
?f4++; TR0=0;?while(!q4) ?//搶答成功,蜂鳴器發(fā)聲
{
bz=~bz;
delay(1);?
????????????????}??}
?}
???}???}
void?xianshi?() ?//數(shù)碼管循環(huán)顯示程序
{?k3=k2=k1=0;
?????P0=table[f4];
?delay(5);
?????????P0=0x00;
?k3=k2=0;k1=1;
?????P0=table[f3];
?delay(5);
?????????P0=0x00;
?k3=k1=0;k2=1;
?????P0=table[f2];
?delay(5);
?????????P0=0x00;
k3=0;k2=k1=1;
?????P0=table[f1];
?delay(5);
?????????P0=0x00;
k3=k2=k1=1;
?????P0=table[c];
?delay(5);
?????????P0=0x00;
k3=k1=1;k2=0;
?????P0=table[shi];
?delay(5);
?????????P0=0x00;
k3=1;k2=k1=0;
?????P0=table[ge];
?delay(5);
?????????P0=0x00;
if(a<5)
?{k1=0;k2=k3=1;
?P0=table[a];
?delay(5);
?????????P0=0x00; }
}
?void?fuwei()//復(fù)位程序
?{TH0=(65536-50001)/256;
???? ??????TL0=(65536-50001)%256;
??zan=1;
??a=5;
??m=10;?
??c++;
??TR0=1;
??time=0;
?} ?
??????
?void?kerz?()???????//矩陣按鍵掃描程序
???{P1=0x0f;
if(P1!=0x0f)
{delay(10);
? if(P1!=0x0f)
{?????switch(P1)
???{case(0x07):zan++;break;
????case(0x0b):fuwei();break;
??/*?case(0x0d):f1--;break;
????case(0x0e):f2--;break;*/}?
?????while(P1!=0x0f);?
??} ??} ??}
?
??
?void??T0_interserve(void)??interrupt?1??using?1??//中斷程序
?{?TH0=(65536-50001)/256;
???? TL0=(65536-50001)%256;
???????time++;
???if(time==20)
???{????m--; ?
????????time=0;}
?????if(m==0)
???{??
????fuwei();}
?????????????}??
?
??void?main() ?//主程序
??{TMOD=0x01;????????????
?????ET0=1;
?TH0=(65536-50001)%256;
?TL0=(65536-50001)%256;
?? ?TR0=1;??
??while(1) ??
???{??if(zan%2==1)
??????????EA=0;
??????else
??????EA=1;
??????shu();
??xianshi();
??? ??anjian();
?kerz
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-06?19:03??基于單片機(jī)的四路搶答器\
?????目錄???????????0??2019-01-06?19:03??基于單片機(jī)的四路搶答器\PROTUES仿真文件\
?????文件??????266760??2019-01-06?18:59??基于單片機(jī)的四路搶答器\PROTUES仿真文件\QQ圖片20190106185913.png
?????文件??????266760??2019-01-06?18:59??基于單片機(jī)的四路搶答器\PROTUES仿真文件\QQ圖片20190106185947.png
?????文件??????124845??2019-01-06?19:00??基于單片機(jī)的四路搶答器\PROTUES仿真文件\搶答器.DSN
?????目錄???????????0??2019-01-06?19:02??基于單片機(jī)的四路搶答器\單片機(jī)\
?????文件????????3096??2019-01-06?18:49??基于單片機(jī)的四路搶答器\單片機(jī)\2.c
?????文件????????2779??2019-01-06?18:49??基于單片機(jī)的四路搶答器\單片機(jī)\2.hex
?????文件???????13386??2017-12-03?10:08??基于單片機(jī)的四路搶答器\單片機(jī)\2.uvproj
?????文件??????414700??2016-10-11?08:55??基于單片機(jī)的四路搶答器\單片機(jī)\HC6800-ES?V2.0.pdf
?????文件?????????128??2019-01-06?19:05??基于單片機(jī)的四路搶答器\說(shuō)明.txt
評(píng)論
共有 條評(píng)論