基于单片机实现智能路抢答器的设计方案报告.doc
《基于单片机实现智能路抢答器的设计方案报告.doc》由会员分享,可在线阅读,更多相关《基于单片机实现智能路抢答器的设计方案报告.doc(20页珍藏版)》请在咨信网上搜索。
惠 州 学 院 数字电子技术课程 设计说明书 题 目:基于单片机(89C52)四人抢答器 系 部: 电子科学系 班 级: 09级电信二班 学生姓名: 学 号: 指导老师: 12月29日 智能四路抢答器 目录 一、 序言……………………………………………………2 二、 方案设计………………………………………………2 1、 方案比较……………………………………………2 2、 系统总体设计方案和实现框图……………………3 三、 理论分析…………………………………………………3 四、 电路设计…………………………………………………4 1、 按键部分………………………………………………4 2、 显示部分………………………………………………5 3、 总原理图………………………………………………6 五、 软件步骤图模块……………………………………………7 六、 结论…………………………………………………………8 七、 程序………………………………………………………9 一、序言 本设计要求能够在主持人按下开始键后,四个参赛者开始抢按自己按键,谁按键先按下,谁面前灯就会亮而且有对应提醒,当参赛者耗时太多时又会有对应提醒。依据设计要求,本系统采取独立式按键,经过单片机不停扫描按键来控制LED灯和蜂鸣器,并用定时器T0、T1来定超时时间,其中抢答定时时间能够由主持人随意修改。当超时时候让蜂鸣器响和点亮对应LED灯(T0用于参赛者回复问题定时,T1用于参赛者抢答时间选定)。 二、方案设计 1、方案比较 (1)、总体设计 方案一:采取可编程I/O口扩展芯片8155 8155作为单片机扩展接口能实现很多功效,不过这个系统并不复杂,用8155会浪费很多资源,而且8155要用P0和P2端口作为地址线对它进行读写,这么不仅浪费端口还使得编程变复杂。从节省资源和简化编程角度考虑,放弃了此方案。 方案二:直接采取AT89C51单片机 直接用单片机不仅编程被简化,还有效利用了各个端口。8051单片机资源完全够这个系统要求。所以最终选择了此方案。 (2)、模块 方案一:采取4*4矩阵键盘 此种键盘是常见按键扫描方法,不过本系统只需要六个按键,这么就会浪费十个,而且矩阵按键扫描要送数读数,对于编程很复杂,最终放弃了此方案。 方案二:采取独立式键盘 本系统只要8个按键就能够,用独立式键盘不仅节省端口还使编程变得简单。程序只要不停读数检验就行。所以,最终选择此方案。 2、系统总体设计方案和实现框图 抢答模块、修改抢答时间模块、主持人控制模块一共采取8个独立式键盘作为按键输入,当在主持人按下开始键后有参赛者按键按下时,就会有对应于这个按键灯亮而且蜂鸣器响一声,其它按键再按也无效。在要求时间以后如不清除,蜂鸣器就会一直响,超时LED会点亮,提醒已经到时间。框图图1。修改抢答时间是在按下了修改按键以后就会等候增量、减量输入以修改时间,直到再一次按下修改键以确定修改完成。 独立式按键部分 单片机处理 显示部分 按键扫描 图1 三、理论分析 51单片机端口上电是高电平,而且当外部没有输入时能自动弹跳到高电平,所以经过按键所接端口高低电平改变能够判定出哪个按键按下了。 独立按键 P1口电平改变 单片机识别 图2 四、电路设计 图3 1、按键扫描部分 单片机不停扫描P1口电平改变,当有按键按下时,对应I/O口会跳变为低电平,单片机检测到后,经过处理将作出对应显示。电路图1. 图4 2、显示部分 依据按键按下情况LED作出对应亮灭,蜂鸣器作出对应反应。 当开始键按下开启后,当S1按下时,则灯D1亮,并蜂鸣器响一声,假如超出要求时间,蜂鸣器一直响,并提醒超时LED灯被点亮。假如S1在限定时间内再次被按下,说明参赛者1已完成回复;当S2按下时,则灯D2亮,并蜂鸣器响一声,假如超出要求时间,蜂鸣器一直响,并提醒超时LED灯被点亮。假如S2在限定时间内再次被按下,说明参赛者2已完成回复;当S3按下时,则灯D3亮,并蜂鸣器响一声,假如超出要求时间,蜂鸣器一直响,并提醒超时LED灯被点亮。假如S3在限定时间内再次被按下,说明参赛者3已完成回复;当S4按下时,则灯D4亮,并蜂鸣器响一声,假如超出要求时间,蜂鸣器一直响,并提醒超时LED灯被点亮。假如S4在限定时间内再次被按下,说明参赛者4已完成回复;抢答完后能够按下主持人确实定键将其初始化。 总原理图图所表示: 五、软件模块 本系统用了定时器0和定时器1。 图5 六、结论 此次设计根据题目要求,基于单片机,利用较适宜控制算法,成功实现了抢答器基础功效。硬件原理结构简单,降低硬件成本和繁琐电路连接;软件设计方面,设计简单,可塑造性强,便于维护。所以选择使用单片机实现四人抢答器设计含有很强效益,能任意地修改抢答时间,使此抢答器适合在很多场所使用且成本低。经过此课程设计让我真正了解到了程序设计难点所在,难并不是程序框架搭建、理论上思索此方法是否可行、代码写入、调试其结果,真正难是在调试过程中,明明知道是有些问题,不过又无法锁定问题所在,造成结果是心理成就感受到抨击,反复对可能存在问题反复修改,一次又一次修改,可怕是代码越修越错,结果该不会来。折腾一段时间后,一不小心才发觉开始时候问题仅仅时很简单、愚蠢错误。从这程序设计过程中不停提醒我,必需步步为营,步步小心,耐心加细心即等于完美程序设计实现。 七、程序代码: //实现功效:四人抢答器 /*1、只有主持人宣告开始抢答时,选手才能进行抢答,抢答有一定时间限制,超出一定时间就会出现报警声。 2、选手回复时必需在要求时间里面回复,不然就会出现报警声 3、数码管会显示时间 4、各通道要求: 5、抢答时间是能够设置*/ #include<reg52.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char sbit beep=P3^6;//making voice(低电平有效) sbit LED1=P2^7;//competitor 1(低电平有效) sbit ONE=P1^0;//(高电平有效) sbit LED2=P2^6;//competitor 2(低电平有效) sbit TWO=P1^1;//(高电平有效) sbit LED3=P2^5;//competitor 3(低电平有效) sbit THREE=P1^2; sbit LED4=P2^1;//competitor 4 sbit FOUR=P1^3; sbit LED5=P2^0;//host announced beging sbit HOST=P1^5;//低电平有效 sbit OVER=P3^7;//overtime sbit CHANG=P1^4;//change the overtime(低电平有效) sbit UP=P1^6;//(低电平有效) sbit DOWN=P1^7;//低电平有效 sbit LS138A = P2^2; //定义译码器输入端A 在 P2.2 管脚上 sbit LS138B = P2^3; //定义译码器输入端B 在 P2.3 管脚上 sbit LS138C = P2^4; //定义译码器输入端C 在 P2.4 管脚上 static uint max1=10,num1=20; uint max,num,temp,tt=0,dd=0x00;//max用于表示选手抢答时间 //uint i,LedNumVal=1 ; //uint LedOut[10]; unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; void delay(uint x); void display(uint Key_Val); void change(); void press(void); void time1_max(); void time0_num(); //unsigned long uint LedOut[5],LedhdsjVal; void display(uint Key_Val) { uchar i; /********以下将键值送到LED数码管显示*************/ LedhdsjVal=Key_Val; //把键值送到LedhdsjVal变量中 LedOut[0]=Disp_Tab[LedhdsjVal%10000/1000]; LedOut[1]=Disp_Tab[LedhdsjVal%1000/100];//|0x80; LedOut[2]=Disp_Tab[LedhdsjVal%100/10]; //十位 LedOut[3]=Disp_Tab[LedhdsjVal%10]; //个位 for(i=1; i<4; i++) { P0 = LedOut[i]; /* switch(i) { //138译码 case 0:LS138A=0; LS138B=0; LS138C=0; break; case 1:LS138A=1; LS138B=0; LS138C=0; break; case 2:LS138A=0; LS138B=1; LS138C=0; break; case 3:LS138A=1; LS138B=1; LS138C=0; break; } delay(100); */ switch(i) { //138译码 case 0:LS138A=0; LS138B=0; LS138C=0; break; case 1:LS138A=1; LS138B=0; LS138C=0; break; case 2:LS138A=0; LS138B=1; LS138C=0; break; case 3:LS138A=1; LS138B=1; LS138C=0; break; } delay(10); // P0=0x00; // LS138A=1; LS138B=0; LS138C=0; } } //void time()//选手回复时间,时间不可更改 //{ /*********************************************************** purpose: 系统初始化 /**********************************************************/ void time1_max() { TMOD|= 0x11; TH1 =(65536-50000)/256; //12.000 TL1 =(65536-50000)%256; IE = 0x8A; TR1 = 1; } void time0_num() { TMOD|= 0x11; TH0 =(65536-50000)/256; //12.000 TL0 =(65536-50000)%256; IE = 0x83; TR0 = 1; } void delay(uint x) { uint y; for(x;x>0;x--) for(y=110;y>0;y--); } void change(void) { if(CHANG==0) { delay(5); if(CHANG==0) { while(!CHANG); delay(5); while(!CHANG); delay(100); while(CHANG) { display(max1); if(UP==0) { delay(5); if(UP==0) { max1++; delay(20); while(!UP); delay(5); while(!UP); } } if(DOWN==0) { delay(10); if(DOWN==0) { max1--; delay(20); while(!DOWN); delay(5); while(!DOWN); } } } while(!CHANG); delay(5); while(!CHANG); } } } void press(void) { if(ONE==0) { delay(5); if(ONE==0) { while(!ONE); delay(50); while(!ONE); delay(50); while(!ONE); TR1=0; LED1=0; beep=0; delay(250); beep=1; num =num1; time0_num(); while(num&&ONE) { temp=num; display(temp); } while(!ONE); delay(5); while(!ONE); TR0=0; if(num==0) { beep=0; OVER=0; delay(10); } while(HOST) { display(num); } } while(!HOST); delay(10); while(!HOST); beep=1; LED1=1; LED5=1; OVER=1; } } void main() { while(1) { display(dd); change(); if(HOST==0) { delay(5); if(HOST==0) { max=max1; time1_max(); LED5=0; beep=0; delay(250); beep=1; while(!HOST); delay(5); while(!HOST); while(max&&ONE&&TWO&&THREE&&FOUR) { display(max); } press(); TR0=0; if(max==0) { OVER=0; beep=0; while(HOST) { display(0); } LED5=1; OVER=1; beep=1; while(!HOST); delay(5); while(!HOST); // delay(10); // while(!HOST); } } } } } /************************************* [ t1 (1ms)中止] 中止 *************************************/ void T1zd(void) interrupt 3 //3定时器1中止号 1定时器0中止号 0外部中止1 2外部中止2 4串口中止 { TH1 =(65536-50000)/256; //12.000 TL1 =(65536-50000)%256; tt++; if(tt==20) { max--; tt=0; } } void T1zdd(void) interrupt 1 //3定时器1中止号 1定时器0中止号 0外部中止1 2外部中止2 4串口中止 { TH0 =(65536-50000)/256; //12.000 TL0 =(65536-50000)%256; tt++; if(tt==20) { num--; tt=0; } }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 实现 智能 抢答 设计方案 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文