资源简介
基于c51开发,用C语言编写的程序,有可控制的按钮,显示整场比赛的时间、节数等细节问题。
代码片段和文件信息
#include
#define uchar unsigned char
char tab[] ={0Xc00Xf90Xa40Xb00X990X920X820Xf80X800X90};
char tabf[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
uchar second12=11;
uchar second59=59;
uchar second24=24;
uchar second24g;
uchar second24s;
uchar second59s;
uchar second59g;
uchar minutesg;
uchar minutess;
uchar Flag = 1;
uchar HF = 0;
uchar LF = 0;
sbit P16=P1^6;
sbit P17=P1^7;
sbit P30=P3^0;
sbit P31=P3^1;
sbit P32=P3^2;
sbit P33=P3^3;
sbit P34=P3^4;
sbit P35=P3^5;
sbit P36=P3^6;
sbit P37=P3^7;
void Key_scan(void);
void delay(unsigned int cnt)
{
while(--cnt);
}
void main()
{
TMOD|=0x51; //定时器0 16位定时器 X=65535-10000(10毫秒=55535=D8F0十六进制定时10ms
TH0=0xd8;
TL0=0xf0; //定时器初值
IE=0x82;
TR0=1; //开定时器中断
while(1)
{
Key_scan(); //键盘的输入
delay(30);
/*显示比赛时间*/
P1=1;
P2=second24s; //24秒
delay(30);
P1=2;
P2=second24g;
delay(30);
P1=4;
P2=second59s; //59秒
delay(30);
P1=8;
P2=second59g;
delay(30);
P1=0x20;
P2=minutesg; //12分钟
delay(30);
P1=0x10;
P2=minutess;
delay(30);
P1 = 0; //关P1口
/*显示比赛分数*/
P0 = 0xfe; //节数
P2 = tabf[Flag];
delay(30);
P0 = 0xfd; //红队分数
P2 = tabf[HF/100];
delay(30);
P0 = 0xfb;
P2 = tabf[HF%100/10];
delay(30);
P0 = 0xf7;
P2 = tabf[HF%10];
delay(30);
P0 = 0xef;
P2 = tabf[Flag];
delay(30);
P0 = 0xdf; //蓝队分数
P2 = tabf[LF/100];
delay(30);
P0 = 0xbf;
P2 = tabf[LF%100/10];
delay(30);
P0 = 0x7f;
P2 = tabf[LF%10];
delay(30);
P0= 0xff; //关P0口 */
}
}
void Timer_Initial(void) interrupt 1 using 1 //定时器0中断
{
static uchar count;
TH0=0xd8;
TL0=0xf0;
count++;
if(count==100)
{
count=0;
if(second12==-1)
{
second12 = 11;
Flag++;
}
if(second59==-1)
{
second59 = 59;
--second12;
}
minutesg = tab[second12%10];
minutess = tab[second12/10];
second59s = tab[second59/10];
second59g = tab[second59%10];
--second59;
if(second24==-1)
{
second24 = 24;
P35 = 0;
}
second24s = tab[second24/10];
second24g = tab[second24%10];
--second24;
}
}
void Key_scan(void)
{
if(P36==0)
{
if(P31 == 0)
{
second24 = 24;
delay(30);
HF += 1;
while(P31 == 0);
}
if(P32 == 0)
{
second24 = 24;
delay(30);
HF += 2;
while(P32 == 0);
}
if(P33 == 0)
{
second24 = 24;
delay(30);
HF += 3;
while(P33 == 0);
}
}
if(P37==0)
{
if(P31 == 0)
{
second24 = 24;
delay(30);
LF += 1;
while(P31 == 0);
}
if(P32 == 0)
{
second24 = 24;
dela
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8623 2010-12-12 10:50 篮球比赛计时计分器\源程序\24Miao
文件 3315 2010-12-12 10:50 篮球比赛计时计分器\源程序\24Miao.c
文件 1905 2010-12-12 10:50 篮球比赛计时计分器\源程序\24Miao.hex
文件 45 2010-12-12 10:50 篮球比赛计时计分器\源程序\24Miao.lnp
文件 9710 2010-12-12 10:50 篮球比赛计时计分器\源程序\24Miao.LST
文件 12303 2010-12-12 10:50 篮球比赛计时计分器\源程序\24Miao.M51
文件 9326 2010-12-12 10:50 篮球比赛计时计分器\源程序\24Miao.OBJ
文件 1061 2010-12-13 10:43 篮球比赛计时计分器\源程序\24Miao.Opt
文件 180 2010-12-13 09:16 篮球比赛计时计分器\源程序\24Miao.plg
文件 2043 2010-12-08 18:23 篮球比赛计时计分器\源程序\24Miao.Uv2
文件 1061 2010-12-12 11:35 篮球比赛计时计分器\源程序\24Miao_Opt.Bak
文件 2043 2010-12-06 21:13 篮球比赛计时计分器\源程序\24Miao_Uv2.Bak
文件 5115 2008-10-27 18:50 篮球比赛计时计分器\源程序\STARTUP.A51
文件 11665 2010-12-12 10:50 篮球比赛计时计分器\源程序\STARTUP.LST
文件 758 2010-12-12 10:50 篮球比赛计时计分器\源程序\STARTUP.OBJ
文件 6750 2010-05-18 21:06 篮球比赛计时计分器\电路图\Deng1
文件 2562 2010-05-14 23:41 篮球比赛计时计分器\电路图\Deng1.c
文件 140121 2010-12-12 10:54 篮球比赛计时计分器\电路图\Deng1.DSN
文件 2056 2010-05-18 21:06 篮球比赛计时计分器\电路图\Deng1.hex
文件 42 2010-05-18 21:06 篮球比赛计时计分器\电路图\Deng1.lnp
文件 6281 2010-05-18 21:06 篮球比赛计时计分器\电路图\Deng1.LST
文件 8953 2010-05-18 21:06 篮球比赛计时计分器\电路图\Deng1.M51
文件 7497 2010-05-18 21:06 篮球比赛计时计分器\电路图\Deng1.OBJ
文件 1017 2010-12-02 22:53 篮球比赛计时计分器\电路图\Deng1.Opt
文件 149 2010-12-06 11:42 篮球比赛计时计分器\电路图\Deng1.plg
文件 768 2010-12-13 10:46 篮球比赛计时计分器\电路图\Deng1.PWI
文件 1995 2010-05-11 18:41 篮球比赛计时计分器\电路图\Deng1.Uv2
文件 1015 2010-05-31 12:50 篮球比赛计时计分器\电路图\Deng1_Opt.Bak
文件 0 2010-05-11 18:11 篮球比赛计时计分器\电路图\Deng1_Uv2.Bak
文件 136422 2010-12-11 22:06 篮球比赛计时计分器\电路图\Last Loaded Deng1.DBK
............此处省略8个文件信息
- 上一篇:计算机网络课设之解析ARP数据包
- 下一篇:C++期末复习 程序填空题 1
评论
共有 条评论