资源简介
本次设计用由AT89C51编程控制LED七段数码管作显示的球赛计时计分系统。系统应具有赛程定时设置,赛程时间暂停,及时刷新甲、乙双方的成绩以及赛后成绩暂存等功能。
内容包括:显示、键盘、时钟等内容
代码片段和文件信息
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit A8=P2^0;
sbit A9=P2^1;
sbit A10=P2^2;
sbit A11=P2^3;
sfr P00=0x80;
uchar code wei_1[]={0X010X020X040X080X100X200X400X80};
uchar code table[]={0X3F0X060X5B0X4F0X660X6D0X7D0X070X7F0X6F0x770x7c0x390x5e0x790x710X000X40};
uchar minute=12; //分
uchar second=0; //秒
uchar key_status=0; //按键状态值
uchar scoreA=0; //A队得分
uchar scoreB=0; //B队得分
uchar count1=20; //记录定时器时间
uchar match=1; //比赛节数
uchar rule_time=24; //记录24秒规则
uchar rule_flag=0; //记录24秒规则是否启用
/*
初始化IO口
*/
void IO_init(){
A8=0;
A9=0;
}
/*
初始化时间
*/
void time_init(){
TMOD = 0x01;
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
EA = 1;
ET0 = 1;
}
/*
延时函数
*/
void delay_ms(uint z){
uint i;
uchar j;
for(i=0;i
for(j=0;j<100;j++);
}
}
/*
计时函数
*/
void T0_Time() interrupt 1 using 1{
if (count1-- == 0)
{
second--;
rule_time--;
count1 = 20;
}
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
}
/*
时间显示函数
*/
void time_display(uchar w2uchar d2){
uchar shi1ge1;
shi1=d2/10;
ge1=d2%10;
P00=wei_1[w2];
A10=1;
A10=0;
P00=table[shi1];;
A8=1;
A8=0;
delay_ms(5);
P00=0;
A10=1;
A10=0;
A8=1;
A8=0;
P00=wei_1[w2+1];
A10=1;
A10=0;
P00=table[ge1];
A8=1;
A8=0;
delay_ms(5);
P00=0;
A10=1;
A10=0;
A8=1;
A8=0;
}
/*
分数显示函数
*/
void score_dispaly(uchar w2uchar d2){
uchar qian2shi2ge2;
qian2=d2/100;
shi2=d2%100/10;
ge2=d2%100%10;
P00=wei_1[w2];
A9=1;
A9=0;
P00=table[qian2];;
A8=1;
A8=0;
delay_ms(10);
P00=0;
A9=1;
A9=0;
A8=1;
A8=0;
P00=wei_1[w2+1];
A9=1;
A9=0;
P00=table[shi2];
A8=1;
A8=0;
delay_ms(10);
P00=0;
A9=1;
A9=0;
A8=1;
A8=0;
P00=wei_1[w2+2];
A9=1;
A9=0;
P00=table[ge2];
A8=1;
A8=0;
delay_ms(10);
P00=0;
A9=1;
A9=0;
A8=1;
A8=0;
}
/*
键盘输入函数
*/
void key(){
static uchar key_new = 0 key_ltemp;
key_status = 0;
P1 = 0x0f;
if((P1 & 0x0f) != 0x0f)
{
delay_ms(1);
if(((P1 & 0x0f) != 0x0f) && (key_new == 1))
{
key_new = 0;
/*
矩阵键盘扫描
*/
key_l = (P1 | 0xf0);
P1 = key_l;
switch(P1)
{
/*
开始计时/比赛继续
*/
case 0x7e:
TR0=1;
rule_flag=1;
time_display(6rule_time);
break;
/*
暂停比赛
*/
case 0x7d:
TR0=0;
break;
/*
加分,同时24秒清零和总计时器停止计时
*/
case 0xee:
TR0=0;
scoreA +=3;
rule_time=24;
rule_flag=0;
break;
case 0xed:
TR0=0;
scoreA +=2;
rule_time=24;
rule_flag=0;
break;
case 0xeb:
TR0=0;
scoreA +=1;
rule_time=24;
rule_flag=0;
break;
case 0xde:
TR0=0;
scoreB +=3;
rule_time=24;
rule_flag=0;
break
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-08-10 21:53 篮球计时器\
文件 165770 2018-06-23 20:42 篮球计时器\Last Loaded pic.DBK
目录 0 2018-08-10 21:50 篮球计时器\Listings\
文件 11167 2018-08-10 21:50 篮球计时器\Listings\yuanma.lst
文件 15349 2018-08-10 21:51 篮球计时器\Listings\yuanma.m51
目录 0 2018-08-10 21:51 篮球计时器\ob
文件 11359 2018-08-10 21:51 篮球计时器\ob
文件 957 2018-08-10 21:51 篮球计时器\ob
文件 2563 2018-08-10 21:51 篮球计时器\ob
文件 79 2018-08-10 21:51 篮球计时器\ob
文件 12843 2018-08-10 21:50 篮球计时器\ob
文件 165762 2018-08-10 21:53 篮球计时器\pic.DSN
文件 742 2018-08-10 21:53 篮球计时器\pic.PWI
文件 4516 2018-06-23 20:41 篮球计时器\yuanma.c
文件 0 2018-08-10 21:48 篮球计时器\yuanma.uvproj
- 上一篇:C语言车辆管理系统
- 下一篇:HOUGH_LINE.cpp
相关资源
- C语言车辆管理系统
- DOS菜单系统用C编写
- 马踏棋盘的源程序,C语言编写,数据
- 用c语言实现一元多项式的加减乘运算
- 多级反馈队列调度算法C语言源代码
- 基于C语言的录音播放程序--源代码
- 哈希表的设计与实现C语言
- 遗传算法C语言实现
- Linux下C语言应用编程--随书源代码
- PGP源码C语言版
- Hash查找、二分查找c语言关键字个数
- AES128/192/256 C语言实现AES加密/解密实测
- 考勤系统C语言实现完整源码+详细说明
- 一维条形码的生成与实现c语言+注释
- ASCII码转换C语言
- C8051F120单片机C语言程序代码,经典例
- c语言模拟ftp项目
- 0513《编译原理》答案 设计并实现TI
- codeblocks写的c语言小游戏源代码
- c语言迷宫游戏源代码
- C语言实现FFT和IFFT
- 仪器仪表管理源C语言代码
- 运动会成绩管理系统C语言
- AES加密算法C语言实现,有测试代码,
- 潜艇大战游戏C语言源代码
- 模糊PID的C语言程序
- 矩阵相乘的strassen算法c语言实现
- 文本文件检索程序代码
- Kruskal算法的c语言实现
- 火车票售票系统 c语言
评论
共有 条评论