篮球计分牌 单片机原理及应用实训报告_第1页
篮球计分牌 单片机原理及应用实训报告_第2页
篮球计分牌 单片机原理及应用实训报告_第3页
篮球计分牌 单片机原理及应用实训报告_第4页
篮球计分牌 单片机原理及应用实训报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 桂林电子科技大学信息科技学院?单片机原理及应用?实训报告学 号 姓 名 指导教师:韩桂明 赵志鹏 张锟 2021 年 10 月 19 日实训题目:篮球计分牌 1 系统设计1.1 设计要求1.1.1 设计任务 设计一个基于单片机的篮球计分牌,实现两队的计分功能与24秒计时功能。1.1.2 性能指标要求 (1) 按照题目要求独立设计系统所需电路,并完成硬件电路的制作及调试。2结合硬件能够正常计分。3能够正常显示分值。4能够正常修改工作模式计分与24秒。5能够24秒的误差不小于1秒。1.2 设计思路及设计框图根据比赛规那么篮球计分牌设计采用模块化结构必须实现比赛队伍加分减分等根本功能,因此我们可以

2、以单片机最小系统为核心,配以一定的外围电路和软件,以实现比赛计分器的功能。它由硬件局部和软件局部组成。硬件局部主要为按键模块、指示灯指示工作模式模块,以及译码显示模块组成。软件局部是通过编程利用单片机80C51拥有定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有4个8位并行输入口特性,进行模拟篮球计分牌加减分各个功能的实现。80C51内部有时钟电路,但需要石英晶体和微调电容外接,本系统中采用12MHz的晶振频率。1.2.2总体设计框图 C51单片机显示模块键盘2 各个模块程序的设计2.1 电路总体设计数码管显示模块数码管显示模块由数码管与排阻组成,数码管接入芯片P0与P2口,实现

3、段选与选。2.2 LED显示模块由LED灯和电阻组成,接入芯片P1口,通过编程实现对P1口上下电平的输出实现提示功能。2.3 控制模块由按键组成,接入芯片P3口,实现模式转换,加减分,24秒倒计时等功能的操作。2.4 外围控制模块单片机最小系统,以及外接蜂鸣器组成。3 调试过程首先根据设计思路设计出整体电路图,按照设计好的电路图,对元器件进行合理布局到面包板上,然后进行焊接。接着使用使用Keil C软件按照实训要求编辑程序以实现功能,可利用仿真软件ISIS 7 Professional进行程序模拟硬件仿真修改完善编程,确定程序满足需求后,烧录到芯片中,实现硬件操作。4.1 测试仪器与设备 1.

4、 ISIS 7 Professional进行程序模拟硬件仿真修改完善编程。2.万用表检查焊接电路。3.电源接通电路验证硬件功能。4.2 性能指标测试 1结合硬件能够正常计分。 2能够正常显示分值。 3能够正常修改工作模式计分与24秒。 4能够24秒的误差不小于1秒。 5能够利用LED以及蜂鸣器进行模式提示。5 实训心得体会为期两周的单片机实训落下了帷幕,在这次实训中,我深刻认识到自己所学习的单片机知识是远远不够,许多以前单片机中断,计数等知识还没有完全掌握,以至于在本次实训中遇到了很多困难,不过在自己经过查阅相关的资料,以及在老师同学们的帮助认真完成了单片机实训。这次单片机实训不同以往,不用进

5、行印版腐蚀,只需要在面包板上焊接电路,不过这也增加了一定的难度,所有线路都需要小心翼翼的一条一条焊接,以免造成电路虚焊,短路等。这次设计的题目是利用单片机模拟篮球计分,所有硬件布局完成的同时,我还需要进行软件编程,通过软件对单片机IO口赋值等操作,实现题目要求,编辑程序也是自己的弱项,许多C语言逻辑没有掌握,通过这次实训,我更加坚决了我学好单片机还有编程的决心。对于单片机还有编程的探索永无止境,我需要更加努力认真的学习,希望可以在老师的辛勤教导下,可以对单片机有一个良好的掌握,为今后的开展作铺垫!6 参考文献 例:1 谢自美电子线路设计实验测试第二版武汉:华中科技大学出版社,2000 2 李建

