篮球比赛计时器24S倒时Word格式.docx
《篮球比赛计时器24S倒时Word格式.docx》由会员分享,可在线阅读,更多相关《篮球比赛计时器24S倒时Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
![篮球比赛计时器24S倒时Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/23/042dcf92-e95e-4fe2-9f8d-6f0994b6b241/042dcf92-e95e-4fe2-9f8d-6f0994b6b2411.gif)
ucharcount,hour,minute,second;
uchartime[6];
ucharcodehz[][32]={
/*--文字:
湖--*/
/*--宋体12;
此字体下对应的点阵为:
宽x高=16x16--*/
0x10,0x21,0x86,0x60,0x90,0x90,0xFF,0x90,0x90,0x00,0xFE,0x92,0x92,0xFE,0x00,0x00,
0x04,0xFC,0x03,0x00,0x1F,0x10,0x10,0x90,0x5F,0x30,0x0F,0x40,0x80,0x7F,0x00,0x00,
人--*/
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0xC2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x01,0x06,0x0C,0x18,0x30,0x60,0x20,0x00,
:
--*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
热--*/
0x44,0xC4,0x44,0xFF,0x24,0x04,0x14,0xA4,0x7F,0xC4,0x84,0x7C,0x84,0x00,0x00,0x00,
0xC0,0x62,0x34,0x03,0x14,0x62,0x01,0x08,0x30,0x60,0x01,0x08,0x33,0x64,0x07,0x00,
火--*/
0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0xFF,0x02,0x40,0x20,0x18,0x10,0x00,0x00,0x00,
0x00,0x80,0x41,0x20,0x10,0x0C,0x03,0x00,0x03,0x04,0x18,0x30,0x60,0x20,0x00,0x00,
光--*/
0x00,0x40,0x42,0x44,0x5C,0xC8,0x40,0x7F,0x40,0xC0,0x50,0x4E,0x44,0x60,0x40,0x00,
0x00,0x80,0x40,0x20,0x18,0x07,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x78,0x00,
一--*/
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x00,
张--*/
0x02,0xF2,0x12,0x12,0x1E,0x00,0x80,0x80,0xFF,0xA0,0x90,0x88,0x86,0x84,0x80,0x00,
0x01,0x03,0x41,0x81,0x7F,0x00,0x00,0x40,0xFF,0x40,0x23,0x0C,0x10,0x60,0x20,0x00,
三--*/
0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,
0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
};
ucharcodesz[][16]={
{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},
//"
0"
0
{0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},
1"
1
{0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},
2"
2
{0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00},
3"
3
{0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00},
4"
4
{0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00},
5"
5
{0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00},
6"
6
{0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00},
7"
7
{0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},
8"
8
{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00},
9"
9
{0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00},
:
"
10
//延时子程序
voiddelay(uintn)
{
uinti;
for(;
n>
0;
n--)
for(i=200;
i>
i--);
}
voiddelay1(uinti)
{while(i--);
//判断是否忙子程序
voidcheck()
rs=0;
rw=1;
//读e=1;
port=0x00;
e=1;
while(busy);
e=0;
//写指令子程序
voidsendcommand(ucharcommand)
check();
//指令
rw=0;
//写e=0;
port=command;
//下降沿,启动发送指令
//写入指令
//写数据子程序
voidwritedata(uchardat)
rs=1;
//数据
port=dat;
//下降沿,启动写数据
//选屏子程序
//选屏幕0——全屏,1——左屏,2——右屏;
voidselect(uintn)
switch(n)
{
case0:
cs1=0;
cs2=0;
break;
//低电平选中
case1:
cs2=1;
//cs1左屏
case2:
cs1=1;
//cs2右屏
}
//设置显示页码子程序
voidsetpage(ucharpage)
page=page&
0x07;
//以下两句获取页地址
page=page|0xb8;
sendcommand(page);
//将页地址进行发送
//设置列选择子程序
voidsetcolumn(ucharcolumn)
column=column&
0x3f;
//以下两句获取列地址
column=column|0x40;
sendcommand(column);
//将列地址进行发送
//起始行
voidsetline(ucharline)
line=line&
//以下两句获取行地址
line=line|0xc0;
sendcommand(line);
//将行地址进行发送
//屏幕开关显示0——关,1——开;
voidseton(uintn)
n=n|0x3e;
sendcommand(n);
//清屏0——全屏,1——左屏,2——右屏;
voidclear(uintn)
uchari,j;
select(n);
for(i=0;
i<
8;
i++)
setpage(i);
setcolumn(0);
for(j=0;
j<
64;
j++)
writedata(0);
//置0清空
}
//初始化
voidinit()
seton
(1);
clear(0);
setline(0);
//显示汉字16*16显示,设置汉字从第几页,第几行开始显示
voidshow16(ucharpage,ucharcolumn,ucharscreen,uchar*str)
select(screen);
j=0;
setpage(page);
setcolumn(column);
16;
writedata(str[j++]);
setpage(page+1);
}
//显示数字8*8显示
voidshow8(ucharpage,ucharcolumn,ucharscreen,uchar*str)
voidINC1()
{if(b1==0)
{delay(100);
k1++;
if(k1==10)
{k1=0;
k2++;
};
if(b3==0)
j1++;
if(j1==10)
{j1=0;
j2++;
voidsubb()
{if(b2==0)
{delay
(1);
k3--;
if(k3==0)
{k3=9;
k4--;
if(k4==0)
{k4=9;
k5--;
if(k5==0&
&
k4==0&
k3==0)
k4=3;
k5=2;
elseif(b2==1)
voidwelcome()
{//显示第一行
show16(0,0,1,hz[0]);
show16(0,16,1,hz[1]);
show16(0,48,1,hz[2]);
show16(0,0,2,hz[3]);
show16(0,16,2,hz[4]);
show16(6,0,1,hz[5]);
show16(6,16,1,hz[6]);
show16(6,48,1,hz[7]);
show16(6,0,2,hz[8]);
show16(6,16,2,hz[9]);
show16(6,32,2,hz[10]);
show16(6,48,2,hz[11]);
show8(2,0,1,sz[k2]);
show8(2,16,1,sz[k1]);
show8(2,0,2,sz[j2]);
show8(2,16,2,sz[j1]);
show8(4,0,1,sz[k5]);
show8(4,8,1,sz[k4]);
show8(4,16,1,sz[10]);
show8(4,24,1,sz[k3]);
//*******************************比赛时间显示控制部分***********************************//
//初始化程序
voidinite()
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
count=20;
second=59;
minute=11;
hour=00;
voidtimer()interrupt1//中断函数
//给T0赋初值
count--;
if(count==00)//时间达到一秒钟
count=20;
second--;
if(second==00)
{
second=60;
minute--;
if(minute==00)
{
minute=12;
hour--;
if(hour==00)
{
hour=00;
}
}
}
voidshowtime(void)
{time[0]=hour/10;
time[1]=hour%10;
time[2]=minute/10;
time[3]=minute%10;
time[4]=second/10;
time[5]=second%10;
show8(4,0,2,sz[time[0]]);
show8(4,8,2,sz[time[1]]);
show8(4,16,2,sz[10]);
show8(4,24,2,sz[time[2]]);
show8(4,32,2,sz[time[3]]);
show8(4,40,2,sz[10]);
show8(4,48,2,sz[time[4]]);
show8(4,56,2,sz[time[5]]);
//***************主函数******************//
voidmain()
{
init();
inite();
delay(200);
//welcome();
while
(1)
{INC1();
subb();
welcome();
showtime();