基于ARM7的竞答器设计(附完整源代码)
更新时间:2024-01-28 03:18:01 阅读量: 教育文库 文档下载
嵌入式 期末设计报告
题 目:四位竞答器 日 期:2016年1月4日
目录
一、设计功能描述 ........................................................................................................................... 3 二、设计框图 ................................................................................................................................... 3
1、总体框图 ............................................................................................................................. 3 2、算法流程图 ......................................................................................................................... 4 三、软件设计 ................................................................................................................................... 4
1、循环显示流水灯 ................................................................................................................. 4 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、总体框图
LED灯 LPC2131最小系统 数码管
蜂鸣器
按键
2、算法流程图
三、软件设计
1、循环显示流水灯
初始化时:x=18; while(1) {
data==MSPI_SendData(DISP_TAB[0]);//数码管初始化显示为0; IO1CLR=1< 2、外部中断EINT0设置 EXTMODE=0x00;//设置为电平触发 EXTPOLAR=0x00;//低电平有效 IRQEnable();//使能IRQ中断 VICIntSelect=0x00000000; //设置所有中断分配为IRQ中断 VICDdefVectAddr=(int)IRQ_Eint0; //设置服务地址 EXTINT=0x01;//清除中断 VICIntEnable=1<<0x0e;//使能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) | 0x00001500; // 设置管脚连接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那一刻,读取KEY2-KEY5的状态,判断是否有抢答情况。 四、硬件设计 1、蜂鸣管脚 2、按键电路 3、LED管脚 五、测试 将编译好的代码通过JLINK-FLASH烧录入LPC2131芯片。 经过测试,电路运行、实验效果与设计要求一致。 六、总结 1、为了竞答的公平性,引入了抢答检测这一步。因为有选手可以一直按住按键不动。在倒计时未到0前,用户按下按键是无效的。因而只需要检测跳变为0前那瞬间的管脚状态,如果选手是按住不动的话,就可以检测出来。 2、本设计运用了定时器、中断技术、数码管显示等技术,并把蜂鸣器、LED灯、按键也运用进入。从分利用了所学知识。 3、设计前,本人先画好系统框图以及流程图再编写代码,因而编写代码过程较为顺利,编译错误较少。 4、因为一轮竞答后自动进入下一轮,因为需要重新初始化。刚开始时没考虑到,因为下一轮竞答不正常,修正后程序可以正确运行。 七、源代码 //抢答器 #include\ #define HC595_CS (1<<29)// P0.29为74HC595的片选引脚 //按键 const uint32 beep=1<<7; const uint32 KEY1=1<<16; const uint32 KEY2=1<<17; const uint32 KEY3=1<<18; const uint32 KEY4=1<<19; const uint32 KEY5=1<<20; const uint32 KEY6=1<<21; //LED灯 分别对应五位抢答选手,最先按下按键者对应的灯亮 const uint32 LED1=1<<18; const uint32 LED2=1<<19; const uint32 LED3=1<<20; const uint32 LED4=1<<21; const uint32 LED5=1<<22; const uint32 LED6=1<<23; const uint32 LED7=1<<24; const uint32 LED8=1<<25; uint32 y=0; uint8 data; uint32 z=1; uint32 w=1; uint32 count=0; uint32 a=20; //延时函数 void delay(uint32 dly) { uint32 i; for(;dly>0;dly--) { for(i=0;i<5000;i++); } } //数码管显示电路 //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) | 0x00001500; // 设置管脚连接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); } //中断服务程序 void __irq IRQ_Eint0(void) { T0TCR=0x01;//开启计数器功能 IO1SET=0xffffffff; while(1) { if((T0IR&0x01)==1) { T0IR=0x01; data=MSPI_SendData(DISP_TAB[5-count]); count=count+1; if(count==6) {count=0;T0TCR=0x00; y=IO0PIN;w=1; if((y&KEY2)==0|(y&KEY3)==0|(y&KEY4)==0|(y&KEY5)==0) { w=0; while(a) { if(a%2==0) IO0CLR=beep; else IO0SET=beep; a=a-1; delay(100); } } a=20; break;} } } delay(100); while(w){ y=IO0PIN; if((y&KEY2)==0|(y&KEY3)==0|(y&KEY4)==0|(y&KEY5)==0) { w=0;} } if((y&KEY2)==0) { data=MSPI_SendData(DISP_TAB[1]); IO1CLR=LED1; } if((y&KEY3)==0) { data=MSPI_SendData(DISP_TAB[2]); IO1CLR=LED2; } if((y&KEY4)==0) { data=MSPI_SendData(DISP_TAB[3]); IO1CLR=LED3; } if((y&KEY5)==0) { data=MSPI_SendData(DISP_TAB[4]); IO1CLR=LED4; } delay(10000); while((EXTINT&0x01)!=0) { EXTINT=0x01; } VICVectAddr=0; } int main() { uint32 x=18; PINSEL0=0x00000000; PINSEL1=0x00000001;//设置P0.16 即key1为中断ENIT0; IO0DIR=HC595_CS|beep; MSPI_Init(); IO1DIR=LED1|LED2|LED3|LED4|LED5|LED6|LED7|LED8; IO1SET=IO1SET|LED1|LED2|LED3|LED4|LED5|LED6|LED7|LED8; IO0SET=IO0SET|beep; T0CTCR=0x00;//工作在定时器模式 T0TC=0; T0PR=99;//100分频 T0MCR=0x03;//复位TOTC,并产生中断 T0MR0=Fpclk/100; EXTMODE=0x00;//设置为电平触发 EXTPOLAR=0x00;//低电平有效 IRQEnable(); VICIntSelect=0x00000000;//设置所有中断分配为IRQ中断 VICDefVectAddr=(int)IRQ_Eint0;//设置服务地址 EXTINT=0x01;//清除中断 VICIntEnable=1<<0x0e;//使能EINT0中断 while(1) { data==MSPI_SendData(DISP_TAB[0]);//数码管初始化显示为0; IO1CLR=1< IO1SET=0xffffffff;//LED灯灭 if(x==26) x=18; } }
正在阅读:
基于ARM7的竞答器设计(附完整源代码)01-28
盐碱地绿化改造206-30
最新国家开放大学电大本科《水利水电工程造价管理》单项选择题题库及答案(试卷号:1176)05-06
进化中的城市读书笔记11-05
2014年高考英语试题及答案Word版精校版(新课标I卷)11-16
城市轨道交通行车组织考卷A(含答案)11-10
读轻声的音节03-08
写给数学老师的建议02-07
租房合同【最新8篇】03-25
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 竞答
- 源代码
- 基于
- 完整
- 设计
- ARM7
- 备用金管理办法(会签版)20121217100
- 二升三阅读理解(共计6周)
- 发展安化黑茶对外出口贸易的对策探讨 - 图文
- 成都市2004届高中毕业班第三次诊断性检测题-数学(理科)
- 关于加强专武干部选拔配备工作的建议和思考
- 西安交通大学17年3月课程考试《微机原理与接口技术》作业考核试题
- PCS-974-G - X - 说明书 - 国内中文 - 标准版 - X - R1.00 - ZL - YJBH5221.12 - 图文
- 萨蒂扬审计失败案例分析
- 房地产业已经没落,中国未来十年要靠三大支柱型产业!
- 环境工程微生物学
- 土建工程劳务分包合同
- 深圳市结核病流行病学调查计划
- 2011年公务员考试《行政能力测试》基本常识900题
- 2007年高考数学试题分类汇编:圆锥曲线
- 广州大学学籍管理规定
- 五年级上册 小数除法教学反思汇总
- 高校《思想道德修养》教案40
- 城乡规划五大宪章读后感
- 最好的总价包干的详解
- 汇编实验报告