• 大小: 29KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: 51  抢答器  

资源简介

基于STC89C51单片机的智能抢答器的设计与实现,亲测有效

资源截图

代码片段和文件信息

#include “reg51.h“        //51系列单片机定义文件
#include “intrins.h“      //调用_nop_();延时函数用
#define IN    P1    //显示数据段码输出口
#define uchar unsigned char//无符号字符(8位)
#define uint unsigned int  //无符号整数(16位)
uchar num;                 //抢答选手编号
uchar time=20;             //抢答时间初值
uchar dtime=30;    //回答时间初值
uchar nmnum_1;           //抢答时间临时变量秒计数值,抢答选手号
sbit  key1=P3^0;           //开始
sbit  key2=P3^1;           //停止
sbit  key3=P3^2;           //设定
sbit  key4=P3^3;           //确认
sbit  key5=P3^4;           //抢答时间加1
sbit  key6=P3^5;    //抢答时间减1
sbit  key7=P3^6;           //回答时间加1
sbit  key8=P3^7;    //回答时间减1
bit   TZ=0;    //调整标志位
bit   RUN=1;    //运行标志,=0,抢答计时=1,回答计时。
sbit  W1=P2^4;
sbit  W2=P2^5;
sbit  W3=P2^6;
sbit  W4=P2^7;
sbit  busy =P2^0;
sbit  dat  =P2^1;
sbit  rest =P2^2;
sbit  point=P0^7;
void display();
void sound(uchar k);
/************************************/
uchar code dis_7[]={0xC00xF90xA40xB00x990x920x820xF8
                          0x800x900xFF0x7F};
/* 共阳七段LED段码表  “0“  “1“  “2“  “3“  “4“  “5“  “6“  “7“  “8“  “9“ “不亮“ */
/********1毫秒延时子函数**********/
delay1ms(uint t)
{
uint ij;
for(i=0;i   for(j=0;j<120;j++)
   ;
}
/********************************************************报数 程序********************************************************/
void sound(uchar k)
{uint i;
 while(busy==0){display();}
 rest=1;
 display();
 rest=0;
 for(i=k;i>0;i--)
 {dat=1;
  display();
  dat=0;
  }
}
//******************************************显示程序
void display()
{if(TZ==0)
 {P0=dis_7[num]; W1=0;   delay1ms(1);   W1=1;
  P0=0xbf;     W2=0; delay1ms(1);   W2=1;
  P0=dis_7[n/10%10]; W3=0;  delay1ms(1);  W3=1;
  P0=dis_7[n%10];   W4=0;  delay1ms(1);   W4=1;
 }
 else
 {P0=dis_7[time/10%10]; W1=0;   delay1ms(1);   W1=1;
  P0=dis_7[time%10];point=0;     W2=0; delay1ms(1);   W2=1;
  P0=dis_7[dtime/10%10]; W3=0;  delay1ms(1);  W3=1;
  P0=dis_7[dtime%10];   W4=0;  delay1ms(1);   W4=1;
 }
 
}
/********************************************************/ 
/**********语音程序******************/
void nose(uchar x)
{ switch (x)
{ case 0:{sound(29);sound(17);break;}
case 1:{sound(num+1);sound(11);sound(12);sound(13);break;}
case 2:{sound(32);break;}
case 3:{sound(29);sound(25);break;}
case 4:{sound(num+1);sound(11);;sound(14);sound(12)break;}
case 5:{sound(28);sound(25);break;}
default: break;
}
}
/*扫描程序*/

/*****************************************/
void keyscan()
{
if(P1!=0xFF&&TR0==0&&TZ==0)
 {num_1=P1;
  switch(num_1)
{ case 0xfe: {num=1;nose(4);} break;  
case 0xfd: {num=2;nose(4);} break;
case 0xfb: {num=3;nose(4);} break;
case 0xf7: {num=4;nose(4);} break;
case 0xef: {num=5;nose(4);} break;
case 0xdf: {num=6;nose(4);} break;
case 0xbf: {num=7;nose(4);} break;
case 0x7f: {num=8;nose(4);} break;
default: break;
}
while(key2==1){display();}
{sound(32);                         
 num=0;    
}               
while(key2==0);  
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5739  2017-05-17 18:39  毕设程序\dingshiqi.c

     文件       3331  2017-04-25 19:42  毕设程序\dingshiqi.hex

     文件         51  2017-04-25 19:42  毕设程序\dingshiqi.lnp

     文件      11082  2017-05-17 18:39  毕设程序\dingshiqi.LST

     文件      16272  2017-04-25 19:42  毕设程序\dingshiqi.M51

     文件        180  2017-07-17 14:29  毕设程序\dingshiqi.plg

     文件      14858  2017-04-24 19:46  毕设程序\dingshiqi.SDI

     文件      56081  2017-07-17 14:29  毕设程序\dingshiqi.uvopt

     文件      13410  2017-04-20 15:53  毕设程序\dingshiqi.uvproj

     文件         39  2017-05-17 18:39  毕设程序\dingshiqi.__i

     文件      56085  2017-06-08 19:26  毕设程序\dingshiqi_uvopt.bak

     文件      13411  2017-04-18 21:42  毕设程序\dingshiqi_uvproj.bak

     文件       6376  2009-05-07 14:37  毕设程序\STARTUP.A51

     文件      14048  2017-04-18 21:41  毕设程序\STARTUP.LST

     文件        758  2017-04-18 21:41  毕设程序\STARTUP.OBJ

     目录          0  2017-09-20 13:09  毕设程序

----------- ---------  ---------- -----  ----

               211721                    16


评论

共有 条评论