您好,欢迎访问三七文档
《AVR单片机嵌入式系统原理与应用实践》课程设计题目:基于单片机的16路抢答器系部:信息科学与技术部班级:10通信3班、学生姓名:王雪学号:201015440316指导教师:刘佳宇老师同组:苏晓丹201015440317日期:二零一二年十二月目录第1节引言1.1抢答器的概述1.2设计任务与要求1.3系统主要功能第2节系统主要硬件电路设计2.1单片机控制系统原理图2.2单片机主机系统电路2.2.1复位电路的设计2.2.2显示电路的设计2.2.3键盘扫描电路的设计2.3系统复位第3节系统软件设计3.1程序流程图3.2系统程序第4节实验现象第5节总结参考文献基于单片机的16路抢答器第1节引言面临着信息时代,我们电子信息系的设计当然和当今社会发展需求有关。在电路调试中出现的问题及解决的方法,能够实现抢答器功能的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式。近年来随着科技的飞速发展.单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在电子科学技术高速发展的今天,高科技产品越来越多的应用在我们的日常生活中,每时每秒我们都能感受到产品的更新换代产品乃至技术革新的日新月异都让人对以相信。像日常我们工作所用到的电脑、手机等等,这些高科技产品给我们带来了极大的方便,但这要归功于科学技术的高速发展。1.1抢答器的概述在各种竞赛中,经常有抢答内容,因此需要用到抢答器。本文介绍的16路抢答器设计新颖具有电路结构简单、成本较低、操作方便灵敏可靠等优点,经使用效果良好,具有较高的推广价值,适用于工厂、学校和电视台等单位常举办各种智力竞赛,为竞赛的公平公正提供有利的保证。1.2设计任务与要求任务:设计一款基于AVR的16路抢答器1.基本要求(1)16名选手或16个代表队比赛,分别用16个按钮K1-K16表示。(2)一个系统清除和抢答控制开关,该开关由主持人控制。(3)器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。2.设计目的通过课程设计,对数字逻辑的基本内容有进一步的了解。能把学到的数字逻辑理论和AVR单片机知识进行实践,操作。在提高动手能力的同时对常用的ATmega16芯片有一定的了解,在电路设计方面有感性的认识。而且在进行电路设计的时候遇到问题,通过独立的思考有利于提高解决问题的能力。在经过课程设计后,更明白数字逻辑电路设计的一般方法,以及在遇到困难怎么排除问题。1.3系统主要功能抢答器原理:抢答器是为竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,竞赛者可以分为若干组,抢答时各组对主持人提出的问题要在最短的时间内做出判断,并按下抢答按键回答问题。当第一个人按下按键后,则在显示器上显示该组的号码,同时其它按键的输入被屏蔽,使其不起作用。回答完问题后,由主持人将所有按键恢复,重新开始下一轮抢答。显示器上显示选手的编号,并保持到主持人将系统清除为止。因此要完成抢答器的逻辑功能,需要用到:矩阵键盘、ATmege16最小系统(PORTA控制位选,PORTB控制矩阵键盘,PORTD控制段选)、2位数码管。第2节系统主要硬件电路2.1单片机总电路原理图2.2单片机模块根据系统功能要求以及单片机硬件电路设计思路,对单片机模块进行设计,要使单片机能够软硬件合理配合使用,从而实现抢答、清零功能。ATmega16包含32个8位通用工作寄存器、两个具有独立预分频器和比较器功能的8位定时器/计数器、一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器、并具有独立振荡器的实时计数器RTC、四通道PWM32个和可编程的I/O口。它的最大特点是低功耗和高速度,其掉电方式、闲置方式至工作方式下的耗电约为1μA~2.5μA。ATmega16成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案ATMage16单片机是在一块芯片中集成了CPU、定时器/计数器、多功能I/O口、A/D转换器、EEPROM、模拟比较器、PWM定时计数器等多种功能部件。其基本结构框图如图3.2,包括:·32个8位通用工作寄存器·4个8位并行I/O口·两个8位定时器/计数器·一个内部时钟电路·一条8位数据总线·2个时钟周期的硬件乘法器·1个状态控制器·1个看门狗定时器图3.2ATMage16单片机结构框图2.2.1单片机ATmega16芯片电路设计2.2.1复位电路的设计RESET:复位端,用于在电路出现问题时使电路恢复。在AVR单片机工作期间,按下复位按钮开关再松开时,将在复位脚产生一个低电平的复位脉冲信号,触发AVR单片机复位。2.2.2显示电路的设计2.2.3键盘扫描电路的设计第3节系统软件设计硬件电路完成以后,进行系统软件设计。首先要分析系统对软件的要求,然后进行软件的总体的设计,包括程序的总体设计和对程序的模块化设计。按整体功能分为多个不同的模块,单独设计、编程、调试,然后将各个模块装配联调,组成完整的软件。3.1程序流程图开始初始主持人按复位开始抢答3.2系统程序#includeavr/io.h#defineucharunsignedchar#defineuintunsignedintucharge,shi,key,tem,rem,k;uchartem1,tem2;ucharconsttable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//编码voiddelay(uintxms){是否按下按键显示组号NYinti,j;for(i=0;ixms;i++)for(j=0;j100;j++);}voiddisplay(){PORTD=0xff;PORTA=0xfe;PORTD=table[ge];delay(2);PORTD=0xff;PORTA=0xfd;PORTD=table[shi];delay(2);}voidkey_value(){rem=0;//不清零会返回一个不可预知的值DDRB=0xf0;//B口高四位输出低四位输入PORTB=0x0f;//输入有上拉电阻输出低电平delay(1);tem1=PINB;//读取端口Btem1=tem1&0x0f;if(tem1!=0x0f)//判断是否有键被按下{delay(10);//延时tem2=PINB;//读取端口Btem2=tem2&0x0f;if(tem1==tem2)//判断是否为干扰{DDRB=0x0f;//B口高四位输入低四位输出PORTB=0xf0;//反相输出delay(1);//换向后要延时rem=PINB;//读取端口Brem=rem&0xf0;//取高四位rem=rem+tem2;//合并rem=~rem;//反向输出}}switch(rem)//解码{case0x81:k=0x01;break;case0x41:k=0x02;break;case0x21:k=0x03;break;case0x11:k=0x04;break;case0x82:k=0x05;break;case0x42:k=0x06;break;case0x22:k=0x07;break;case0x12:k=0x08;break;case0x84:k=0x09;break;case0x44:k=0x0a;break;case0x24:k=0x0b;break;case0x14:k=0x0c;break;case0x88:k=0x0d;break;case0x48:k=0x0e;break;case0x28:k=0x0f;break;case0x18:k=0x10;break;}}intmain(){//端口初始化DDRA=0xff;PORTA=0xff;DDRD=0xff;PORTD=0xff;DDRB=0xff;PORTB=0xff;while(1){key_value();//扫描按键display();//无按键按下显示while(k)//有按键按下时进入循环{ge=k%10;shi=k/10;display();}}}第4节实验现象ATmega16最小系统:PORTA控制位选,PORTB控制矩阵键盘,PORTD控制段选。第5节总结本课程设计基本完成了要求,能够实现16路抢答,清零功能。我负责的主要是查找有关抢答器的设计的资料,了解它的原理,在设计过程中由于时间和个人能力的限制,设计中存在一些需要改进和优化的地方,软件设计也存在不合理之处。但通过此次设计对单片机有了进一的认识,对于单片机的一些软件的操作能力也明显提高。在进行做的时候,遇到不少的问题。一开始不知道该使用什么芯片去做实现,只能去图书馆借有关书籍熟悉芯片的功能,同时,看看哪些芯片能达到编码,译码,锁存等,以及重新温习AVR单片机书本。经过资料的搜集,基本确定了用哪类芯片达到哪类功能。设计好程序后,仔细检查,编译也不过,存在几个错误,慢慢检查后,在排除错误后,经过了编译,但是数码管完全没有反应,改过错误后,数码管能正确显示,选手也能抢答,上面是一些问题和解决方法,其实遇到的问题远不止这些,不过现在回想起来都是一些很低级的错误。经过了这次课程设计,我收获良多。所以经过课程设计,我提高了自己的动手能力,也增强了自己的信心。同时让我知道在工作的时候要保持细致严密的工作态度,这样会事半功倍。这个过程中团队合作让我们收获很多,教会了我为人处世之道。遇到困难的时候不能指望让一个同学独自解决,团队合作不崇尚单打独斗。最后,感谢之前的老师同学们在这学期的学习生涯中给予的无穷帮助和悉心教导,我将用以后对学习的热忱和积极来回报所有老师同学们对我的帮助!参考文献[1]吴健.AVR单片机实用C语言程序设计与典型实例.中国电力出版社.2008[2]钱恭斌.嵌入式系统开发基础与实践教程.电子工业出版社.2011[3]冯育长.单片机系统设计与实例指导.西安电子科技大学出版社.2007[4]李朝青.单片机原理及接口技术(第3版).北京航空航天大学出版社.2002[5]马潮.AVR单片机嵌入式系统原理与应用实践.北京航空航天大学出版社.2007
本文标题:16路抢答器
链接地址:https://www.777doc.com/doc-3786260 .html