资源简介
包含源程序文件以及课设的文档,程序相对简单,适合期末应付老师考核
设计并实现的单片机课设是篮球比赛计分器:要求实现以下功能
(1)两队各两位显示,共计四位数码显示;
(2)设A、B队加、减分按键,复位键;
(3)加减分实现1分、2分、3分加减。
代码片段和文件信息
#include //??
#define uchar unsigned char
#define uint unsigned int
#define T2N 50000 //50ms
uchar code SegCode[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7c0x390x5e0x790x710x730x800x00};// P . ?
uchar code BitCode[]={0x010x020x040x08};
uchar DispBuf[4];
uint scoreA=0scoreB=0;//A队得分,B队得分
sbit AN1=P1^0;//定义六个按键
sbit AN2=P1^1;
sbit AN3=P1^2;
sbit AN4=P1^3;
sbit AN5=P1^4;
sbit AN6=P1^5;
uchar Numqz = 0;
void DelayMs(uint n)
{
uchar j;
while(n--)
for(j=0;j<123;j++); //12MHz
}
void NumToBuf(void)
{ DispBuf[3]=scoreA/10%10;
DispBuf[2]=scoreA%10;
DispBuf[1]=scoreB/10%10;
DispBuf[0]=scoreB%10;
}
void BufTOSeg()
{
uchar i;
for(i=0;i<4;i++)
{
P0=SegCode[DispBuf[i]];
P2=BitCode[i];
DelayMs(10);
P2=0x00;
}
}
uchar GetKeyA(void)//定义多功能按键1,短按,长按
{
uint dNum = 0;
uint uNum = 0;
if(AN1 == 0)
{
DelayMs(10);
if(AN1 == 0)
{
do
{
dNum++;
DelayMs(10);
}while(AN1 == 0);
if(dNum<50)
{
Numqz = 1;
}
else Numqz = 2;
}
}
return Numqz;
}
uchar GetKeyB(void)//定义多功能按键4,短按,长按
{
uint dNum = 0;
if(AN4 == 0)
{
DelayMs(10);
if(AN4 == 0)
{
do
{
dNum++;
DelayMs(10);
}while(AN4 == 0);
if(dNum<50)
{
Numqz = 1;
}
else Numqz = 2;
}
}
return Numqz;
}
void main()
{
while(1)
{if(!AN1){ //按键1,短按A队加1分,长按减1分
GetKeyA();
if(Numqz == 1)
{
scoreA=scoreA+1;
Numqz = 0;
}
if(Numqz == 2)
{
scoreA=scoreA-1;
Numqz = 0;
}}
if(!AN2) //按键2,A队加2分
{
DelayMs(10);
if(!AN2) scoreA=scoreA+2;
while(!AN2);
}
if(!AN3) //按键3,A队加3分
{
DelayMs(10);
if(!AN3)
scoreA=scoreA+3;
while(!AN3);
}
if(!AN4){ //按键4,短按B队加1分,长按减1分
GetKeyB();
if(Numqz == 1)
{
scoreB=scoreB+1;
Numqz = 0;
}
if(Numqz == 2)
{
scoreB=scoreB-1;
Numqz = 0;
}}
if(!AN5) //按键5,B队加2分
{
DelayMs(10);
if(!AN5) scoreB=scoreB+2;
while(!AN5);
}
if(!AN6)
{
DelayMs(10);
if(!AN6)
scoreB=scoreB+3;
while(!AN6); //按键6,B队加3分
}
NumToBuf(); //送位码
BufTOSeg(); //送段码
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1228836 2019-03-10 19:45 单片机课设--篮球比赛计分器\单片机课设--篮球比赛计分器.docx
文件 129499 2018-12-24 18:44 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\123.DSN
文件 768 2019-01-14 08:46 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\123.PWI
文件 0 2018-12-21 14:23 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\hty
文件 2610 2018-12-24 18:42 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\hty.c
文件 70663 2018-12-27 14:03 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\hty.uvgui.Administrator
文件 70575 2018-12-24 18:41 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\hty.uvgui.wangshuailei
文件 5387 2018-12-21 15:48 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\hty.uvopt
文件 14024 2018-12-21 15:48 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\hty.uvproj
文件 124540 2018-12-24 15:24 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\Last Loaded 123.DBK
文件 6222 2018-12-27 14:03 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\Listings\hty.lst
文件 11846 2018-12-27 14:03 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\Listings\hty.m51
文件 14146 2018-12-27 14:03 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\Listings\STARTUP.lst
文件 6761 2018-12-27 14:03 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\ob
文件 970 2018-12-27 14:03 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\ob
文件 1995 2018-12-27 14:03 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\ob
文件 96 2018-12-27 14:03 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\ob
文件 7051 2018-12-27 14:03 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\ob
文件 828 2018-12-27 14:03 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\ob
文件 6376 2015-05-29 12:09 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\STARTUP.A51
目录 0 2019-03-03 21:25 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\Listings
目录 0 2019-03-03 21:25 单片机课设--篮球比赛计分器\篮球计分器\lanqiu\ob
目录 0 2019-03-03 21:25 单片机课设--篮球比赛计分器\篮球计分器\lanqiu
目录 0 2018-12-27 13:46 单片机课设--篮球比赛计分器\篮球计分器
目录 0 2019-03-10 19:46 单片机课设--篮球比赛计分器
----------- --------- ---------- ----- ----
1703193 25
评论
共有 条评论