版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书课程设计说明书题目:基于STM32的四路抢答器学院:年级专业:学号:学生姓名:指导教师: 第1页共33页课程设计说明书摘要在各种智力竞赛场合,抢答器是必不可少的最公正的用具。在我们各种竞赛中我们也经常能看到有抢答的环节,某些举办方采用让选手通过举答题板的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性,而抢答器的应用就能避免这种弊端。今天随着科技的不断进步抢答器的制作也更加追求精益求精,人们摆脱了耗费很多元件仅来实现用指示灯和一些电路来实现简单的抢答功能,使第一个抢答的参赛者的编号能通过指示灯显示出来,避免不合理的现象发生。但这种电路不易于扩展,而且当有更高要求时就无法实现,例如参赛人数的增加。随着数字电路的发展,数字抢答器诞生了,它易于扩展,可靠性好,集成度高,而且费用低,功能更加多样,是一种高效能的产品。而如今在市场上销售的抢答器大多采用可编程逻辑元器件,或利用单片机技术进行设计。本文实现了一个基于嵌入式STM32单片机的4路抢答器系统设计,本系统设计主要分为硬件设备和软件控制两大部分。外部硬件使用STM32单片机作为控制中心,用4个按键作为抢答输入,抢答开始后,抢答成功者的LED灯标识为红色闪烁,并且显示各抢答输入的时间。关键词:智能抢答器,STM32,按键输入,数码管显示 第2页共33页课程设计说明书课程设计说明书 第页/*调用库函数,初始化GPIOA*/GPIO_Init(GPIOA,&GPIO_InitStructure);/*关闭所有led灯*/GPIO_SetBits(GPIOA,GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6);}程序分析:进入LED_GPIO_Config后,完成LED相关引脚配置。4.4.3按键配置函数#include"key.h"voidKEY_Config(void){//GPIO配置EXTI_InitTypeDefEXTI_InitStructure;GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;GPIO_Init(GPIOA,&GPIO_InitStructure);//EXTI配置GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0|\GPIO_PinSource1|GPIO_PinSource2|GPIO_PinSource3);//中断源EXTI_InitStructure.EXTI_Line=EXTI_Line0|EXTI_Line1|EXTI_Line2|EXTI_Line3;//中断线路EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;//外部触发EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//下降沿EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);}程序分析:完成KEY相关引脚配置,并设置相应的中断线,中断模式,触发方式,使能EXTI的配置。4.4.4NVIC配置#include"nvic.h"voidNVIC_Config(void){//ÉùÃ÷NVIC½á¹¹ÌåNVIC_InitTypeDefNVIC_InitStructure;//设置中断0NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;//设置中断1NVIC_InitStructure.NVIC_IRQChannel=EXTI1_IRQn;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;//设置中断2NVIC_InitStructure.NVIC_IRQChannel=EXTI2_IRQn;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;//设置中断3NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQn;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;NVIC_Init(&NVIC_InitStructure);}程序分析:在NVIC中,分别完成相应的中断1,2,3,4中断分组,抢占优先级,响应优先级的配置,由于是均等条件的抢答,故抢占及响应优先级均为同一等级。4.4.5DIGITRON函数#include"digitron.h"u8table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};//共阳极0-9intFlagA=1,FlagB=1,FlagC=1,FlagD=1;u16TIME=500;voiddelayms(u16time);//延时1msvoidTimeCount(void);//计时voidDIGITRON_GPIO_Config(void){/*定义一个GPIO_InitTypeDef类型的结构体*/GPIO_InitTypeDefGPIO_InitStructure;/*开启GPIOA的外设时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE);/*选择要控制的GPIOB引脚*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;/*设置引脚模式为通用推挽输出*/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;/*设置引脚速率为50MHz*/GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/*调用库函数,初始化GPIOA*/GPIO_Init(GPIOB,&GPIO_InitStructure);}voidTimeCount(){u8i=0,j=0,m=0,n=0;//选手Afor(;i<10;i++){GPIO_ResetBits(GPIOB,GPIO_Pin_All);switch(i){case0:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|\GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5);delayms(TIME);break;//0case 1: GPIO_SetBits(GPIOB,GPIO_Pin_1 |GPIO_Pin_2);delayms(TIME);break;//1case2:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|\GPIO_Pin_3 | GPIO_Pin_4 |GPIO_Pin_6);delayms(TIME);break;//2case3:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|\GPIO_Pin_2 | GPIO_Pin_3 |GPIO_Pin_6);delayms(TIME);break;//3case4:GPIO_SetBits(GPIOB,GPIO_Pin_1|GPIO_Pin_2|\GPIO_Pin_5|GPIO_Pin_6);delayms(TIME);break;//4case5:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_2|\GPIO_Pin_3 | GPIO_Pin_5 |GPIO_Pin_6);delayms(TIME);break;//5case6:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_2|\GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6);delayms(TIME);break;//6case7:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|\GPIO_Pin_2);delayms(TIME);break;//7case8:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|\GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5\|GPIO_Pin_6);delayms(TIME);break;//8case9:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|\GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_5|GPIO_Pin_6);delayms(TIME);break;//9}if(FlagA==1){break;}}voiddelayms(u16time)//延时1ms{u16i=0;while(time--){i=12000;while(i--);}}程序分析:在数码管函数中,采用switch-case语句进行数码管从0-9的显示,每个数字显示500ms,在响应中断后,跳出for循环,从而实现抢答时间的显示。4.4.6中断服务函数voidEXTI0_IRQHandler(void){if(EXTI_GetITStatus(EXTI_Line0)!=RESET){for(;i<=repeat;i++){LED1(ON);Delay(100);LED1(OFF);Delay(100);}FlagA=1;EXTI_ClearITPendingBit(EXTI_Line0);}}程序分析;当按键按下后,产生下降沿,从而进入中断函数,LED闪烁,并将FlagA置1,实现数码管函数的跳出for循环。4.5本章小结本章是抢答器的软件设计,采用库函数编程的方法,实现抢答功能,将程序下载到硬件电路中,实现抢答功能。第5章总结与展望5.1总结本文研究与设计的八路多功能抢答器采用了通用的电子元器件,利用80C51单片机及外围接口实现抢答系统,利用单片机的定时器/计数器定时和计数的原理,将软、硬件有机地结合起来。通过查资料和搜集有关的文献,理论联系实践,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在设计过程中由于时间仓促和能力有限使很多地方难免存在不足之处,硬件设计和软件设计中有些功能还尚未开发出来。但在以后的工作中,我会严格要求自己,追求完美。整个设计通过了软件和硬件上的调试,我想这对于自己以后的学习和工作都会有很大的帮助的。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题。而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力。它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。但是,通过这次设计我也发现自己的很多不足之处。在设计过程中我发现自己考虑问题很不全面,自己的专业知识掌握的很不牢固,所掌握的计算机应用软件还不够多,我希望自己的这些不足之处能在今后的工作和学习中得到改善。而且,通过这次设计,我懂得了学习的重要性,学会了坚持和努力,这将为以后的学习做出了最好的榜样!5.2展望回头再看看该设计,还可以将设计的扩展功能增强:1、可以设计声控装置,在主持人说开始时,系统自动完成清零并开始计时的功能。2、增加记分模块,可以设定初始积分,并记录每次抢答完成后的积分。3、将抢答按键用无线实现,如红外线,使抢
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 先进的科学文化北师大版-课件
- 腰椎椎间盘膨出症疗效对比分析-洞察分析
- 危险化学品安全管理工作总结范文(8篇)
- 异构图索引技术-洞察分析
- 碳排放监测与减排技术-洞察分析
- 勤俭节约为主题的国旗下讲话稿范文(12篇)
- 《测绘工程GPS》课件
- 办公之技术宇宙提升工作效率的探索
- 办公环境中的学生团队建设与协作
- 公共建筑绿色照明设计与实践案例分享
- JJG 1121-2015旋进旋涡流量计
- GB/T 3683.1-2006橡胶软管及软管组合件钢丝编织增强液压型规范第1部分:油基流体适用
- 2023年军考数学真题《历年军考真题系列》
- 公寓de全人物攻略本为个人爱好而制成如需转载注明信息
- 减少巡回护士手术中外出次数品管圈汇报书模板课件
- 5分钟安全五人小品剧本
- 售后服务人员培训课件
- 大学生创新思维教学课件全套教学课件
- 教育研究导论首都师范
- 工会新闻的写作培训讲义(共36页).ppt
- [爆笑小品校园剧本7人]爆笑小品校园剧本
评论
0/150
提交评论