1、河海大学物联网工程学院单片机课程设计报告单片机课程设计报告题题目目基于单片机的篮球计分板设计专业学号专业学号授课班号授课班号学生姓名学生姓名swordtomb指导教师指导教师请勿进行商业用途摘要摘摘要要:本篮球计分板系统采用 STC89C52RC 单片机作为主控系统,4X4 矩阵键盘进行操作,LCD12864 显示结果。硬件部分主要包括 STC89C52 单片机最小系统,LCD89C52RC 以及矩阵键盘等。本设计主要运用 STC89C52RC 片机控制 LCD12864显示数据,不断对矩阵键盘进行扫描,获取即时数据修正更新。关键词关键词:STC 单片机;LCD12864;矩阵键盘ABSTRA
2、CTThis Basketball score board system use the chip STC89C52RC as themain control part.In addition,we make use of 4X4 Matrix keyboard to deal withsome command and the LCD12864 will show us the final result.The hardwarepart include the mini-STC89C52RC system,LCD12864 and Matrixkeyboard.This design cont
3、rol the LCD12864 by STC89C5,scaning thekeyborad to update data.【Keywords】SCM;LCD;Matrix keyboard目录目录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 测试方案与
4、测试结果.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 系列
5、ROM 容量更大,程序书写较为繁琐;方案二,STC89C52 芯片价格便宜,应用范围广,内部无 ADC;方案三,AT89C51 芯片价格便宜,应用范围广,内部无 ADC。鉴于程序本身并不是特别消耗能量,不需要特别考虑节电情况,并且 STC 系列烧写更加方便,因此采用 STC89C52,比 AT89C51 多一个定时器。选择方案二。2.2 显示部分的选择与论证方案一:采用 LCD128642方案二:采用 LCD1602方案三:采用数码管方案论证:方案一,LCD12864 屏幕较大,字迹清晰,含有字库,可以显示汉字;方案二,LCD1602 价格便宜,可以显示英文和数字;方案三,价格便宜,程序书写简
6、单。鉴于设计要求,采用 LCD,相对于 LCD1602,12864 能显示更多的信息,因此选择 12864.选择方案一。2.3 键盘的选择与论证方案一:矩阵键盘方案二:独立键盘方案论证:开发版独立键盘数量有限,不能完全囊括多种功能,因此选择方案一,矩阵键盘。3系统硬件设计系统硬件设计3.1 总体电路框图为了使系统能够实现各种复杂的控制功能,本设计采用一种功能强大的、高速低功耗性价比高的单片机 STC12C5A60S2 完成对其他部分控制。本设计采用N1000060 倾角传感器对摆杆的倾斜角度的采集数据,通过 STC12C5A60S2 单片机内部自带的 A/D 转换将数据送给单片机,单片机通过数
7、据分析控制 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系统软件设计系统软件
8、设计4.1 总体软件框图1、总体软件框图如图 4-1 所示。图 4-1 总体软件框图LCD 初始化以及输出欢迎界面定时器初始化计分界面显示键盘扫描扫描结果数据处理64.2 各模块软件设计1、矩阵函数void KeyDown(void)char a=0;unsigned char temp=0;GPIO_KEY=0 x0f;if(GPIO_KEY!=(0 x0f)/读取按键是否按下delayms(2);/Delay10ms(1);/延时 10ms 进行消抖if(GPIO_KEY!=0 x0f)/再次检测键盘是否按下/测试列GPIO_KEY=0X0F;switch(GPIO_KEY)case(0X
9、07):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)&(GP
10、IO_KEY!=(0 xf0)/检测按键松手检测delayms(2);/Delay10ms(1);a+;switch(KeyValue)case 0:TR0=1;/开定时器7break;case 1:TR0=0;/关定时器count2+;times21=count2%10;times20=count2/10;break;case 2:Point_A=Point_A+1;/A 队+1;break;case 3:Point_B=Point_B+1;/B 队+1break;case 4:temp=Point_A;/两队积分交换Point_A=Point_B;Point_B=temp;break;ca
11、se 5: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(0 x30);/Extended Function Set:8BIT 设置,RE=0:basic instruction set,G=0:graphic display O
12、FFdelay(100);writecom(0 x30);/Function Setdelay(37);writecom(0 x08);/Display on Controldelay(100);writecom(0 x10);/Cursor Display Control 光标设置delay(100);writecom(0 x0C);/Display Control,D=1,显示开8delay(100);writecom(0 x01);/Display Cleardelay(10);writecom(0 x06);/Enry Mode Set,光标从右向左加 1 位移动delay(100);
13、voidwritecom(char com)/传送命令,WRD=0;RS=0;delay(1);P2=com;E=1;delay(1);E=0;voidwritedata(char data1)/传送数据.WRD=0;RS=1;delay(1);P2=data1;E=1;delay(1);E=0;3、定时器函数void Timer0_isr(void)interrupt 1 using 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=20)count=0;time-;display3();/显示倒计时delayms(10
14、);void Init_time0()9TMOD|=0 x01;/使用模式 1,16 位定时器,使用|符号可以在使用多个定时器时不受影响TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;/总中断打开ET0=1;/定时器中断打开TR0=0;/定时器开关打开4.3 总程序见附录 A。5系统调试与测试系统调试与测试5.1 测试结果分析测试结果正常。6设计总结设计总结经过几天的辛勤努力,本设计实现了题目的全部要求。但由于时间紧,任务重,系统还存在许多可以改进的地方,比如可以增加一些功能,比较队伍得分,经过改进,相信性能还会有进一步的提升。在软件编程方面,
15、经过多次测试解决了 LCD12864 的时序问题,和使用延时函数解决了矩阵键盘的抖动问题。本次课设极大的锻炼了我们各方面的能力,虽然我们遇到了很多困难和障碍,但总体上成功与挫折交替,困难与希望并存,我们将继续努力争取更大的进步。参考文献参考文献1毛礼锐,沈灌群.中国教育通史M.济南:山东教育出版社,1988.20-22.2王英杰,高益民.高等教育的国际化J.清华大学教育研究,2000(2):13-16.中华人民共和国国务院.计算机软件保护条例J/0L.东方网3刘宝延.步进电机及其驱动控制系统M.哈尔滨:哈尔滨工业大学出版社,1972.4周航慈.单片机应用程序设计技术M.北京:北京航空航天大学出
16、版社,1991.5郁有文.传感器原理及工程应用M.西安:西安电子科技大学出版,2008.6宋戈.51 单片机应用开发范例大全M.北京:人民邮电出版社,2010.107张毅刚.单片机原理及应用M.北京:高等教育出版社,2009.8吴建平.传感器原理及应用M.北京:机械工业出版社,2009.9唐继贤.51 单片机工程应用实例M.北京:北京航空航天大学出版社,2009.附录 A:总程序#include#include#define GPIO_KEY P1/P1 口接矩阵按键sbit RS=P07;sbit WRD=P06;sbit E=P05;sbit PSB=P04;sbit RES=P03;void writecom(char com);void writedata(char data1);void display2();void add_AB();void dispaly();/欢迎界面void display3();void delayms(unsigned int n);void delay(unsigned int m);/延时程序 50usvoid Delay10ms(unsi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1