• 大小: 67KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-02-02
  • 语言: 其他
  • 标签:

资源简介

四路抢答器源程序+Pro7仿真文件 四路抢答器源程序+Pro7仿真文件 四路抢答器源程序+Pro7仿真文件

资源截图

代码片段和文件信息

#include 
typedef unsigned char uchar;
#define DIGIT0 1
#define DIGIT1 2
#define DIGIT2 3

sbit TIMEK1=P3^3;
sbit TIMEK2=P3^4;
sbit TIMEK3=P3^5;
sbit TIMEK4=P3^6;
sbit KEY5=P1^4;
sbit din=P2^4;                          //定义P2.5控制MAX7219的串行数据输入端
sbit load=P2^3;                         //定义P2.4控制MAX7219的载入使能端
sbit clk=P2^2;                          //定义P2.3控制MAX7219的时钟信号
sbit BUZ=P0^1;
#define TIMER_HBYTE -50000/256          //定时50ms
#define TIMER_LBYTE -50000%256
uchar intr_counter;                     //设定的时间用需要产生的中断次数表示
uchar bdata byte;                       //在bdata区定义一个变量,便于位操作
sbit byte_7=byte^7;
bit foul_flg;                           //是否有人犯规标志
bit time_over_flg;                      //是否倒计时超时标志
bit key_flg;                            //是否有人在规定时间内按键标志
void max7219_reset(void);               //初始化MAX7219
void write_reg(ucharuchar);            //向控制寄存器写数据
void write_digit(ucharuchar);          //向字型寄存器写数据
void send_data(uchar);                  //底层的硬件驱动
uchar set_time(void);                   //函数功能:设置倒计时时间
bit control_key(void);                  //函数功能:检测主持人是否按键
uchar getkey_num(void);                //函数功能:检测哪个参赛者按键
void display_time(void);                //函数功能:显示倒计时剩余时间
void foul_handle(uchar  key_number1);                //函数功能:犯规处理
void key_handle(uchar key_number1);                 //函数功能:按键处理
void time_over_handle(void);            //函数功能:超时处理
void init_t0(void);                     //函数功能:初始化T0定时器
void delay_20ms(void);                  //函数功能:延时20ms,按键去抖动
void buz_on(void);                       //函数功能:蜂鸣器响500ms
    uchar key_number;
void main(void)
{
    delay_20ms();
    max7219_reset();                     //初始化MAX7219
    while(1)
    {
        foul_flg=0;                      //设置初始环境
        time_over_flg=0;
        P0=0;
        TR0=0;                           //禁止T0运行
        write_digit(DIGIT00x0);//上电后3个数码管全部显示0  a=0 b=E c=H
        write_digit(DIGIT10x0);
        write_digit(DIGIT20x0);
        while((control_key()==1)&&(foul_flg==0))
                                          //如果主持人没有按键
        {
            key_number=getkey_num();      //检查是否有人犯规
            if(key_number==0)             //如果没有,进行下一次循环
                continue;
            else                          //如果有人犯规
            {
                foul_handle(key_number);        //犯规处理
                foul_flg=1;               //设置犯规标志
            }
        }
        if(foul_flg==1)                  //如果有人犯规
        {
            while(control_key()==1);      //等待主持人按键以进入下一轮
            continue;                     //主持人按键后进入下一轮
        }
        else                             //如果没有人犯规,必定是主持人允许答题
        {
            intr_counter=set_time();      //读取倒计时时间
            init_t0();                    //定时器T0开始计时
            buz_on();                     //蜂鸣器响500ms
            while(time_over_flg==0&&key_flg==0)
            {
                key_number=getkey_num(); 

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

     文件      10166  2010-05-09 11:36  4QD\4luqiangdaqi

     文件       1494  2010-05-09 11:36  4QD\4luqiangdaqi.hex

     文件         47  2010-05-09 11:36  4QD\4luqiangdaqi.lnp

     文件      14990  2010-05-09 11:36  4QD\4luqiangdaqi.M51

     文件       1077  2010-05-09 11:40  4QD\4luqiangdaqi.Opt

     文件       1453  2010-05-09 11:36  4QD\4luqiangdaqi.plg

     文件       2094  2010-05-08 23:59  4QD\4luqiangdaqi.Uv2

    .......      1079  2010-05-09 00:25  4QD\4luqiangdaqi_Opt.Bak

    .......      2094  2010-05-03 12:10  4QD\4luqiangdaqi_Uv2.Bak

     文件     130467  2010-05-09 12:00  4QD\kkkkk.DSN

     文件        768  2010-05-09 14:35  4QD\kkkkk.PWI

     文件     130560  2010-05-09 11:58  4QD\Last Loaded kkkkk.DBK

     文件       3365  2010-05-09 12:32  4QD\MAIN

     文件        480  2010-05-09 12:32  4QD\MAIN.BIN

     文件        150  2010-05-08 22:10  4QD\MAIN.C

     文件       3195  2010-05-10 19:07  4QD\MAIN.DSK

     文件       1169  2010-05-09 12:32  4QD\MAIN.HEX

     文件       2186  2010-05-08 22:10  4QD\MAIN.LST

     文件      15450  2010-05-09 12:32  4QD\MAIN.M51

     文件        516  2010-05-08 22:10  4QD\MAIN.OBJ

     文件       2116  2010-05-10 18:26  4QD\MAIN.PRJ

     文件        139  2010-05-09 12:32  4QD\TEMP.LST

     文件       2116  2010-05-09 00:25  4QD\Untitled

     文件         59  2010-05-09 12:32  4QD\WAVE.LIN

     文件       8937  2010-05-09 12:32  4QD\xxx.c

     文件      17988  2010-05-09 12:32  4QD\XXX.LST

     文件       5190  2010-05-09 12:32  4QD\XXX.OBJ

     目录          0  2010-05-09 14:35  4QD

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

               359345                    28

............此处省略1个文件信息

评论

共有 条评论