资源简介
基于51单片机的智能抢答器+C源码+原理图+PCB 非常适合单片机的初学者一个小项目

代码片段和文件信息
////////////////////////////////////////////////////////////////////////////////
/////////////////名称:智能抢答器///////////////////////////////////////////////
/////////////////姓名:周涛 孙士培 何成波///////////////////////////////////////
/////////////////日期:2009年5月19日/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar dec_sign=0;
uchar reset_sign=0;
uchar player1_sign=0;
uchar player2_sign=0;
uchar player3_sign=0;
uchar player4_sign=0;
uchar player5_sign=0;
uchar counter_sign=0;
uint player1_record;
uint player2_record;
uint player3_record;
uint player4_record;
uint player5_record;
uint value_record;
uchar timer_record;
uchar timer_memory;
uchar counter=0;
sbit FM=P3^4;
uchar add_sign=0;
void delayms(uint x) /////延迟函数
{
uint ij;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void Xled_bright(uchar x) ////第x盏灯亮 不能同时亮
{
uchar temp;
temp=P3&0x1f;
P3=temp|((x-1)<<5);
}
void FM_ring()
{
FM=0;
}
void FM_close()
{
FM=1;
}
void FM_alarm()
{
uchar ij;
for(i=3;i>0;i--)
{
FM=1;
delayms(10);
FM=0;
delayms(5);
}
for(j=3;j>0;j--)
{
FM=1;
delayms(100);
FM=0;
delayms(50);
}
}
void select_num(uchar x) ////选择第x个数码管 x取0--15
{
uchar temp;
temp=P0&0x0f;
P0=((x-1)<<4)|temp;
}
void write_num(uchar x) ////写上x这个数,x取0--9
{
uchar temp;
temp=P0&0xf0;
P0=x|temp;
}
void select_write(uchar xuchar y) ////其中x表示选中的数码管号y表示在选中这数码管上要写的数
{
select_num(x);
write_num(y);
}
void score_0init()
{
uchar i;
for(i=1;i<16;i++)
{
select_num(i);
write_num(0);
}
}
void write_timer(uchar x) ///让计时数码管显示x钞
{
uchar shige;
shi=x/10;
ge=x%10;
select_num(16); ///实际上是锁存了所有显示分数的数码管
Xled_bright(7); ///实际上是打开一个计时数码管的使能 这是选中计数管的十位
write_num(shi);
Xled_bright(6); ///这是选中计数管的个位
write_num(ge);
timer_record=x;
}
void reset_key()
{
uchar temp;
P2=0xfd;
temp=P2&0x10;
if(temp!=0x10)
{
delayms(10);
P2=0xfd;
temp=P2&0x10;
if(temp!=0x10)
{
reset_sign=1;
}
while(temp!=0x10)
{
P2=0xfd;
temp=P2&0x10;
}
P3=P3|0xe0; ////灭灯
}
}
void display_score(uchar player_numuint score_num)
{
uint baishige;
uchar baiwei_sign;
bai=score_num/100;
shi=score_num%100/10;
ge=score_num%10;
baiwei_sign=player_num*3-2;
select_write(baiwei_signbai);
select_write(baiwei_sign+1shi);
select_write(baiwei_sign+2ge);
switch(player_num)
{
case 1: player1_record=score_num; break;
case 2: player2_record=score_num; break;
case 3: player3_record=score_num; break;
case 4: player4_record=score_num; break;
case 5: player5_record=score_num; break;
}
}
void add_Xfen(uint xuchar player_num)
{
switch(player_num)
{
case 1: display_score(1player1_record+x); break;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11858432 2009-04-19 20:06 智能抢答器PCB.PcbDoc
文件 229773 2009-05-21 12:46 智能抢答器原理图3.pdf
文件 13757 2009-05-19 16:59 智能抢答器5 程序.c
----------- --------- ---------- ----- ----
12101962 3
- 上一篇:树莓派3B+原理图
- 下一篇:小波总结 小波变换小波总结 小波变换
相关资源
- 51 单片机 红外避障小车 大集合136
- 最新的北京地铁shp文件75146
- 程序员专用字体YaHei.Consolas.1.11b42517
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- 清翔电子MCS51开发板资料_新版 01_开发
- MCS_51单片机与8255A的接口设计
- Rtx51_tiny_RTOS中文版.pdf
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- proteus仿真 AT89C51输出各种波形
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 六路智能抢答器VHDL语言
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51模拟SPI读写SD卡(包括Fat和Fat32文件
评论
共有 条评论