篮球比赛计时器24S倒时.docx
- 文档编号:3528787
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:14
- 大小:66.29KB
篮球比赛计时器24S倒时.docx
《篮球比赛计时器24S倒时.docx》由会员分享,可在线阅读,更多相关《篮球比赛计时器24S倒时.docx(14页珍藏版)》请在冰豆网上搜索。
篮球比赛计时器24S倒时
proteus原理图:
字模取模方式:
源程序:
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineportP0//DB0~DB7数据口
sbite=P2^6;//使能
sbitrw=P2^5;//读写
sbitrs=P2^4;//数据/命令
sbitcs2=P2^2;//片选
sbitcs1=P2^1;
sbitbusy=P0^7;//检测忙
sbitb1=P1^0;
sbitb2=P1^1;
sbitb3=P1^4;
ucharfuhao;
uchari;
uchark1=0;
uchark2=0;
ucharj1=0;
ucharj2=0;
uchark3=9;
uchark4=3;
uchark5=2;
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,
/*--文字:
人--*/
/*--宋体12;此字体下对应的点阵为:
宽x高=16x16--*/
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,
/*--文字:
:
--*/
/*--宋体12;此字体下对应的点阵为:
宽x高=16x16--*/
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,
/*--文字:
热--*/
/*--宋体12;此字体下对应的点阵为:
宽x高=16x16--*/
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,
/*--文字:
火--*/
/*--宋体12;此字体下对应的点阵为:
宽x高=16x16--*/
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,
/*--文字:
光--*/
/*--宋体12;此字体下对应的点阵为:
宽x高=16x16--*/
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,
/*--文字:
一--*/
/*--宋体12;此字体下对应的点阵为:
宽x高=16x16--*/
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*--文字:
张--*/
/*--宋体12;此字体下对应的点阵为:
宽x高=16x16--*/
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,
/*--文字:
三--*/
/*--宋体12;此字体下对应的点阵为:
宽x高=16x16--*/
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,
/*--文字:
三--*/
/*--宋体12;此字体下对应的点阵为:
宽x高=16x16--*/
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,
/*--文字:
三--*/
/*--宋体12;此字体下对应的点阵为:
宽x高=16x16--*/
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,
/*--文字:
一--*/
/*--宋体12;此字体下对应的点阵为:
宽x高=16x16--*/
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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>0;i--);
}
voiddelay1(uinti)
{while(i--);
}
//判断是否忙子程序
voidcheck()
{
rs=0;
rw=1;//读e=1;
port=0x00;
e=1;
while(busy);
e=0;
}
//写指令子程序
voidsendcommand(ucharcommand)
{
check();
rs=0;//指令
rw=0;//写e=0;
port=command;
e=1;//下降沿,启动发送指令
e=0;//写入指令
}
//写数据子程序
voidwritedata(uchardat)
{
check();
rs=1;//数据
rw=0;
port=dat;
e=1;//下降沿,启动写数据
e=0;
}
//选屏子程序
//选屏幕0——全屏,1——左屏,2——右屏;
voidselect(uintn)
{
switch(n)
{
case0:
cs1=0;cs2=0;break;//低电平选中
case1:
cs1=0;cs2=1;break;//cs1左屏
case2:
cs1=1;cs2=0;break;//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&0x3f;//以下两句获取行地址
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()
{
check();
seton
(1);
clear(0);
setline(0);
}
//显示汉字16*16显示,设置汉字从第几页,第几行开始显示
voidshow16(ucharpage,ucharcolumn,ucharscreen,uchar*str)
{
uchari,j;
select(screen);
j=0;
setpage(page);
setcolumn(column);
for(i=0;i<16;i++)
writedata(str[j++]);
setpage(page+1);
setcolumn(column);
for(i=0;i<16;i++)
writedata(str[j++]);
}
//显示数字8*8显示
voidshow8(ucharpage,ucharcolumn,ucharscreen,uchar*str)
{
uchari,j;
select(screen);
j=0;
setpage(page);
setcolumn(column);
for(i=0;i<8;i++)
writedata(str[j++]);
setpage(page+1);
setcolumn(column);
for(i=0;i<8;i++)
writedata(str[j++]);
}
voidINC1()
{if(b1==0)
{delay(100);
k1++;
if(k1==10)
{k1=0;
k2++;
}
};
if(b3==0)
{delay(100);
j1++;
if(j1==10)
{j1=0;
j2++;
}
};
}
voidsubb()
{if(b2==0)
{delay
(1);
k3--;
if(k3==0)
{k3=9;
k4--;
k3--;
if(k4==0)
{k4=9;
k5--;
k4--;
k3--;
if(k5==0&&k4==0&&k3==0)
{k3=9;
k4=3;
k5=2;
}
}
}
}
elseif(b2==1)
{k3=9;
k4=3;
k5=2;
}
}
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//中断函数
{
TH0=(65536-50000)/256;//给T0赋初值
TL0=(65536-50000)%256;
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();
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 篮球比赛 计时器 24
![提示](https://static.bdocx.com/images/bang_tan.gif)