篮球赛计时计分器程序源代码
篮球比赛计时计分系统的设计
![篮球比赛计时计分系统的设计](https://img.taocdn.com/s3/m/924a87300b4c2e3f5727635e.png)
毕业论文(设计)本科生毕业论文(设计)系(院)物理与电子信息科学系专业电子信息工程论文题目篮球比赛计时计分系统的设计学生姓名指导教师(姓名及职称)班级06级电信1班学号********完成日期:2010 年4 月毕业论文(设计)Lenovo User 第 1 页2022-4-28目录前言 (1)1 设计任务和要求 (2)1.1设计意义 (2)1.2设计任务 (2)1.3设计要求 (2)1.4功能创新 (2)2 方案比较与论证 (3)2.1显示模块的选择 (3)2.2计时方案的选择 (3)3 系统硬件设计 (4)3.1系统设计概述 (4)3.2各部分硬件简介 (4)3.2.1 按键部分 (4)3.2.2 显示部分 (5)3.2.3 系统复位电路部分 (8)3.2.4 AT89S52单片机简介 (8)3.2.5 系统总体原理图 (10)4 系统软件设计 (10)4.1系统软件框图 (10)4.2软件介绍 (11)4.2.1 Keil (11)4.2.2 Proteus (13)5 系统调试 (14)5.1软件调试 (14)5.2硬件调试 (14)5.3篮球比赛计时计分系统的功能实现 (14)6 结束语 (15)附录 (17)篮球比赛计时计分系统的设计卫鹏物理与电子工程学院电子信息工程06290116[摘要]利用AT89S52单片机实现了最新的篮球比赛计时计分系统的软硬件设计,此计时计分系统具有设定比赛每节总时间并实现总时间的倒计时、24s倒计时功能、暂停和比赛双方的计分功能。
该设计采用模块化的设计,程序结构简单,任务明确,易于编写、调试和修改。
[关键词]AT89S52单片机篮球比赛计时篮球比赛计分前言单片机,亦称单片微电脑或单片微型计算机。
它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。
计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。
单片机篮球计时计分器课程设计
![单片机篮球计时计分器课程设计](https://img.taocdn.com/s3/m/f53f0dd7c1c708a1284a445c.png)
数理与信息工程学院《单片机原理及应用》期末课程设计题目:基于单片机的篮球赛计时计分器专业:计算机科学与技术(专升本)班级:计算机081班姓名:李骏学号:08191121指导老师:余水宝成绩:(2009.6)目录第1节引言 (1)1.1本设计的任务和主要内容 (1)第2节系统主要硬件电路设计 (2)2.1 单片机控制原理 (2)2.2 单片机主机系统电路 (3)2.2.1计时电路 (4)2.2.2计分电路 (5)第3节系统的软件设计 (6)3.1 篮球赛计时计分器程序源代码 (6)3.2篮球赛计时计分器程序流程图 (16)结束语 (17)参考文献 (18)基于单片机的篮球计时计分器数理与信息工程学院 08计算机专升本李骏指导教师:余水宝第1节引言随着单片机载各个领域的广泛应用,许多用单片机作控制的球赛计时计分器系统也应运产生,如用单片机控制LCD液晶显示器计时计分器,用单片机控制LED七段显示器计时计分器等。
本文介绍一种有AT89C51编程控制LED七段数码管作显示的球赛计时计分系统。
本系统具有赛程定时设置、赛程时间暂停、及时刷新甲、乙队双方的成绩以及赛后成绩暂存等功能。
它具有价格低廉、性能稳定、操作方便且易携带等特点。
广泛适合各类学校和小团体作为赛程计时计分。
1.1本设计的任务和主要内容这次课程设计的主要任务是:设计制作一个用于赛场的篮球赛计时计分器。
主要内容如下:①能记录整个赛程的比赛时间,并能修改比赛时间、暂停比赛时间。
②能随时刷新甲、乙两队在整个赛程中的比分。
③中场交换比赛场地时,能交换甲、乙两队比分的位置。
④比赛时间结束时,能发出报警指令。
第2节系统主要硬件电路设计2.1 单片机控制原理图2-1 球赛计时计分器系统图2.2 单片机主机系统电路本系统采用单片机AT89C51作为本设计的核心元件。
利用7段共阴LED作为显示器件。
在此设计中共接入10个7段共阴LED显示器,其中6个用于记录甲、乙两队的分数每队3个LED显示器显示分数范围可达到0-999分,足够满足赛程需要。
篮球比赛计时计分
![篮球比赛计时计分](https://img.taocdn.com/s3/m/426e2fc30c22590102029d6a.png)
摘要本设计是采用AT89C51单片机为核心设计的一个用于赛场的篮球计时计分器。
本设计采用定时器T0中断计时,显示部分分为计时和计分显示两部分,均采用共阴极LED显示。
计时部分计时范围宽,而且可定时设定与小时、分钟调整;计分部分调节灵活,显示范围宽,足以满足各种规模赛程需要。
两个显示模块均采用动态扫描方式显示。
在本设计中P3口(P3.0—P3.5)是计时计分显示共用的扫描口,P0口是计时数据输出口,P2口计分数据输出口,计时计分均设有显示缓冲区(40H—45H 计分显示缓冲区,30H—35H计时显示缓冲区)。
本设计共有K1—K6六个设置按键,K1是甲加分键(按一次加一分),K2是乙加分键(按一次加一分),K3是定时切换键(定时设置与计时调时切换),K4是小时调整键(计时与定时小时调整),K5是分钟调整键(计时与定时分钟调整),K6分数位置交换键(交换甲、乙两队比分的位置)。
按键与P1口相接,低电平输入有效,另外还有一个复位按键K7。
报警部分由555与扬声器组成,当计时时间到时,输出低电平,由555构成的电路工作输出脉冲信号驱动扬声器发出声音。
计时定时的原理与定时闹钟相同,为定时设置定时小时和定时分钟计数单元,通过比较定时与计时的时分计数单元判断比赛是否结束是否报警,定时与计时共用一个显示缓冲区,通过K3(定时切换键)进行显示切换,本设计可通过定时显示的秒位判断定时是否有效,如果秒位显示00说明无效(上次用过的定时),显示11说明有效(本次定时)。
定时时间到,扬声器报警,比赛结束,按K3键可停止报警(否则一直报警)。
本次设计的篮球计时计分器具有以下的功能:[I]能记录整个赛程的比赛时间,并能修改比赛时间。
[II]能随时刷新甲、乙两队在整个比赛过程中的比分。
[III]中场交换比赛场地时,能交换甲、乙两队比分的位置。
[IV]比赛结束时,能发出报警声。
目录1概述- 3 -1.1 单片机简介- 3 -1.2 单片机发展前景- 4 -1.3 课程设计的意义- 5 -1.4 任务与要求- 5 -2系统总体方案及硬件设计- 6 -2.1 系统总体方案设计- 6 -2.2 硬件系统设计- 6 -2.2.1 单片机选择- 6 -2.2.2 时钟电路模块- 7 -2.2.3 复位电路模块- 8 -2.2.4按键控制键盘模块- 8 -2.2.5 显示模块和定时报警模块- 9 -3 软件设计 - 11 -3.1 软件总体设计方案- 11 -3.2 程序模块设计- 11 -3.2.1 中断入口程序- 12 -3.2.2 主程序模块与定时设置子程序- 13 -3.2.3 定时器T0中断服务程序和计时加1秒的子程序- 15 -3.2.4计时定时值与计分转换到显示缓冲区子程序- 15 -3.2.5报警服务子程序与延时子程序- 16 -4 PROTEUS软件仿真- 17 -5 课程设计体会- 20 -参考文献- 21 -附1 源程序代码- 22 -附2 系统原理图- 30 -1 概述1.1 单片机简介单片机,亦称单片微电脑或单片微型计算机。
毕业设计:篮球赛计时计分器设计
![毕业设计:篮球赛计时计分器设计](https://img.taocdn.com/s3/m/8fb99d3d33d4b14e84246825.png)
篮球赛计时计分器摘要单片机自20世纪70年代问世以来,以极为高的性价比受到人们的重视和关注,因此应用很广,进展专门快。
由于单片机的集成度高,功能强,通用性好,专门是它具有体积小、重量轻、能耗低、价钱廉价、靠得住性高、抗干扰能力强和利用方便等独特的优势,使单片机迅速取得了推行应用。
目前已经成为测量操纵应用系统中的优选机种和新电子产品的关键部位,许多用单片机做操纵的球赛计时计分系统也应运而生,如:用单片机操纵液晶显示(LCD)计时计分器,用单片机操纵LED七段显示器计时计分器等。
篮球计时计分器以单片机为核心,由计时器、计分器、综合操纵器等组成。
系统采纳模块化设计,主体分为计时显示模块、计分显示模块、按时报警、按键操纵键盘模块。
每一个模块的程序结构简单、任务明确,易于编写、调试和修改。
程序可读性好,对程序的修改可局部进行,其他部份可维持不变。
编程后利用Keil C51软件来进行编译,再将生成的HEX文件装入芯片中,采纳Proteus软件仿真,查验功能是不是能够正常实现,随后可用Protel99画出硬件电路图。
本设计中系统硬件电路要紧由以下几个部份组成:单片机AT89C51、计时电路、计分电路、报警电路和按键开关。
本次设计用由AT89C51编程操纵LED七段数码管作显示的球赛计时计分系统。
该系统具有赛程按时设置、赛程时刻暂停、及时刷新甲乙两边的成绩和赛后成绩暂存等功能。
它具有价钱低廉、性能稳固、操作方便而且易于携带等特点,普遍适合各类学校或小型集体作为赛程计时计分。
关键词:单片机,计时,计分,显示器,接口TIME BASKETBALL SCORING DEVICEABSTRACTSince the inception the 20th century 70 years, single-chip microcomputer (SCM) causes people’s attention and concern because of extremely cost-effective, so its application is very broad and rapid developing. SCM has many advantages, such as small size, light weight, anti-interference ability, less demanding on the environment, low cost, high reliability, good flexibility, developing more easily and so on. Now, it has become the preferred model in measurement control system and a key component of new electronic products. Many time scoring matches using SCM has also come into being, such as the timer with liquid crystal display (LCD), the timer with LED seven-segment display ,etc. Time basketball scoring device as the core of SCM includes the timer, scoring devices, integrated controller and other components.This system is used of the modular design, in which the main display module is divided into time display module, scoring display module, timing alarm module, and key control keyboard module. Program structure of each module is simple and clear. So it is easy to write, debug and modify. Because the program is readable, part of program can be modified and other parts may remain unchanged. After programming, firstly we can use Keil C51 software to compile and then generate the HEX file into the chip. Secondly we use the Proteus software simulation to test whether the normal function to achieve. Finally we draw the hardware circuit diagram with Protel99. The design of hardware circuit mainly consists of the five components, including AT89C51, timing circuit, scoring circuit, alarm circuit and key switch circuit.The design uses AT89C51 to program and to control LED digital tube for seven-segment display of match time scoring. The system has many features, such as setting the schedule time, scheduling time to pause, refreshing result ofboth parties timely, storing temporarily results after the match and so on. Because this system has low price, stable performance, and easy to operate and carry, it is widely suitable for all types of schools and small groups as the calendar time points.KEY WORDS:Microcontroller, Timing, Scoring, Display, Interface前言 (1)第1章系统方案说明 (1)方案选择 (2)篮球赛计时计分器设计的现状 (2)系统整体设计方案 (2)系统大体功能介绍 (3)第2章系统硬件电路设计 (6)篮球赛计时计分电路原理图 (6)篮球赛计时计分器电路工作进程 (6)系统硬件电路组成 (6)计时电路 (6)计分电路 (13)器件选择及介绍 (17)§2.4.1 AT89C51 (18)§2.4.2 CD4511芯片介绍 (21)§2.4.3 CD4094芯片的介绍 (22)§2.4.4 74LS21芯片介绍 (23)第3章软件编程及调试 (24)整体程序设计 (24)初始化程序设计 (25)计时系统程序设计 (26)计分系统程序设计 (27)系统调试 (28)软件调试 (28)仿真调试 (29)结论 (29)参考文献 (31)致谢 (32)附录 (33)随着单片机在各个领域的普遍应用,许多用单片机做操纵的球赛计时计分系统也应运而生,如用单片机操纵LCD液晶显示器[1]计时计分器,用单片机操纵LED七段显示器计时计分器等。
篮球计时计分器程序
![篮球计时计分器程序](https://img.taocdn.com/s3/m/088e3c3587c24028915fc31e.png)
#include <reg51.h>#include "intrins.h" //_nop_();延时函数用#define uchar unsigned char#define uint unsigned int#define Lcd_Port P3 //定义数据端口#define KEY_IO P0 //键盘接口sbit RS = P2^1; //定义和LCM的连接端口sbit RW = P2^2;sbit E = P2^5;sbit Busy = P3^7;uchar data keytemp,key;uchar L=0;uchar k=0;uchar c =0;uchar b=0;uchar j=0;uchar e=1;uchar d =0;uchar hour1=24;uchar min = 11;uchar sec = 59; //赋初值uchar data flag=0x00;bit flag_key=0;uchar code Lcddata[] = {"0123456789:"};uchar h1='A';uchar h2='B';uchar sub,abj;/****************************************************************************** ************* 函数名称:Timer0Init* 功能描述:定时器0初始化******************************************************************************* ***********/void Timer0Init(void){TMOD=0x11;TH0 = 0x3c;TL0 = 0xb0; //50ms定时初值TH1=0x3c;TL1=0xb0; //10MS定时初值(T1计时用)ET0=1;ET1=1;TR0=1;TR1=1;EA=1;}/****************************************************************************** ************* 函数名称:IsrTimer0* 功能描述:T0 50mS中断程序******************************************************************************* ***********/void IsrTimer0(void) interrupt 1 using 1 //T0 50mS中断程序{ static uchar count = 0;uchar i=0,b=0;TH0 = 0x3c;TL0 = 0xb0;count++;if(count ==20) //定时1s时间到{count = 0;sec--;if(sec == 0) //1分钟时间到{if(min == 0) //12分钟时间到{min = 11;sec = 59;TR0=0;for(i=1000;i<=0;i--) //延时5秒{for(b=1000;b<=0;b--){_nop_();_nop_();_nop_();_nop_();_nop_();}}}else{sec = 59;min--;}}}}/****************************************************************************** ************* 函数名称:Delay* 功能描述:延时子程序,延时(1MS*t) S******************************************************************************* ***********/void Delay(uchar t){uchar a;while(t-- != 0){for(a = 0; a < 125; a++);}}/****************************************************************************** ************* 函数名称:Read_Busy* 功能描述:读忙信号判断******************************************************************************* ***********/void Read_Busy(void){uchar i=50;Lcd_Port=0xff;RS = 0;RW = 1;E = 1;while((i--)&&Busy);E=0;}/****************************************************************************** ************* 函数名称:Write_Comm* 功能描述:写指令函数ok******************************************************************************* ***********/void Write_Comm(uchar lcdcomm){Read_Busy();RS = 0;RW = 0;E = 1;Lcd_Port=lcdcomm;E = 0;}/****************************************************************************** ************* 函数名称:Write_Char* 功能描述:写字符函数ok******************************************************************************* ***********/void Write_Char(uint num)//写字符函数{Read_Busy();RS = 1;RW = 0;E = 1;Lcd_Port = Lcddata[num];E = 0;}/****************************************************************************** ************* 函数名称:Write_Data* 功能描述:写数据函数ok******************************************************************************* ***********/void Write_Data(uchar lcddata){Read_Busy();RS = 1;RW = 0;E = 1;Lcd_Port = lcddata;E = 0;}/****************************************************************************** ************* 函数名称:Init_LCD* 功能描述:初始化LCD******************************************************************************* ***********/void Init_LCD(void){Delay(400); //稍微延时,等待LCM进入工作状态Write_Comm(0x38); //8位2行5*8Write_Comm(0x0c); //显示开/关,光标开闪烁开Write_Comm(0x01); //清显示Write_Comm(0x06); //文字不动,光标右移Write_Comm(0x02); //光标归位}/****************************************************************************** ************* 函数名称:Show_Time* 功能描述:LCD上显示当前时间******************************************************************************* ***********/void Show_Time(void){Lcd_Port = 0xa0;Write_Comm(0x80+0x08); //显示首地址Write_Char( hour1 / 10 );//显示分Write_Char( hour1 % 10 );Write_Comm(0x80+0x4b);Write_Char( min / 10 ); //显示倒计时分钟Write_Char( min % 10 );Write_Char( 10 ); //显示“:”Write_Char( sec / 10 ); //显示倒计时秒Write_Char( sec % 10 );Write_Comm(0x80+0x0d);Write_Char(e%10);Write_Data('S');Write_Data('t');Write_Comm(0x80+0x43);Write_Char( c /10 );Write_Char( c % 10 );Write_Comm(0x83);Write_Char(d /10 );Write_Char(d % 10 );}//***************按键扫描函数/*************void keyscan(){uchar i,t=0xef; //1110 1111KEY_IO=0x0f;keytemp=(~KEY_IO)&0x0e;if(keytemp!=0) //0000 0000 ;0000 1000; 0000 0100; 0000 0010; 0000 0001;{Delay(20);for(i=0;i<4;i++){KEY_IO=t;keytemp=(~KEY_IO)&0x0e;if(keytemp!=0&flag_key==0){flag_key=1;switch(keytemp){case 0x08:key=0*4+i;break;case 0x04:key=1*4+i;break;case 0x02:key=2*4+i;break;case 0x01:key=3*4+i;break;default:break;}switch(key){case0:{d++;j=1;if(d>=99){ Write_Comm(0x84);Write_Data('1');d=0;}b=0;}break;case1:{d++;d++;j=1;if(d>=99){ Write_Comm(0x84);Write_Data('1');d=0;}b=0;}break;case2:{d++;d++;d++;if(d>=99){ Write_Comm(0x84);Write_Data('1');d=0;} j=1;b=0;}break;case 3:{d--;if(d==0)d=0;}break;case4:{c++;if(c>=99){ Write_Comm(0x80+0x44);Write_Data('1');c=0;};b=1;j=0;}break;case5:{c++;c++;if(c>=99){ Write_Comm(0x80+0x44);Write_Data('1');c=0;}b=1;j=0;}break;case6:{c++;c++;c++;if(c>=99){ Write_Comm(0x80+0x44);Write_Data('1');c=0;}b=1;j=0;}break;case 7: {c--;if(c==0)c=0;}break;case 8:TR0=~TR0;TR1=~TR1;L=0;k=0;break;case 9:e++;if (e==5)e=1;Write_Comm(0x80+0x0d);Write_Char(e%10); break;case 0x0a: hour1=24;b=1;break;case 0x0b: abj=h1;h1=h2;h2=abj;RS=0;RW=0;P3=0x80+0x43;Delay(5);E=1;E=0;RS=1;RW=0;P3=h1;Delay(5);E=1;E=0;RS=0;RW=0;P3=0x83;Delay(5);E=1;E=0;RS=1;RW=0;P3=h2;Delay(5);E=1; E=0;sub=c;c=d;d=sub;b=1;break;//case 0x0c:TR0=1;TR1=1;break;default:break;}}t=(t<<1)|0x01;}}else flag_key=0;}void IsrTimer1(void) interrupt 3 using 3//T1 50mS中断程序{uchar i=0,m=0,a=0;static uchar ta20ms= 24;TH1=0x3c;TL1=0xb0;ta20ms--;if(ta20ms==0){ta20ms=24;hour1--;if(hour1==0)hour1=24 ;}k=1;L=1;}/****************************************************************************** ************* 函数名称:main* 功能描述:主函数******************************************************************************* ***********/void main(void){Init_LCD(); //初始化LCMTimer0Init(); //初始化定时器TR0=0;TR1=0;while(1){Show_Time(); //显示时间keyscan();Write_Comm(0x80);Write_Data(h1);Write_Data(':');Write_Comm(0x80+0x40);Write_Data(h2);Write_Data(':');}}。
单片机c51篮球计时计分器课程设计
![单片机c51篮球计时计分器课程设计](https://img.taocdn.com/s3/m/2a279bfb83c4bb4cf6ecd157.png)
单片机微机原理及应用课目:篮球记分牌的设计学院:电气工程学院班级:自动化08-2姓名:库万古丽(20082102427)麦地楠木(20082102426)指导教师:帕子来提完成时间:2011年12月11日篮球赛计时计分器一设计目的设计并制作一个用于赛场的篮球赛计时计分器,实现如下基本功能:(1)能记录整个赛程的比赛时间,并能修改比赛时间,暂停比赛时间。
(2)能随时刷新甲,乙两队在整个赛程中的比分。
(3)中场交换场地时,能交换甲,乙两队比分的位置。
(4)比赛时间结束时,能发出报警指令。
二设计意义通过篮球计分计时器的制作,可以使我熟悉,了解单片机开发设计实例的过程,并能使读者加深对单片机的理解和运用以及掌握单片机与外围接口的一些方法和技巧,这主要表现在以下的一些方面:(1)篮球计分计时器包含了8051系列单片机的最小应用系统的构成,同时在此基础上扩展了一些实用性强的外围接口。
(2)掌握键盘接口原理,能正确地把键盘使用到单片机系统中,可以了解到LED显示器的结构,工作原理以及这种显示器的接口实例。
(3)学会调试电路,分析电路故障,积累电路调试经验。
三具体设计内容1 系统框图构成基于单片机系统的篮球计分计时器的系统构成框图如下所示:2硬件电路改进:由于原来的电路比较复杂,用了很多芯片,浪费成本,而且给后期调试的调试会带来较多麻烦,故对原来的硬件电路进行了改动。
改动方面主要关于数码管显示的驱动和位选的,前期的电路设计采用了大量的CD4511和CD4094来进行数码管显示的驱动和位选,而这次的电路设计只用了8个三极管就实现了这项功能。
下面前期电路设计的计时部分的原理图,还有更为复杂的计分原理图未给出a b c d e f gLEDa b c d e f gLEDa b c d e f gLEDa b c d e f gLEDCD4511a b c d e f gVCCAB C D LELTGNDBICD4511a b c d e f gVCCAB C D LELTGNDBICD4511a b c d e f gVCCAB C D LELTGNDBICD4511a b c d e f gVCCAB C D LELTGNDBI123a1a2a32526271641234a4a1a2a3a4a1a2a3a412349181920RESET X TAL2X TAL1GNDP2.4P2.5P2.6P3.6VCC8765b1b2b3b4b1b2b3b45678EAb3P1.0P1.1P1.2P1.3P2.0P2.1P2.2P2.3b4403171234212223248GNDK5K6K7调时启动\暂停\交换C130pF C230pFU112MHZ C322uF R11k¦¸GNDVDD5VVDD5V调时VSS5V蜂鸣器GND后期改进的整体原理图:(3)软件调试及组装软件的编程调试首先要抓住计分和计时两大模块,在这两大模块成功的基础上再进行其他细小模块的组装和完善。
单片机实训篮球记分牌程序代码
![单片机实训篮球记分牌程序代码](https://img.taocdn.com/s3/m/8de89aeb0975f46527d3e180.png)
unsigned char miao=24,go=0,qh=0;
unsigned int bittime=0,bitdisplay=0;
sbit s1=P1^0;
sbit s2=P1^1;
sbit s3=P1^2;
sbit s4=P1^3;
if(qh==2)P0=Tab[bg%10];
break;
}
bitdisplay++;bittime++;
if(bitdisplay==4) {bitdisplay=0;}
if(bittime==500)
{bittime=0;
if(go)
if(miao--==0)
{go=0;miao=24;P3=0x7f;fm=1;}
switch (bitdisplay)
{
case 0:
P2=0xfe;
if(qh==0)P0=Tab[a/10];
if(qh==1)P0=Tab[miao/10];
if(qh==2)P0=Tab[ag/10];
break;
case 1:
P2=0xfd;
if(qh==0)P0=Tab[a%10];
if(qh==1)P0=Tab[miao%10];
#include<reg52.h>
//***************************数码管段代码表**********************************//
unsigned char Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x0;
篮球计分器 单片机 程序
![篮球计分器 单片机 程序](https://img.taocdn.com/s3/m/451fe075f46527d3240ce0f1.png)
TH0=(65536-50000)/256; //初值重装
TL0=(65536-50000)%256;
count1++; // 计数加一,实现时间的计算
delayms(5) ;
}
void displayfen1(fen1) //显示时间分的个位
{ P2=0xfb ;
P0=table[fen1] ;
delayms(5) ;
}
void displaymiao10(miao10) // 显示时间秒 的十位
miao++;
if(miao==60) //计时一分时,分加一,秒重新开始
{ miao=0;
fen++;
displayfen(fen); //显示分的更新
sbit fm=P1^7 ; //蜂鸣器控制口
//定义全局变量
uchar count1,count2,miao10,miao1,fen10,fen1,adui10;
uchar adui1,bdui10,bdui1,fen,adui,bdui,x,a,b;
count2++; //count2加一,实现计时一秒 (20个中断 为时间一秒)
if(count2==20)
{
count2=0; //到一秒时,count2重新开始,时间秒加一
char miao;
char code table[]={
0x40,0x5B,0x22,0x0a, //数码管编码表
0x19,0x0c,0x04,0x5a,
篮球比赛计时计分器
![篮球比赛计时计分器](https://img.taocdn.com/s3/m/2fab81f758fb770bf68a55bd.png)
设计任务:1、显示内容,队名用英文名,3个大写字母20分队名1-A:队名2-B =xxx:xxx第x节剩余时间:XX分XX秒2、串口控制20分A+1% A队加1分,%为结束符A+2% A队加2分,%为结束符A+3% A队加3分,%为结束符B+1% B队加1分,%为结束符以此类推3、串口控制交换场地5分A-B% AB队交换4、20 分PAUSE% 计时暂停按键1-定义为PAUSE按键用ZLG7290RESTART%重新计时按键2-定义为RESTARTRESET%重新比赛按键3-定义为RESET5、存储近5场的成绩到AT24C02 格式:1-队名1队名2=90:100类推20分RECALL1% 提取存储的第1场成绩,在数码管上显示,只显示比分,串口传回队名+比分&整场结束,提示是否保存成绩,按键4-存储键按键5-放弃键15分源代码:接线说明:PSB-VCC RS-P1.0 RW-P1.1 P1.3-E INT-P3.2 TXD-P3.1 RXD-P3.0 SDA-P1.6 SCL-P1.7 I2C 总线的ABC》别接键盘的ABCD以程序为准凭记忆写出来的)主程序#include<reg51.h>#include<intrins.h>#include<string.h>#include<I2C.h>#include <ZLG7290.h>#define unchar unsigned char #define unit unsigned int #define Lcd_Bus P0#define unchar unsigned char unsigned char KeyValue,FlagINT; int ney;// 纪录第及场比赛sbit RS=P1A0;//LCD 显示屏sbit RW=P1A1;sbit E=P1A3;unchar code lcddata[]={"0123456789:"};unchar code duiming[]={'1','H','O','U',':','2','C','H','I','='};unchar bifen[7];unchar fen1;unchar fen2;unchar jie;unchar min;unchar sec;unchar control;unchar table[10];************** 延时函数***********************void delay(unsigned int t) { unsigned int i,j;for(i=0;i<t;i++) for(j=0;j<10;j++)/* ------------ 写命令到LCD ---------------------- */void write_com(unsigned char cmdcode) {//chk_busy();RS = 0; // 置零RW = 0;E = 1;Lcd_Bus = cmdcode;delay(10); // 在数据写入的时候加入适当的延时 E = 0;}/* ------------ 写数据到LCD ---------------------- */void write_data(unsigned char Dispdata){//chk_busy();RS = 1; // 写数据RW = 0;E = 1;Lcd_Bus = Dispdata;delay(10); // 在数据写入的时候加入适当的延时 E = 0;/******* 函数名称:Write_Char* 功能描述:写字符******/ void write_char(unsigned int num){// chk_busy();RS = 1;RW = 0;E = 1;Lcd_Bus = lcddata[num];E = 0;}/* ------------ 显示字符串----------------- */void hzkdis(unsigned char code *s){ while(*s>0){ write_data(*s);// 选择基本指令集 (30H )// 点设定,游标右移// 开显示控制 (无游标、不反白 )// 清除显示,并且设定地址指针为 00H //unchar duiming[]= "1-HOU:2-CHI";// 队名数组//unchar bifen[7];// 比分数组unchar k;// 记录第几场比赛void timer0init(void) {TMOD=0X21;TH0=0X31;TL0=0XB0;ET0=1;EA=1;TR0=1;//IT0=1;// EX0=1;}/***** 用作串口通信 ****/ void timer1init(void){TH1=0xf3;TL1=0XF3;SCON=0X50;EA=1;ES=1;TR1=1;}/**** 保存成绩 */void save(int ney){ s++;/* ------------ 初始化 LCD 屏 ----------------- */ /*** 用作计时***/void lcdreset() { write_com(0x30);delay(16); write_com(0x04);delay(16);write_com(0x0f); delay(16);write_com(0x01);delay(16);}(同时地址归为 )int i;unchar buff[7];// ney++;ZLG7290_Download(i,0,0,0X0A); bifen[2]=fen2/100;bifen[1]=(fen2%100-fen2%10)/10;bifen[0]=fen2%10;bifen[3]=0X1F;bifen[6]=fen1/100;bifen[5]=(fen1%100-fen1%10)/10;bifen[4]=fen1%10;for(i=0;i<7;i++){x24c02_write(i+7*ney,bifen[i]);}for(i=0;i<7;i++){buff[i]=x24c02_read(i+7*ney); delay(12);}for(i=0;i<7;i++){ZLG7290_Download(i,0,0,buff[i]);}/********** 将存储在at24c02 的数据通过串口通信发还给电脑**/ void fahuan(unsigned char k){unchar buff[7],i;for(i=0;i<10;i++){SBUF=duiming[i];while(!TI){;}TI=0;}for(i=0;i<7;i++){buff[i]=x24c02_read(i+7*k);delay(12);}for(i=0;i<7;i++){ZLG7290_Download(i,0,0,buff[i]);}for(i=6;i>3;i--){SBUF=buff[i]+48;while(!TI){;}TI=0;}SBUF=':';while(!TI){;}TI=0;SBUF=buff[2]+48;while(!TI){;}TI=0;SBUF=buff[1]+48; while(!TI){;} TI=0;SBUF=buff[0]+48; while(!TI){;} TI=0;P2=0xf0;}/**** 定时器中断用作计时**/ void timer0(void) interrupt 1 using 1 {static unchar count=0; unchar i;TH0=0X3C;TL0=0XB0; count++;if(count==20){count=0;sec--;if(sec==-1){sec=59; min--; if(min==-1) {if(jie<=3) {write_com(0x01); jie++;min=1; } else { // TR0=0;control=0; //save();}}}}/**** 主要用作显示比分**/void show_fen1(void){ write_com(0x80); hzkdis("2-CHI:1-HOU=");write_com(0x90); delay(16);write_char(fen2/ 100); delay(16);write_char((fen2%100-fen2% 10)/10); delay(16);write_char(fen2% 10); delay(16);write_char( 10 ); delay(16) ;write_char(fen1/ 100); delay(16);write_char((fen1%100-fen1% 10)/10); delay(16);write_char(fen1% 10); delay(16);}/**** 显示比分队名顺序相反**/void show_fen0(void){write_com(0x80);hzkdis("1-HOU:2-CHI=");write_com(0x90); delay(16);write_char(fen1/ 100); delay(16);write_char((fen1%100-fen1% 10)/10); delay(16);write_char(fen1% 10);write_char( 10 ); delay(16) ;write_char(fen2/ 100); delay(16); write_char((fen2%100-fen2%10)/10); delay(16);write_char(fen2% 10); delay(16);}/*** 显示时间**/void show_time(void){write_com(0x88);if(jie%10==1)hzkdis("第 1 节”);if(jie%10==2)hzkdis("第 2 节");if(jie%10==3)hzkdis("第 3 节");if(jie%10==4)hzkdis("第 4 节");write_com(0x8c);hzkdis("剩余时间");write_com(0x9a);delay(16);write_char( min / 10 );delay(16);write_char( min % 10 );delay(16);write_char( 10 );delay(16);write_char( sec / 10 );delay(16);write_char( sec % 10 );}void show(){write_com(0x80);hzkdis("是否保存成绩?”);write_com(0x90);hzkdis("y press butter 4"); write_com(0x88);hzkdis("n press butter 5 "); write_com(0x98);hzkdis(" ");}/***** 串口中断处理来自串口助手的命令*/ void chuanko() interrupt 4 {unchar i=0;unchar buff[]="wrong";while(1){ while(!RI);RI=0; if(SBUF=='%') break; table[i]=SBUF;i++;} if(table[0]=='A'&&table[1]=='+'&&table[2]=='1') fen1++;else if(table[0]=='A'&&table[1]=='+'&&table[2]=='2') {fen1++;fen1++;}else if(table[0]=='A'&&table[1]=='+'&&table[2]=='3') {fen1++;fen1++;fen1++;}else if(table[0]=='B'&&table[1]=='+'&&table[2]=='1')fen2++;else if(table[0]=='B'&&table[1]=='+'&&table[2]=='2'){fen2++;fen2++;}else if(table[0]=='B'&&table[1]=='+'&&table[2]=='3'){fen2++;fen2++;fen2++;}else if(table[0]=='A'&&table[1]=='-'&&table[2]=='B'){control=2;// 交换场地}elseif(table[0]=='P'&&table[1]=='A'&&table[2]=='U'&&table[3]=='S'&&table[4]=='E'){TRO=(~TRO);〃暂停}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='S'&&table[3]=='T'&&table[4]=='A'&&table[5]==' R'& &table[6]=='T'){TR0=0;min=11;sec=59;TR0=1;〃重新计时}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='S'&&table[3]=='E'&&table[4]=='T'){ timer0init();// TR0=0;min=11;sec=59;jie=1;fen1=0;fen2=0;TR0=1;〃重新开始write_com(0x01);control=1;}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]==' L'& &table[6]=='1'){ ZLG7290_Download(i,0,0,0X0E);fahuan(0);//shuma(1);}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]=='L'& &table[6]=='2'){ fahuan(1);//shuma(2);}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]==' L'& &table[6]=='3'){ fahuan(2);//shuma(3);}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]==' L'& &table[6]=='4'){ fahuan(3);//shuma(4);}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]==' L'& &table[6]=='5'){ fahuan(4);//shuma(5);}else{ for(i=0;i<6;i++) {SBUF=buff[i]; while(!TI); TI=0;/**** 外部中断初始化响应按键中断**/void SystemInit(){I2C_Init();EA = 0;IT0 = 1; // 负边沿触发中断EX0 = 1; // 允许外部中断EA = 1; // 等待ZLG7290 复位完毕}/***** 外部中断函数响应各个按键**/void INT0_SVC() interrupt 0 {unchar i; ZLG7290_ReadReg(ZLG7290_Key,&KeyValue);// 显示键值DispValue(0,KeyValue); if(KeyValue==0x09) {TRO=(~TRO);//暂停} if(KeyValue==0x0a){TR0=0;min=11;sec=59;TR0=1;//重新计时} if(KeyValue==0x0b)timer0init(); write_com(0x01);TR0=0;min=11;sec=59;jie=1;fen1=0;fen2=0;control=1;TR0=1;〃重新开始} if(KeyValue==0x0c) { save(ney);ney++;timer0init();// 响应完中断记得重新初始化不然可能会出错timer1init();SystemInit();}main(){min=11;sec=59;fen1=0;fen2=0;jie=1;control=1;ney=0;timer0init();timer1init();lcdreset();SystemInit();//系统初始化while(1){if(control==1){show_fen0(); show_time();}if(control==0){show();// 比赛结束提示}if(control==2){show_fen1();// 交换场地show_time();}I2C.C标准80C51单片机模拟I2C总线的主机程序Copyright (c) 2005,广州周立功单片机发展有限公司All rights reserved.本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的*/#i nclude "I2C.h"//定义延时变量,用于宏l2C_Delay()un sig ned char data I2C_Delay_t;/*宏定义:I2C_Delay()功能:延时,模拟I2C总线专用*/#defi ne I2C_Delay()\{\I2C_Delay_t = (I2C_DELAY_VALUE);\ while ( --I2C_Delay_t != 0 );\/*函数:I2C_I nit()功能:I2C总线初始化,使总线处于空闲状态说明:在main()函数的开始处,通常应当要执行一次本函数*/void I2C_I nit(){I2C_SCL = 1;I2C_Delay();I2C_SDA = 1;I2C_Delay();/*函数:I2C_Start()功能:产生I2C 总线的起始状态说明:SCL处于高电平期间,当SDA出现下降沿时启动I2C总线不论SDA和SCL处于什么电平状态,本函数总能正确产生起始状态本函数也可以用来产生重复起始状态本函数执行后,I2C总线处于忙状态*/void I2C_Start(){I2C_SDA = 1;I2C_Delay();I2C_SCL = 1;I2C_Delay();I2C_SDA = 0;I2C_Delay();I2C_SCL = 0;I2C_Delay();} /* 函数:I2C_Write()功能:向I2C总线写1个字节的数据参数:dat:要写到总线上的数据*/ void I2C_Write(char dat){unsigned char t = 8;do{I2C_SDA = (bit)(dat & 0x80);dat <<= 1;I2C_SCL = 1;I2C_Delay();I2C_SCL = 0;I2C_Delay();} while ( --t != 0 );/*函数:I2C_Read() 功能:从从机读取 1 个字节的数据返回:读取的一个字节数据*/char I2C_Read(){char dat;unsigned char t = 8;I2C_SDA = 1; //在读取数据之前,要把SDA拉高do {I2C_SCL = 1;I2C_Delay();dat <<= 1;if ( I2C_SDA ) dat |= 0x01;I2C_SCL = 0;I2C_Delay();} while ( --t != 0 ); return dat;}/*函数:I2C_GetAck() 功能:读取从机应答位返回:0:从机应答1 :从机非应答说明:从机在收到每个字节的数据后,要产生应答位从机在收到最后 1 个字节的数据后,一般要产生非应答位*/bit I2C_GetAck(){bit ack;I2C_SDA = 1;I2C_Delay();I2C_SCL = 1;I2C_Delay();ack = I2C_SDA; I2C_SCL = 0;I2C_Delay();return ack;/*函数:I2C_PutAck() 功能:主机产生应答位或非应答位参数:ack=O:主机产生应答位ack=1 :主机产生非应答位说明:主机在接收完每一个字节的数据后,都应当产生应答位主机在接收完最后一个字节的数据后,应当产生非应答位*/void I2C_PutAck(bit ack){I2C_SDA = ack;I2C_Delay();I2C_SCL = 1;I2C_Delay();I2C_SCL = 0;I2C_Delay();}/*函数:I2C_Stop()功能:产生I2C 总线的停止状态说明:SCL处于高电平期间,当SDA出现上升沿时停止I2C总线不论SDA和SCL处于什么电平状态,本函数总能正确产生停止状态本函数执行后,I2C总线处于空闲状态*/void I2C_Stop(){unsigned int t = I2C_STOP_WAIT_VALUE;I2C_SDA = 0;I2C_Delay();I2C_SCL = 1;I2C_Delay();I2C_SDA = 1;I2C_Delay();while ( --t != 0 ); // 在下一次产生Start 之前,要加一定的延时} /*函数:I2C_Puts()功能:I2C总线综合发送函数,向从机发送多个字节的数据参数:SlaveAddr:从机地址(7位纯地址,不含读写位)SubAddr:从机的子地址SubMod:子地址模式,0—无子地址,1 —单字节子地址,2—双字节子地址*dat :要发送的数据Size:数据的字节数返回:0:发送成功1 :在发送过程中出现异常说明:本函数能够很好地适应所有常见的I2C 器件,不论其是否有子地址当从机没有子地址时,参数SubAddr 任意,而SubMod 应当为0*/bit I2C_Puts(unsigned char SlaveAddr, unsigned int SubAddr, unsigned char SubMod, char *dat, unsigned int Size){// 定义临时变量unsigned char i;char a[3];// 检查长度if ( Size == 0 ) return 0;// 准备从机地址a[0] = (SlaveAddr << 1);// 检查子地址模式if ( SubMod > 2 ) SubMod = 2;// 确定子地址switch ( SubMod ){case 0: break;case 1:a[1] = (char)(SubAddr);break;case 2:a[1] = (char)(SubAddr >> 8);a[2] = (char)(SubAddr);break;default: break;}// 发送从机地址,接着发送子地址(如果有子地址的话) SubMod++;I2C_Start();for ( i=0; i<SubMod; i++ ){I2C_Write(a[i]);if ( I2C_GetAck() ){I2C_Stop(); return 1;}}// 发送数据do{I2C_Write(*dat++);if ( I2C_GetAck() ) break;} while ( --Size != 0 );//发送完毕,停止I2C总线,并返回结果I2C_Stop();if ( Size == 0 ){return 0;}else{return 1;}}/*函数:I2C_Gets()功能:I2C总线综合接收函数,从从机接收多个字节的数据参数:SlaveAddr:从机地址(7位纯地址,不含读写位)SubAddr:从机的子地址SubMod:子地址模式,0—无子地址,1 —单字节子地址, *dat :2—双字节子地址保存接收到的数据Size:数据的字节数返回:0:接收成功1 :在接收过程中出现异常说明:本函数能够很好地适应所有常见的I2C 器件,不论其是否有子地址当从机没有子地址时,参数SubAddr 任意,而SubMod 应当为0 */bit I2C_Gets(unsigned char SlaveAddr, unsigned int SubAddr, unsigned char SubMod, char *dat, unsigned int Size){// 定义临时变量unsigned char i; char a[3];// 检查长度if ( Size == 0 ) return 0;// 准备从机地址a[0] = (SlaveAddr << 1);// 检查子地址模式if ( SubMod > 2 ) SubMod = 2;// 如果是有子地址的从机,则要先发送从机地址和子地址if ( SubMod != 0 ){//确定子地址if ( SubMod == 1 ){a[1] = (char)(SubAddr);}else{a[1] = (char)(SubAddr >> 8); a[2] = (char)(SubAddr);} //发送从机地址,接着发送子地址SubMod++;I2C_Start();for ( i=0; i<SubMod; i++ ){ I2C_Write(a[i]); if ( I2C_GetAck() ) {I2C_Stop();return 1;}}//这里的l2C_Start()对于有子地址的从机是重复起始状态//对于无子地址的从机则是正常的起始状态l2C_Start();// 发送从机地址l2C_Write(a[0]+1);if ( l2C_GetAck() ){l2C_Stop();return 1;}//接收数据for (;;){*dat++ = l2C_Read();if ( --Size == 0 ){ l2C_PutAck(1); break;} l2C_PutAck(0);}//接收完毕,停止I2C总线,并返回结果l2C_Stop();return 0;}/*ZLG7290.c数码管显示与键盘管理芯片ZLG7290的标准80C51驱动程序C文件Copyright (c) 2005,广州周立功单片机发展有限公司All rights reserved.本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的*/ #include "I2C.h"#include "ZLG7290.h" /*函数:ZLG7290_WriteReg()功能:向ZLG7290的某个内部寄存器写入数据参数:RegAddr:ZLG7290的内部寄存器地址dat :要写入的数据返回:0:正常1:访问ZLG7290时出现异常*/bit ZLG7290_WriteReg(unsigned char RegAddr, char dat){bit b;b = I2C_Puts(ZLG7290_I2C_ADDR,RegAddr,1,&dat,1); return b;}/*函数:ZLG7290_ReadReg()功能:从ZLG7290的某个内部寄存器读出数据参数:RegAddr:ZLG7290的内部寄存器地址*dat :保存读出的数据返回:0:正常1:访问ZLG7290时出现异常*/bit ZLG7290_ReadReg(unsigned char RegAddr, char *dat){bit b;b = I2C_Gets(ZLG7290_I2C_ADDR,RegAddr,1,dat,1); return b;}/*函数:ZLG7290_cmd()功能:向ZLG7290发送控制命令参数:cmdO :写入CmdBufO寄存器的命令字(第1字节) cmdl :写入CmdBufl寄存器的命令字(第2字节) 返回:0:正常1:访问ZLG7290时出现异常*/bit ZLG7290_cmd(char cmd0, char cmd1){bit b;char buf[2];buf[0] = cmd0;buf[1] = cmd1;b = I2C_Puts(ZLG7290_I2C_ADDR,ZLG7290_CmdBuf,1,buf,2); return b; }/* 函数:ZLG7290_SegOnOff()功能:段寻址,单独点亮或熄灭数码管(或LED)中的某一段参数:seg:取值0〜63,表示数码管(或LED)的段号b:0 表示熄灭, 1 表示点亮返回:0:正常1:访问ZLG7290时出现异常说明:在每一位数码管中,段号顺序按照“ a,b,c,d,e,f,g,dp ”进行*/bit ZLG7290_SegOnOff(char seg, bit b){char cmd;cmd = seg & 0x3F;if ( b ) cmd |= 0x80;return ZLG7290_cmd(0x01,cmd);}/*函数:ZLG7290_Download() 功能:下载数据并译码参数:addr :取值0〜7,显示缓存DpRamO〜DpRam7的编号dp:是否点亮该位的小数点,0 —熄灭,1—点亮flash:控制该位是否闪烁,0—不闪烁,1—闪烁dat :取值0〜31,表示要显示的数据返回:0:正常1:访问ZLG7290时出现异常说明:显示数据具体的译码方式请参见ZLG7290的数据手册*/bit ZLG7290_Download(char addr, bit dp, bit flash, char dat){char cmd0;char cmd1;cmd0 = addr & 0x0F;cmd0 |= 0x60;cmd1 = dat & 0x1F;if ( dp ) cmd1 |= 0x80;if ( flash ) cmd1 |= 0x40;return ZLG7290_cmd(cmd0,cmd1);} /*I2C.h标准80C51单片机模拟I2C总线的主机程序头文件Copyright (c) 2005,广州周立功单片机发展有限公司All rights reserved. 本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的*/#ifndef _I2C_H_ #define _I2C_H_#include <reg51.h>//模拟I2C总线的引脚定义sbit I2C_SCL = P1A6;sbit I2C_SDA = P"7;//定义I2C总线时钟的延时值,要根据实际情况修改,取值1〜255//SCL信号周期约为(I2C_DELAY_VALUE*4+15个机器周期#define I2C_DELAY_VALUE 12//定义I2C总线停止后在下一次开始之前的等待时间,取值1〜65535〃等待时间约为(I2C_STOP_WAIT_VALUE*8个机器周期//对于多数器件取值为 1 即可;但对于某些器件来说,较长的延时是必须的#defineI2C_STOP_WAIT_VALUE 120//I2C 总线初始化,使总线处于空闲状态void I2C_Init();void x24c02_write(unsigned char address,unsigned char info); unsigned charx24c02_read(unsigned char address); //unsigned char x24c02_read(unsigned char address);//I2C 总线综合发送函数,向从机发送多个字节的数据bit I2C_Puts(unsigned char SlaveAddr,unsigned int SubAddr,unsigned char SubMod, char *dat, unsigned int Size);//I2C 总线综合接收函数,从从机接收多个字节的数据bit I2C_Gets(unsigned char SlaveAddr,unsigned int SubAddr,unsigned char SubMod, char *dat, unsigned int Size);#endif //_I2C_H_/*ZLG7290.h数码管显示与键盘管理芯片ZLG7290的标准80C51驱动程序头文件Copyright (c) 2005,广州周立功单片机发展有限公司All rights reserved. 本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的*/#ifndef _ZLG7290_H_#define _ZLG7290_H_#include <reg51.h> //ZLG7290 中断请求信号的引脚定义sbit ZLG7290_pi nINT = P3A2;II定义ZLG7290在I2C总线协议中的从机地址// 这是7 位纯地址,不含读写位#define ZLG7290_I2C_ADDR 0x38II定义ZLG7290内部寄存器地址(子地址)#define ZLG7290_SystemReg 0x00 II系统寄存器#define ZLG7290_Key 0x01 II 键值寄存器II#define ZLG7290_RepeatCnt 0x02 II 连击次数寄存器II#define ZLG7290_FunctionKey 0x03 II 功能键寄存器#define ZLG7290_CmdBuf 0x07 II 命令缓冲区起始地址#define ZLG7290_CmdBuf0 0x07 II 命令缓冲区0#define ZLG7290_CmdBuf1 0x08 //命令缓冲区 1//#define ZLG7290_FlashOnOff 0x0C //闪烁控制寄存器#define ZLG7290_ScanNum 0x0D //扫描位数寄存器#define ZLG7290_DpRam 0x10 // 显示缓存起始地址#define ZLG7290_DpRam0 0x10 //显示缓存0/#define ZLG7290_DpRam10x11 //显示缓存 1#define ZLG7290_DpRam2 0x12 //显示缓存 2#define ZLG7290_DpRam3 0x13 //显示缓存 3#define ZLG7290_DpRam5 0x15 //显示缓存 5#define ZLG7290_DpRam6 0x16 //显示缓存 6#define ZLG7290_DpRam7 0x17 //显示缓存7//向ZLG7290的某个内部寄存器写入数据bit ZLG7290_WriteReg(unsigned char RegAddr, char dat);//从ZLG7290的某个内部寄存器读出数据bit ZLG7290_ReadReg(unsigned char RegAddr, char *dat);//向ZLG7290发送控制命令bit ZLG7290_cmd(char cmd0, char cmd1);//段寻址,单独点亮或熄灭数码管(或LED)中的某一段bit ZLG7290_SegOnOff(char seg, bit b);//下载数据并译码bit ZLG7290_Download(char addr, bit dp, bit flash, char dat);〃闪烁控制指令(Fn应当是字节型)//Fn 的8 个位分别控制数码管的8 个位是否闪烁,0-不闪烁,1-闪烁#define ZLG7290_Flash(Fn) ZLG7290_cmd(0x70,(Fn))#endif //_ZLG7290_H_#include <reg51.h>#include <intrins.h>#include <I2C.h>//sbit dula=P2A6;//sbit wela=P2A7; unsigned char j,c;void de(unsigned char i) // 延时程序{for(j=i;j>0;j--)for(c=125;c>0;c--);}/*24C02 读写驱动程序*/void flash()// 短时间的延时,几微秒左右{ ; ;}void init() //24c02 初始化子程序{I2C_SCL=1;flash();I2C_SDA=1;flash();}void start() // 启动I2C 总线{I2C_SDA=1;flash();I2C_SCL=1;flash();I2C_SDA=0;flash();// scl=0;// flash();}void stop() // 停止I2C 总线{I2C_SDA=0;flash();I2C_SCL=1;flash();I2C_SDA=1;flash();}void writex(unsigned char j) // 写一个字节{ unsigned char i,temp;temp=j;for (i=0;i<8;i++){ temp=temp<<1; I2C_SCL=0; flash(); I2C_SDA=CY; flash(); I2C_SCL=1; flash();}I2C_SCL=0;flash();I2C_SDA=1;flash();} unsigned char readx() // 读一个字节{unsigned char i,z;I2C_SCL=0;flash();I2C_SDA=1;for (i=0;i<8;i++){ flash(); I2C_SCL=1; flash();if (I2C_SDA==1) j=1; else j=0;z=(z<<1)|j;// 先左移,然后在最低位读入值I2C_SCL=0;}flash();return(z);}void clock() //I2C 总线时钟响应{unsigned char i=0;I2C_SCL=1;flash();while ((I2C_SDA==1)&&(i<255))i++;I2C_SCL=0;flash();//////// 从24c02 的地址address 中读取一个字节数据///// unsigned charx24c02_read(unsigned char address) {unsigned char i; start();writex(0xa8);//A1 A2 A3 全部低电平// clock();writex(address);clock();start(); writex(0xa9);clock(); i=readx();stop(); de(10);return(i); }////// 向24c02 的address 地址中写入一字节数据info///// void x24c02_write(unsigned char address,unsigned char info) {EA=0;start(); writex(0xa8);clock(); writex(address);clock(); writex(info);clock();stop();de(50);。
单片机毕业设计-篮球比赛倒计时计分器(论文+外文翻译+程序)
![单片机毕业设计-篮球比赛倒计时计分器(论文+外文翻译+程序)](https://img.taocdn.com/s3/m/965c8b1902020740be1e9b92.png)
目录第1章引言 (I)1.1背景知识介绍 (3)1.2 设计意义 (2)1.3 设计目的 (3)第2章系统硬件介绍 (3)2.1 MCS-51单片机简述 (4)2.1.1单片机AT89C51简介 (4)2.1.2 主要特性 (7)2.1.3 管脚说明 (7)2.1.4 芯片擦除 (9)2.1.5 空闲节电模式 (9)2.1.6 掉电模式 (10)2.1.7 程序储存器的加密 (11)2.1.8 AT89C51的极限参数 (11)2.2 显示器及其接口 (12)2.2.1显示器介绍 (12)2.2.2结构与原理 (13)2.2.3 LED显示器显示方式 (15)2.2.4 LED显示器接口实例 (17)2.3 CD4511芯片介绍 (19)2.4 CD4094芯片介绍 (21)2.5 74LS21芯片介绍 (22)2.6 报警器 (23)2.6.1报警器的分类 (23)2.6.2报警器工作原理 (23)第3章硬件电路设计 (24)3.1Protel99软件介绍 (24)III3.1.1 关于EDA技术与Protel99简要介绍 (24)3.1.2 Protel99界面及功能简述 (25)3.1.3 Protel99设计电路步骤 (26)3.2系统方案设计 (27)3.2.1系统构成框图 (27)3.2.2器件选择 (28)3.2.3基本功能介绍 (28)3.3硬件总体设计 (30)3.4 计时电路部分 (32)3.4.1.振荡电路 (32)3.4.2计时电路原理 (33)3.4.3计分电路原理图 (34)3.4.4 计时电路的工作原理 (35)3.5计分电路部分 (35)3.5.1 串行接口工作原理 (36)3.5.2比分校正控制电路 (37)3.5.3计分电路原理图 (38)3.5.4 计分电路的工作原理 (39)3.6球赛计时计分器的工作过程 (40)3.7硬件电路PCB板图 (41)第4章软件编程及调试 (42)4.1开发环境介绍 (42)4.1.1汇编语言特点简介 (42)4.1.2开发软件介绍 (43)4.2软件设计 (44)4.2.1 编程设置及总流程框图 (44)4.2.2主要模块说明 (46)4.3系统调试 (47)4.3.1软件调试 (47)4.3.2仿真调试 (49)第5章结论 (50)IV参考文献 (52)致谢 (53)附录 (54)外文资料原文 (60)摘要篮球比赛计时计分器是为了解决篮球比赛时计分与计时准确的问题。
基于51单片机的篮球比赛计分计时器设计_课程设计
![基于51单片机的篮球比赛计分计时器设计_课程设计](https://img.taocdn.com/s3/m/ae136006a76e58fafbb00306.png)
课程设计任务书设计题目篮球比赛计分器设计学生姓名所在院系电子信息与电气工程学院专业、年级、班设计要求:1.结合单片机串行口工作原理,用A T89S52设计一个篮球比赛计时计分器。
2.能够记录整个赛程的比赛时间并可同时用数码管显示。
3.拥有键盘接口,可通过键盘修改当前的比赛成绩(成绩修改包括加减1、2、3)。
4.能够随时刷新甲、乙两队在整个比赛中的比赛成绩。
5.能够通过数码管显示两队的比赛成绩。
6.比赛中场和结束时,能发出报警。
学生应完成的工作:1.根据设计任务选定合适的单片机,根据控制对象设计接口电路。
2.根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单。
3.根据所确定的设计电路,利用相关软件绘制电路原理图、仿真图等,提供元器件清单。
4.根据电路及器件,完成安装、焊接和调试工作。
5.根据设计过程,撰写实习报告。
6.该生在此次设计中主要负责了倒计时程序的查找、电路的仿真和元器件的领取任务。
参考文献阅读:【1】单片机原理及应用[M].张毅刚编著.高等教育出版社;【2】51系列单片机及C51程序设计[M].王建校,杨建国等编著.科学出版社;【3】单片机原理及接口技术[M].徐煜明,韩艳编著.电子工业出版社;【4】单片机C语言和汇编语言混合编程实例详解[M].杜树春.北京航空航天大学出版社;工作计划:2012.05.07 8:00~11:30 下达课程设计任务书,介绍课程设计整体情况15:00~18:30 熟悉课题,查阅资料2012.05.08 8:00~11:30 教师进行方案性提示,主要原理15:00~18:30 学生根据课题需要,拟定系统硬件方案2012.05.098:00~18:30 讨论,优化并确定系统硬件方案2012.05.108:00~18:30 讨论并确定程序流程,逐步开始撰写课程设计报告2012.05.118:00~18:30 根据程序流程图编写程序2012.05.148:00~18:30 讨论、优化最终完成系统软件设2012.05.158:00~18:30 系统硬件电路制作,并检查课程设计报告撰写进度2012.05.168:00~18:30 系统硬件电路制作,并检查课程设计报告撰写进度2012.05.178:00~18:30 烧录程序,系统调试2012.05.188:00~11:30 完成课程设计报告的撰写15:00~18:30 集中检查收取课程设计报告及完成的实物任务下达日期:2012 年5月7 日任务完成日期:2012 年5月18 日指导教师(签名):学生(签名):篮球比赛计分器设计摘要:篮球比赛计分器的设计是为了解决篮球比赛时计分与计时准确方便和灵活适用的问题而提出的,我组设计的篮球比赛计分器硬件部分主要利用AT89S52单片机完成了计分与计时的功能,并通过两个四位七段数码管分别用来显示比赛时间和甲、乙比赛双方的分数,软件部分利用Keil C51软件来进行编译,通过Proteus软件进行仿真,最后将生成的HEX文件烧入到单片机芯片中。
基于单片机的篮球计时计分器设计(C语言编程、含proteus仿真图)
![基于单片机的篮球计时计分器设计(C语言编程、含proteus仿真图)](https://img.taocdn.com/s3/m/3e01ac607e21af45b307a84a.png)
摘要单片机,亦称单片微电脑或单片微型计算机。
它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。
本设计是基于AT89S52单片机的篮球计时计分器,利用7段共阴LED作为显示器件。
在此设计中共接入了1个四位一体7段共阴LED显示器,2个两位一体7段共阴LED显示器,前者用来记录赛程时间,其中2位用于显示分钟,2位用于显示秒钟,后者用于记录甲乙队的分数,每队2个LED显示器显示范围可达到0~99分。
赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。
其次,为了配合计时器和计分器校正调整时间和比分,我们特定在本设计中设立了7个按键,用于设置,调整时间,启动,调整分数和暂停等功能。
采用单片机控制是这个系统按键操作使用简洁,LED显示,安装方便。
主控芯片采用AT89S52单片机,采用C语言进行编程,编程后利用Keil uVision3来进行编译,再生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能是否能够正常实现。
仿真成功后,焊接硬件电路,通过ISP下载器将hex文件烧制到单片机。
目录1. 概述 (2)1.1 背景知识介绍 (2)1.2 设计内容 (2)1.3计任务和要求 (3)1.4 设计意义 (3)2.系统总体方案及硬件设计 (4)2.1 系统总体方案设计 (4)2.2 硬件电路设计 (5)2.2.1时钟电路模块 (6)2.2.2 复位电路模块 (6)2.2.3显示模块 (7)2.2.4 报警模块 (8)2.2.5总硬件电路设计 (9)3 软件设计 (10)3.1 软件总体设计方案 (10)3.2 软件设计具体过程 (11)3.2.1延时模块设计 (12)3.2.2 数码管动态刷新显示程序 (12)3.2.3 T0中断程序 (14)3.2.4 加分子程序 (15)3.2.5减分子程序 (15)3.2.6 调整时间子程序 (16)3.2.7 半场交换比分子程序 (18)3.2.8 比赛暂停子程序 (19)3.2.9 中场指示灯程序 (20)3.2.10 主程序 (20)4 . PROTEUS仿真 (23)4.1 PROTEUS简介 (23)4.2仿真过程 (23)5. 硬件焊接与调试 (26)6.课程设计体会 (27)参考文献 (28)附1 源程序 (29)附2 系统原理图.............................................................................................. 错误!未定义书签。
篮球比赛计时计分器程序
![篮球比赛计时计分器程序](https://img.taocdn.com/s3/m/1b35c48a4693daef5ff73d1d.png)
#define NIXIE76
#define NIXIE87
sbit IO_Beep=P3^0;
sbit IO_LED=P3^1;
sbitIO_Key1=P1^0; //定义按键输入口
sbitIO_Key2=P1^1;
sbitIO_Key3=P1^2;
sbitIO_Key4=P1^3;
unsigned int R_SetTimeCount;
//--------------------------
void Delay(unsigned int number) //延时函数
{
unsigned int R_count_;
for(R_count_=0;R_count_<=number;R_count_++)
sbitIO_Key5=P1^4;
sbitIO_Key6=P1^5;
sbitIO_Key7=P1^6;
sbitIO_Key8=P1^7;
#define KEY10
#define KEY21
#define KEY32
#define KEY43
#define KEY54
#define KEY65
#define KEY76
R_DisplayNUM[5]=R_Minute%100/10;
R_DisplayNUM[4]=R_Minute%10;
}
void display(void)//显示数据函数
{
R_DisplayPoint++;
if(R_DisplayPoint>7)
{
R_DisplayPoint=0;
}
篮球比赛计时计分器
![篮球比赛计时计分器](https://img.taocdn.com/s3/m/084ef666ddccda38376baf71.png)
毕业设计(论文)篮球比赛计时计分器设计学号:08100000姓名:木云三告专业:自动化系别:电子信息与控制工程系指导教师:郭彬讲师二○一二年六月摘要单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。
由于单片机的集成度高,功能强,通用性好,特别是它具有体积小、重量轻、能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用。
目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位,许多用单片机做控制的球赛计时计分系统也应运而生,如:用单片机控制LED七段显示器计时计分器等。
篮球计时计分器以单片机为核心,由计时器、计分器、综合控制器等组成。
系统采用模块化设计,主体分为计时显示模块、计分显示模块、定时报警、按键控制键盘模块。
每个模块的程序结构简单、任务明确。
程序可读性好,对程序的修改可局部进行,其他部分可保持不变。
编程后利用Keil C51软件来进行编译,采用Proteus软件仿真,检验功能是否能够正常实现。
本设计中系统硬件电路主要由以下几个部分组成:单片机AT89C52、计时电路、计分电路、报警电路和按键开关。
本次设计用由AT89C52编程控制LED七段数码管作显示的球赛计时计分系统。
该系统具有赛程定时设置、赛程时间暂停、及时刷新甲乙双方的成绩以及赛后成绩暂存等功能。
它具有价格低廉、性能稳定、操作方便并且易于携带等特点,广泛适合各类学校或者小型团体作为赛程计时计分。
关键词:单片机;篮球赛计时;篮球赛计分;显示器ABSTRACTSCM since the nineteen seventies since, with extremely high price and more attention, so the application is very wide, development is very rapid. As the single-chip high integration, strong function, good versatility, especially it has the advantages of small volume, light weight, low energy consumption, low price, high reliability, strong anti interference ability and convenient use and other unique advantages, so that the chip has been promoted rapidly application. Has now become a measurement control in the application system of optimization models and new electronic product key parts, many do MCU control of match time scoring system also emerge as the times require, such as: using MCU to control LED seven segment display time scoring device. Time basketball scoring device with single chip computer as the core, by the timer, scoring device, integrated controller.The system adopts modular design, main body is divided into a timing display module, display module, timing alarm, scoring keys to control the keyboard module. Each module of the program is simple in structure, clear mission. Program readability, modification of programs can be local, the other part can be kept constant. After programming using Keil C51software to compile, use Proteus software simulation, test function to normal implementation. The design of the system hardware circuit is mainly composed of the following components: SCM AT89C52, a timing circuit, scoring circuit, the alarm circuit and the key switch.The design used by the AT89C52 programming control of LED seven digital tube display game timing and scoring system. The system has a race timing settings, schedule time to pause, timely refresh a and B both score and the game after the temporary success function. It has the advantages of low cost, stable performance, convenient operation and easy portability and other characteristics, are widely suitable for all types of schools or small groups as schedule time scoring.Key words: single chip timing; basketball; basketball score ;display目录摘要 (i)ABSTRACT ...................................................................................................................... i i 目录 ............................................................................................................................. i ii 第1章绪论 .. (1)1.1国内外的研究现状分析: (1)1.2设计目的: (1)1.3设计内容 (2)第2章系统硬件介绍 (3)2.1 MCS-51单片机简述 (3)2.1.1单片机AT89C52简介 (3)2.1.2 主要特性: (4)2.1.3 管脚说明: (4)2.1.4 中断 (6)2.1.5 Flash存储器的编程 (7)2.1.6 空闲节电模式 (7)2.1.7 掉电模式 (8)2.1.8 程序储存器的加密 (9)2.1.9 AT89C52的极限参数 (9)2.2 报警器 (9)2.2.1 报警器的分类 (9)2.2.2 报警器工作原理 (9)2.3 芯片74HC154 (9)2.3.1 简介 (10)2.3.2 引脚说明 (10)2.4 RESPACK—8 (10)2.5 显示器及接口 (11)2.5.1 显示器介绍 (11)2.5.2结构与原理 (11)2.5.3 LED显示器显示方式 (13)第3章电路方案设计 (16)3.1 功能控制电路 (16)3.2 时钟产生方式 (17)3.3 复位电路 (17)3.4 显示电路 (18)3.5电路总图 (19)第4章软件设计与流程图 (20)4.1 软件keil的简介与应用 (20)4.2 部分程序设计 (21)4.2.1 计时程序 (21)4.2.2 计分程序 (22)4.2.3 程序总流程图 (22)第五章仿真 (24)5.1 Proteus简介 (24)5.2 Proteus功能特点 (24)5.3 proteus的应用 (25)5.4 电路仿真 (26)结论 (27)致谢 (28)参考文献 (29)附录一 (30)附录二 (33)附录三 (41)第1章绪论1.1国内外的研究现状分析单片机自面世以来,以其体积小、价格低、功能强、可靠性高等特点倍受人们的青睐。
LCD1602篮球比赛计时计分器本科设计说明
![LCD1602篮球比赛计时计分器本科设计说明](https://img.taocdn.com/s3/m/a68f2014c850ad02de804189.png)
本科毕业设计题目LCD1602篮球比赛计时计分器学院管理科学与工程学院专业电子信息工程摘要本课题设计采用单片机AT89C51为核心,设计出篮球计分计时系统,可以实现单节比赛12分钟倒计时、24秒进攻时间倒计时、开始/暂停倒计时、改变节次、单节结束报警、两队比分分别加1分、加2分、加3分等各种显示效果。
本系统利用LCD1602液晶显示器作为显示器件,显示节次、12分钟倒计时、24秒倒计时、主客队双方比分,通过3*3矩阵键盘来控制计时器和计数器工作,单节比赛结束时LED发光二极管闪烁报警。
该设计采用LCD1602液晶显示器,因为其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用,通过仿真基本上实现了上述功能,操作简单,性能稳定,符合一般篮球计分器的工作要求。
关键词:AT89C51;矩阵键盘;LCD1602;计数器;计时器AbstractThis design project using AT89C51 microcontroller as the core, design basketball scoring timing system, countdown to a single game of 12 minutes, 24 seconds shot clock countdown, start / pause and change the section, a single end alarm, the teams were, respectively, add 1 point, 2 points, plus 3 grading a variety of display.This system uses the LCD1602 LCD monitor as a display, Display Session, 12 minutes 24 seconds of the countdown, countdown to the main visiting team score by 3 * 3 matrix keyboard to control the timer and counter, LED blinks when a single end of the game alarm.The design uses LCD1602 LCD display to get more and more widely in the pocket-sized instrument and low-power applications because of its micro-power, small size, the use of flexible and many other advantages through simulation basically realize the above functions, the operation simple, stable performance, in line with the general basketball scoring requirements.Key word: AT89C51;Matrix Keyboard;LCD1602;Counter;Timer目录1引言 (1)1.1 本课题选取的目的及意义 (1)1.2 本系统的主要研究容 (2)2系统分析 (3)2.1 系统构成 (3)2.2 系统工作原理 (3)3系统硬件设计 (4)3.1 系统硬件总体设计 (4)3.2 AT89C51单片机 (5)3.2.1 AT89C51简介 (5)3.2.2 主要特性 (6)3.2.3 管脚说明 (7)3.2.4 芯片擦出 (9)3.2.5 空闲节电模式 (9)3.2.6 掉电模式 (10)3.2.7 程序储存器的加密 (11)3.2.8 AT89C51的极限参数 (11)3.3 LCD1602液晶显示模块 (11)3.3.1显示器介绍 (11)3.43*3矩阵键盘模块 (15)3.5时钟电路模块 (16)3.6复位电路模块 (17)3.7 元件清单 (17)4系统软件设计 (18)5 Protues ISIS软件仿真 (22)5.1 Proteus运行流程 (22)5.2 Proteus功能仿真 (22)5.3 Proteus仿真结果 (23)6结论 (24)参考文献 (25)致 (26)附录 (27)1引言进入21世纪,伴随着电子、信息技术的应用与迅速普及,人们对电子技术的要求越来越高。
矿产
![矿产](https://img.taocdn.com/s3/m/829bb502a4e9856a561252d380eb6294dd88229b.png)
矿产资源开发利用方案编写内容要求及审查大纲
矿产资源开发利用方案编写内容要求及《矿产资源开发利用方案》审查大纲一、概述
㈠矿区位置、隶属关系和企业性质。
如为改扩建矿山, 应说明矿山现状、
特点及存在的主要问题。
㈡编制依据
(1简述项目前期工作进展情况及与有关方面对项目的意向性协议情况。
(2 列出开发利用方案编制所依据的主要基础性资料的名称。
如经储量管理部门认定的矿区地质勘探报告、选矿试验报告、加工利用试验报告、工程地质初评资料、矿区水文资料和供水资料等。
对改、扩建矿山应有生产实际资料, 如矿山总平面现状图、矿床开拓系统图、采场现状图和主要采选设备清单等。
二、矿产品需求现状和预测
㈠该矿产在国内需求情况和市场供应情况
1、矿产品现状及加工利用趋向。
2、国内近、远期的需求量及主要销向预测。
㈡产品价格分析
1、国内矿产品价格现状。
2、矿产品价格稳定性及变化趋势。
三、矿产资源概况
㈠矿区总体概况
1、矿区总体规划情况。
2、矿区矿产资源概况。
3、该设计与矿区总体开发的关系。
㈡该设计项目的资源概况
1、矿床地质及构造特征。
2、矿床开采技术条件及水文地质条件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
矿产资源开发利用方案编写内容要求及审查大纲
矿产资源开发利用方案编写内容要求及《矿产资源开发利用方案》审查大纲一、概述
㈠矿区位置、隶属关系和企业性质。
如为改扩建矿山, 应说明矿山现状、
特点及存在的主要问题。
㈡编制依据
(1简述项目前期工作进展情况及与有关方面对项目的意向性协议情况。
(2 列出开发利用方案编制所依据的主要基础性资料的名称。
如经储量管理部门认定的矿区地质勘探报告、选矿试验报告、加工利用试验报告、工程地质初评资料、矿区水文资料和供水资料等。
对改、扩建矿山应有生产实际资料, 如矿山总平面现状图、矿床开拓系统图、采场现状图和主要采选设备清单等。
二、矿产品需求现状和预测
㈠该矿产在国内需求情况和市场供应情况
1、矿产品现状及加工利用趋向。
2、国内近、远期的需求量及主要销向预测。
㈡产品价格分析
1、国内矿产品价格现状。
2、矿产品价格稳定性及变化趋势。
三、矿产资源概况
㈠矿区总体概况
1、矿区总体规划情况。
2、矿区矿产资源概况。
3、该设计与矿区总体开发的关系。
㈡该设计项目的资源概况
1、矿床地质及构造特征。
2、矿床开采技术条件及水文地质条件。