基于12684的篮球计分板.pdf
- 文档编号:14659251
- 上传时间:2023-06-25
- 格式:PDF
- 页数:22
- 大小:617.78KB
基于12684的篮球计分板.pdf
《基于12684的篮球计分板.pdf》由会员分享,可在线阅读,更多相关《基于12684的篮球计分板.pdf(22页珍藏版)》请在冰点文库上搜索。
河海大学物联网工程学院单片机课程设计报告单片机课程设计报告题题目目基于单片机的篮球计分板设计专业学号专业学号授课班号授课班号学生姓名学生姓名swordtomb指导教师指导教师请勿进行商业用途摘要摘摘要要:
本篮球计分板系统采用STC89C52RC单片机作为主控系统,4X4矩阵键盘进行操作,LCD12864显示结果。
硬件部分主要包括STC89C52单片机最小系统,LCD89C52RC以及矩阵键盘等。
本设计主要运用STC89C52RC片机控制LCD12864显示数据,不断对矩阵键盘进行扫描,获取即时数据修正更新。
关键词关键词:
STC单片机;LCD12864;矩阵键盘ABSTRACTThisBasketballscoreboardsystemusethechipSTC89C52RCasthemaincontrolpart.Inaddition,wemakeuseof4X4MatrixkeyboardtodealwithsomecommandandtheLCD12864willshowusthefinalresult.Thehardwarepartincludethemini-STC89C52RCsystem,LCD12864andMatrixkeyboard.ThisdesigncontroltheLCD12864bySTC89C5,scaningthekeyboradtoupdatedata.【Keywords】SCM;LCD;Matrixkeyboard目录目录1设计任务及要求.11.1设计任务.12主控制器件的论证与选择.12.1控制器选用.12.2显示部分选择.12.3键盘部分选择.23系统的硬件设计.23.1总体电路框图.23.2单元电路设计.31.STC89C52单片机最小系统.32.LCD12864.43.键盘矩阵.44.供电电源.54系统软件设计.54.1软件框图.54.2模块程序.54.3总程序.55测试方案与测试结果.96总结.9参考文献.9附录.101设计题目设计题目1设计任务与要求设计任务与要求1.1设计任务1、设计LCD显示篮球比分牌(30分)2、通过加分按钮可以给A队或B队加分(20分)3、设计对调功能,A队和B队分数互换,意味着中场交换场地。
(20分)4、显示比赛倒计时功能(20分)5、创新内容:
如显示第几小节、暂停次数、24秒等(10分)显示:
2方案比较与论证方案比较与论证2.1主控器的选择与论证方案一:
采用MSP430方案二:
采用STC89C52方案三:
采用AT89C51方案论证:
方案一,MSP430价格便宜,节约能源,相比较51系列ROM容量更大,程序书写较为繁琐;方案二,STC89C52芯片价格便宜,应用范围广,内部无ADC;方案三,AT89C51芯片价格便宜,应用范围广,内部无ADC。
鉴于程序本身并不是特别消耗能量,不需要特别考虑节电情况,并且STC系列烧写更加方便,因此采用STC89C52,比AT89C51多一个定时器。
选择方案二。
2.2显示部分的选择与论证方案一:
采用LCD128642方案二:
采用LCD1602方案三:
采用数码管方案论证:
方案一,LCD12864屏幕较大,字迹清晰,含有字库,可以显示汉字;方案二,LCD1602价格便宜,可以显示英文和数字;方案三,价格便宜,程序书写简单。
鉴于设计要求,采用LCD,相对于LCD1602,12864能显示更多的信息,因此选择12864.选择方案一。
2.3键盘的选择与论证方案一:
矩阵键盘方案二:
独立键盘方案论证:
开发版独立键盘数量有限,不能完全囊括多种功能,因此选择方案一,矩阵键盘。
3系统硬件设计系统硬件设计3.1总体电路框图为了使系统能够实现各种复杂的控制功能,本设计采用一种功能强大的、高速低功耗性价比高的单片机STC12C5A60S2完成对其他部分控制。
本设计采用N1000060倾角传感器对摆杆的倾斜角度的采集数据,通过STC12C5A60S2单片机内部自带的A/D转换将数据送给单片机,单片机通过数据分析控制L298N驱动电路,使步进机旋转保持平板的水平平衡,用1602液晶显示A/D的数据。
总体框图如图3-1所示。
3电源单片机液晶显示矩阵键盘图3-1总体框图3.2单元电路设计1、STC98C52RC最小系统STC89C52RC单片机最小系统P1口接4X4矩阵接入口,单片机通过对矩阵键盘的扫描获取外部下降沿数据,从而获得命令对内部数据进行修改。
单片机最小系统如图所示。
42、LCD12864P2口接LCD12864的数据输出,P0接LCD12864的命令输入。
3、4X4矩阵键盘与单片机的P1相连接。
4、电源部分54系统软件设计系统软件设计4.1总体软件框图1、总体软件框图如图4-1所示。
图4-1总体软件框图LCD初始化以及输出欢迎界面定时器初始化计分界面显示键盘扫描扫描结果数据处理64.2各模块软件设计1、矩阵函数voidKeyDown(void)chara=0;unsignedchartemp=0;GPIO_KEY=0x0f;if(GPIO_KEY!
=(0x0f)/读取按键是否按下delayms
(2);/Delay10ms
(1);/延时10ms进行消抖if(GPIO_KEY!
=0x0f)/再次检测键盘是否按下/测试列GPIO_KEY=0X0F;switch(GPIO_KEY)case(0X07):
KeyValue=0;break;case(0X0b):
KeyValue=4;break;case(0X0d):
KeyValue=8;break;case(0X0e):
KeyValue=12;break;/测试行GPIO_KEY=0XF0;switch(GPIO_KEY)case(0X70):
KeyValue=KeyValue+3;break;case(0Xb0):
KeyValue=KeyValue+2;break;case(0Xd0):
KeyValue=KeyValue+1;break;case(0Xe0):
KeyValue=KeyValue;break;while(a50)&(GPIO_KEY!
=(0xf0)/检测按键松手检测delayms
(2);/Delay10ms
(1);a+;switch(KeyValue)case0:
TR0=1;/开定时器7break;case1:
TR0=0;/关定时器count2+;times21=count2%10;times20=count2/10;break;case2:
Point_A=Point_A+1;/A队+1;break;case3:
Point_B=Point_B+1;/B队+1break;case4:
temp=Point_A;/两队积分交换Point_A=Point_B;Point_B=temp;break;case5:
Point_A=0;/双方得分清0Point_B=0;break;default:
break;add_AB();2、LCD12864函数voidinitinal(void)/LCD字库初始化程序delay(40);/大于40MS的延时程序PSB=1;/设置为8BIT并口工作模式delay
(1);/延时RES=0;/复位delay
(1);/延时RES=1;/复位置高delay(10);writecom(0x30);/ExtendedFunctionSet:
8BIT设置,RE=0:
basicinstructionset,G=0:
graphicdisplayOFFdelay(100);writecom(0x30);/FunctionSetdelay(37);writecom(0x08);/DisplayonControldelay(100);writecom(0x10);/CursorDisplayControl光标设置delay(100);writecom(0x0C);/DisplayControl,D=1,显示开8delay(100);writecom(0x01);/DisplayCleardelay(10);writecom(0x06);/EnryModeSet,光标从右向左加1位移动delay(100);voidwritecom(charcom)/传送命令,WRD=0;RS=0;delay
(1);P2=com;E=1;delay
(1);E=0;voidwritedata(chardata1)/传送数据.WRD=0;RS=1;delay
(1);P2=data1;E=1;delay
(1);E=0;3、定时器函数voidTimer0_isr(void)interrupt1using1TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=20)count=0;time-;display3();/显示倒计时delayms(10);voidInit_time0()9TMOD|=0x01;/使用模式1,16位定时器,使用|符号可以在使用多个定时器时不受影响TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;/总中断打开ET0=1;/定时器中断打开TR0=0;/定时器开关打开4.3总程序见附录A。
5系统调试与测试系统调试与测试5.1测试结果分析测试结果正常。
6设计总结设计总结经过几天的辛勤努力,本设计实现了题目的全部要求。
但由于时间紧,任务重,系统还存在许多可以改进的地方,比如可以增加一些功能,比较队伍得分,经过改进,相信性能还会有进一步的提升。
在软件编程方面,经过多次测试解决了LCD12864的时序问题,和使用延时函数解决了矩阵键盘的抖动问题。
本次课设极大的锻炼了我们各方面的能力,虽然我们遇到了很多困难和障碍,但总体上成功与挫折交替,困难与希望并存,我们将继续努力争取更大的进步。
参考文献参考文献1毛礼锐,沈灌群.中国教育通史M.济南:
山东教育出版社,1988.20-22.2王英杰,高益民.高等教育的国际化J.清华大学教育研究,2000
(2):
13-16.中华人民共和国国务院.计算机软件保护条例J/0L.东方网3刘宝延.步进电机及其驱动控制系统M.哈尔滨:
哈尔滨工业大学出版社,1972.4周航慈.单片机应用程序设计技术M.北京:
北京航空航天大学出版社,1991.5郁有文.传感器原理及工程应用M.西安:
西安电子科技大学出版,2008.6宋戈.51单片机应用开发范例大全M.北京:
人民邮电出版社,2010.107张毅刚.单片机原理及应用M.北京:
高等教育出版社,2009.8吴建平.传感器原理及应用M.北京:
机械工业出版社,2009.9唐继贤.51单片机工程应用实例M.北京:
北京航空航天大学出版社,2009.附录A:
总程序#include#include#defineGPIO_KEYP1/P1口接矩阵按键sbitRS=P07;sbitWRD=P06;sbitE=P05;sbitPSB=P04;sbitRES=P03;voidwritecom(charcom);voidwritedata(chardata1);voiddisplay2();voidadd_AB();voiddispaly();/欢迎界面voiddisplay3();voiddelayms(unsignedintn);voiddelay(unsignedintm);/延时程序50usvoidDelay10ms(unsignedintc);voidInit_time0();voidtimeset();unsignedchartable1=物联网工程学院;unsignedchartable3=篮球赛;unsignedchartable4=welcome;unsignedcharline11=A:
;unsignedcharline13=:
B;unsignedcharline2=4thperiod;unsignedcharline3=stoptimes:
;unsignedchartimes22;unsignedcharA6;unsignedcharclock4;unsignedcharPoint_A=0;/A队得分unsignedcharPoint_B=0;unsignedcharKeyValue=0;/矩阵按键的值unsignedcharcount;11unsignedchartime=204;unsignedcharcount2=0;voidwritecom(charcom)/传送命令,WRD=0;RS=0;delay
(1);P2=com;E=1;delay
(1);E=0;voidwritedata(chardata1)/传送数据.WRD=0;RS=1;delay
(1);P2=data1;E=1;delay
(1);E=0;voiddelayms(unsignedintn)/延时10n毫秒程序unsignedinti,j;for(i=0;in;i+)for(j=0;j2000;j+);voiddelay(unsignedintm)/延时程序50usunsignedinti,j;for(i=0;im;i+)for(j=0;j0;c-)for(b=38;b0;b-)for(a=130;a0;a-);voidinitinal(void)/LCD字库初始化程序delay(40);/大于40MS的延时程序PSB=1;/设置为8BIT并口工作模式delay
(1);/延时RES=0;/复位delay
(1);/延时RES=1;/复位置高delay(10);writecom(0x30);/ExtendedFunctionSet:
8BIT设置,RE=0:
basicinstructionset,G=0:
graphicdisplayOFFdelay(100);writecom(0x30);/FunctionSetdelay(37);writecom(0x08);/DisplayonControldelay(100);writecom(0x10);/CursorDisplayControl光标设置delay(100);writecom(0x0C);/DisplayControl,D=1,显示开delay(100);writecom(0x01);/DisplayCleardelay(10);writecom(0x06);/EnryModeSet,光标从右向左加1位移动delay(100);/*LCD欢迎界面显示*/voiddisplay()unsignedchari;writecom(0x40+0x80);/写命令delay(100);for(i=0;i16;i+)13writedata(table1i);writecom(0x40+0x88);for(i=0;i14;i+)writedata(table3i);writecom(0x40+0x98);for(i=0;i18;i+)writedata(table4i);voiddisplay2()unsignedchari;writecom(0x40+0x80);/写命令delay(100);for(i=0;i2;i+)writedata(line11i);for(i=0;i3;i+)writedata(Ai+48);writedata();writedata(|);writedata();for(i=3;i6;i+)writedata(Ai+48);for(i=0;i2;i+)writedata(line13i);writecom(0x40+0x90);for(i=0;i10;i+)writedata(line2i);14writecom(0x40+0x88);for(i=0;i11;i+)writedata(line3i);for(i=0;i2;i+)writedata(times2i+48);voiddisplay3()/显示计时unsignedchari;writecom(0x40+0x98+5);/写命令delay(100);for(i=0;i2;i+)writedata(clocki+48);writedata(:
);for(i=2;i4;i+)writedata(clocki+48);writedata(m);voidKeyDown(void)chara=0;unsignedchartemp=0;GPIO_KEY=0x0f;if(GPIO_KEY!
=(0x0f)/读取按键是否按下delayms
(2);/Delay10ms
(1);/延时10ms进行消抖if(GPIO_KEY!
=0x0f)/再次检测键盘是否按下/测试列GPIO_KEY=0X0F;switch(GPIO_KEY)15case(0X07):
KeyValue=0;break;case(0X0b):
KeyValue=4;break;case(0X0d):
KeyValue=8;break;case(0X0e):
KeyValue=12;break;/测试行GPIO_KEY=0XF0;switch(GPIO_KEY)case(0X70):
KeyValue=KeyValue+3;break;case(0Xb0):
KeyValue=KeyValue+2;break;case(0Xd0):
KeyValue=KeyValue+1;break;case(0Xe0):
KeyValue=KeyValue;break;while(a50)&(GPIO_KEY!
=(0xf0)/检测按键松手检测delayms
(2);/Delay10ms
(1);a+;switch(KeyValue)case0:
TR0=1;/开定时器break;case1:
TR0=0;/关定时器count2+;times21=count2%10;times20=count2/10;break;case2:
Point_A=Point_A+1;/A队+1;break;case3:
Point_B=Point_B+1;/B队+1break;case4:
temp=Point_A;/两队积分交换Point_A=Point_B;Point_B=temp;break;case5:
Point_A=0;/双方得分清0Point_B=0;break;16default:
break;add_AB();voidadd_AB()A0=Point_A/100;A1=(Point_A%100)/10;A2=Point_A%10;A3=Point_B/100;A4=(Point_B%100)/10;A5=Point_B%10;voidtimeset()unsignedcharqianwei,gewei,shiwei,baiwei;qianwei=time/1000;baiwei=(time%1000)/100;shiwei=(time%100)/10;gewei=time%10;clock0=qianwei;clock1=baiwei;clock2=shiwei;clock3=gewei;if(shiwei=9)clock3=5;time=159;voidmain(void)delay(100);/大于100uS的延时程序initinal();display();/显示欢迎界面delayms(240);delayms(240);17initinal();/调用LCD字库初始化程序Init_time0();while
(1)display2();/写出基本AB信息timeset();KeyDown();delayms(10);voidTimer0_isr(void)interrupt1using1TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=20)count=0;time-;display3();/显示倒计时delayms(10);voidInit_time0()TMOD|=0x01;/使用模式1,16位定时器,使用|符号可以在使用多个定时器时不受影响TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;/总中断打开ET0=1;/定时器中断打开TR0=0;/定时器开关打开附录B:
实物图18附录C:
显示图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 12684 篮球 计分