资源简介
基于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
相关资源
- c51单片机数码管显示温度
- 51单片机三路循迹程序
- 蓝牙小车程序 绝对完整 整个工程
- 51单片机实现水温控制系统
- 华为云计算HCNAH13-511 最新题库
- 51单片机 Proteus 心形的滚动显示含代码
- 基于51单片机和LCD1602的计算器
- 基于51单片机/高精度AD(24位)芯片
- 基于51单片机的蓝牙控制继电器程序
- 51单片机篮球计时与计分器
- 基于51单片机的八路抢答器C程序
- 16*16点阵设计电路图
- 基于步进电机的电梯-51单片机
- P10双色屏51测试程序
- 基于STC89C51占空比可调的pwm方波
- 单片机代码LED灯,蜂鸣器,按键,流
- 门禁系统设计
- 51单片机小车金属丝循迹
- 基于MSP430F149单片机的语音播报模块使
- opencv视频资料教程,51cto贾志刚录制的
- 51单片机——简易计算器设计源码、
- 基于89C51单片机的LCD音乐闹钟(详细注
- 基于AT89C852单片机的8位竞赛抢答器原
- 数电课程设计8人抢答器
- 基于STC 51单片机的智能循迹小车
- 51单片机心形流水灯
- 51单片机,DS18B20实现程序
- 万能红外学习代码 单片机
- 交通灯程序设计1
- 51单片机+adc0809+PT100的24路温度巡检仪
评论
共有 条评论