基于ARM7的竞答器设计(附完整源代码)详解.doc

基于ARM7的竞答器设计(附完整源代码)详解.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式 期末设计报告 题 目:四位竞答器 日 期:2016年1月4日 目录 一、设计功能描述 3 二、设计框图 4 1、总体框图 4 2、算法流程图 4 三、软件设计 5 1、循环显示流水灯 5 2、外部中断EINT0设置 5 3、数码管函数 5 4、定时器设置 6 5、抢答检测 6 四、硬件设计 6 1、蜂鸣管脚 6 2、按键电路 7 3、LED管脚 7 五、测试 8 六、总结 8 七、源代码 8 一、设计功能描述 本设计总体上是一个四位竞答器(支持四位选手),具备以下功能: 1、在竞答开始之前,显示流水灯图样; 2、利用外部中断EINT0实现竞答开始控制:关闭流水灯,开始进入竞答倒计时; 3、主持人按下开始竞答键后,数码管进行5S倒计时,当数码管显示为0时,选手开始竞答; 4、竞答完成后,数码管显示竞答选手的编号,仅对应的LED灯亮; 5、当有选手抢答时,蜂鸣器响,数码管显示竞答选手编号; 6、完成一轮竞答后,竞答系统自动返回流水灯图样,并等待下一轮竞答。 二、设计框图 1、总体框图 2、算法流程图 三、软件设计 1、循环显示流水灯 初始化时:x=18; while(1) { data==MSPI_SendData(DISP_TAB[0]);//数码管初始化显示为0; IO1CLR=1x;//LED灯亮 x=x+1; delay(300); IO1SET=0xffffffff;//LED灯灭 if(x==26) x=18; } 2、外部中断EINT0设置 EXTMODE=0x00;//设置为电平触发 EXTPOLAR=0x00;//低电平有效 IRQEnable();//使能IRQ中断 VICIntSelect=0 //设置所有中断分配为IRQ中断 VICDdefVectAddr=(int)IRQ_Eint0; //设置服务地址 EXTINT=0x01;//清除中断 VICIntEnable=10x0e;//使能EINT0中断 3、数码管函数 //MSPI_SendData(DISP_TAB[counter]); // 数码管显示 /*捕获功能*/ /* 此表为LED0~F以及L、P的字模 */ uint8 const DISP_TAB[19] = { // 0 1 2 3 4 5 6 7 8 9 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90, // A b C d E F 0x88, 0x83, 0xC6, 0xA1,0x86, 0x8E, // L P C 0xC7, 0x8C,0xC6 }; void MSPI_Init(void) { PINSEL0 = (PINSEL0 0xFFFF00FF) | 0 // 设置管脚连接SPI SPI_SPCCR = 0x52; // 设置SPI 时钟分频 SPI_SPCR = (0 3) | // CPHA = 0, 数据在SCK 的第一个时钟沿采样 (1 4) | // CPOL = 1, SCK 为低有效 (1 5) | // MSTR = 1, SPI 处于主模式 (0 6) | // LSBF = 0, SPI 数据传输MSB (位7)在先 (0 7); // SPIE = 0, SPI 中断被禁止 } uint8 MSPI_SendData(uint8 data) { IO0CLR =IO0CLR|HC595_CS; // 片选74HC595 SPI_SPDR = data; while( 0 == (SPI_SPSR 0x80)); // 等待SPIF 置位,即等待数据发送完毕 IO0SET = IO0SET|HC595_CS; return(SPI_SPDR); } 4、定时器设置 注:在进入外部中断时,才开启使能计数数/定时器,T0TCR=0x01; T0CTCR=0x00;//工作在定时器模式 T0TC=0; T0PR=99;//100分频 T0MCR=0x03;//复位TOTC,并产生中断 T0MR0=Fpclk/100; 5、抢答检测 为了竞答公平,需要进行抢答检测。 抢答检测主要是为了防止有选手在倒计时时,按住按键不动,为此,在倒计时跳变为0那一刻,读取

文档评论(0)

tt435678 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档