资源简介
本次设计用由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语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
评论
共有 条评论