Android计分器课程设计,单片机课程设计(篮球记分器)

8f31a2e4a1981ca8dae75b040e3e5644.png

本程序已经通过软件仿真与硬件制作,

首发于:www.51hei.com,代码可任意修改,但不可用于商业目的.

单片机型号是:stc89c52,晶振12兆赫.用了3个4为一体化的数码管.

完整代码下载地址:http://www.51hei.com/f/lqwwe.rar

#include #define uchar unsigned char

#define uint unsigned int

void delay(uchar x); //延时(时间较短)

void delay1(uchar x); //延时(时间较长)

void Js_Jf_Scan(void); //数码管动态扫描显示函数

void Key_if(void); //A、B两队分值处理函数

void Js_50ms(void); //定时50ms中断函数

void Key_Y(void); //预置时间函数

void Ptime(uchar); //时间处理函数

void sound(void); //鸣笛警示函数

void jiaohuan(void); //场地交换

sbit CL1=P2^0; //B队4位计分数码管位控线

sbit CL2=P2^1;

sbit CL3=P2^2;

sbit CL4=P2^3;

sbit KL1=P2^4; // A队4位计分数码管位控线

sbit KL2=P2^5;

sbit KL3=P2^6;

sbit KL4=P2^7;

sbit S1=P1^3; //驱动4位计时数码管位控线

sbit S2=P1^2;

sbit S3=P1^1;

sbit S4=P1^0;

sbit YK1=P1^6; //预置分钟的十位

sbit YK2=P1^7; //预置分钟的个位

sbit music=P1^4; //P1.4接喇叭,发声,鸣笛

sbit Key1=P3^0; //B队加分键

sbit Key2=P3^1; //B队减分键

sbit Key3=P3^4; //A队加分键

sbit Key4=P3^5; //A队减分键

sbit JH=P1^5;

sbit Int_Key=P3^2; //鸣笛键

sbit Star=P3^6; //开始按钮

sbit Puse=P3^7; //停止按钮

int m=0,ms=0,mg=0; //秒钟的十位、个位以及秒钟的变量说明

int fs=0,fg=0,f,fy,num=0; //分钟的十位、个位以及分钟的变量说明

int g,s,b,q,sum=0; //B队定义个十百位

int g1,s1,b1,q1,sum1=0; // A队定义个十百位

int LED_Num[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,}; //段码

void main(void)

{

TMOD=0x01; //设置T0为工作方式1,作为16位计数器

TH0=(65535-50000)/256; //设置T0的高8位,并且T0的计数值为50ms

TL0=(65535-50000)%256; //设置T0的低8位

music=0; //初值喇叭不响

EA=1; //开放所有中断

ET0=1; //允许定时/计数器T0溢出中断

EX0=1; //允许外部中断0

IT0=1; //设置外部中断0为边沿触发方式(下降沿)

while(1) //无穷循环,程序一直运行

{

Key_Y(); //预置场次比赛时间

if(Star==0&&f!=0&&Puse!=0) //按下“开始键”,设置好比赛时间,并且未按“停止”键时,比赛正式开始

{

TR0=1; //启动定时器T0,开始计时

Key_if(); //开始计分

}

else

{

TR0=0; //比赛还未开始或比赛结束时间到,停止计时

}

Js_Jf_Scan(); //将相应的分数、时间同步进行显示

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值