6、民单片机原理与应用技术西安:西安电子科技大学出版社,2006附录附录1:仿真波形图局部模块附录2:程序清单#include/*头文件*/#define uchar unsigned char /*定义变量*/#define uint unsigned int /*定义uint为无符号整形变量*/unsigned t = 0 x3cb0;uchar CZ=24; /*计时初值*/uchar key=0;uchar score;uchar mode=1;/*模式变量*/uchar score1=0; /*甲队得分变量*/uchar score2=0; /*乙队得分变量*/uchar foul1=0

7、;/*甲队犯规次数*/uchar foul2=0;/*乙队犯规次数*/ uchar bittime=0,bitdisplay=0; /*定义变量*/uchar code tab=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; /*段码0,1,2,3,4,5,6,7,8,9*/sbit J0=P30; /*独立按键 */sbit J1=P31;sbit J2=P32;sbit J3=P33;sbit J4=P34;sbit J5=P35;sbit J6=P36;sbit LED1 = P10;sbit LED2 = P11

8、;sbit LED3 = P12;sbit SPK=P17;/*延时函数*/void delay(uchar z)uchar x,y; for(x=z;x0;x-) for(y=110;y0;y-);/* 效劳程序*/void timer0 (void) interrupt 1 using 0TH0=0 x3c; /*50ms*/TL0=0 xb0; bittime+; /每来一次中断,中断次数bittime自加1while(bittime=20) bittime=0; /每经一秒调用一次显示程序 bitdisplay=1;if(bitdisplay)bitdisplay = 0;CZ-;if

9、(-1 = CZ) CZ=24; /* 甲队分数显示函数*/void display_1(uint z)P2 = 0XFD; /*11111101甲队个位分数显示*/P0 = tabz%10;delay(10);P2 = 0XFE; /*11111110甲队十位分数显示*/P0 = tabz/10;delay(10);/* 乙队分数显示函数*/void display_2(uint z)P2 = 0Xf7; /*11110111乙队个位分数显示*/P0 = tabz%10;delay(10);P2 = 0Xfb; /*11111011乙队十位分数显示*/P0 = tabz/10;delay(1

10、0);/* 甲分数处理函数*/int inc1()if(J4)delay(10);if(J4)delay(10);score1= score1+1;while(J4);if(J5)delay(10);if(J5)delay(10);score1= score1-1;while(J5); return score1;/* 乙分数处理函数*/int inc2()if(J4)delay(10);if(J4)delay(10);score2= score2+1;while(J4);if(J5)delay(10);if(J5)delay(10);score2 = score2-1;while(J5);r

11、eturn score2;/* 甲乙队切加分换处理函数*/uchar turn() if(J2)delay(10);if(J2)delay(10);key = 1;while(J2);if(J3)delay(10);if(J3)delay(10);key = 2;while(J3);return key;/* 加分显示函数*/void marks()turn();if(key = 1)inc1();if(score1100)display_1(score1);display_2(score2);else score1 =score1-100;else if(key = 2)inc2();if(

12、score2100)display_1(score1);display_2(score2);else score2 = score2-100;/*模式选择函数*/uchar mode_select()if(J0)delay(10);if(J0)delay(10);mode = 1;LED1 = 0;LED2 = 1;LED3 = 1; while(J0);if(J1)delay(10);if(J1)delay(10);mode = 2;LED1 = 1;LED2 = 0;LED3 = 1; while(J1);if(J6)delay(10);if(J6)delay(10);mode = 3;L

13、ED1 = 1;LED2 = 1;LED3 = 0; while(J6);return mode; /*犯规处理函数*/void foul_sever()turn();if(key = 1)if(J4)delay(10);if(J4) delay(10);display_1(foul2);foul1+;display_1(foul1);while(J4);if(key = 2)if(J4)delay(10);if(J4)delay(10);display_1(foul1);foul2+;display_1(foul2);while(J4);/*倒计时处理*/void time_count()T

14、R0 = 1; P2 = 0XFA; /*11111010甲乙十位显示*/P0 = tabCZ/10;delay(10);P2 = 0XF5; /*11110101甲乙个位显示*/P0 = tabCZ%10;delay(10);/* 主函数*/int main() TMOD= 0 x01;TH0=0 x3c; TL0=0 xb0;EA = 1; /cpu允许所有中断ET0 =1;/定时器T0中断允许 TR0 = 0;/关闭定时器T0P2 = 0XF0;P0 = 0 x3f;SPK=0;while(1) mode_select(); if(1 = mode)/加分功能 TR0 = 0; /关闭定时器CZ = 24; /重新赋初值24秒display_1(score1);delay(10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论