16路抢答器
- 格式:docx
- 大小:743.23 KB
- 文档页数:21
目录第一章绪论 (1)1.1单片机的应用技术 (1)1.2 抢答器的意义 (1)第二章单片机的选择及其任务要求 (2)2.1 单片机的选择 (2)2.1.1 89C52的主要性能: (2)2.1.2 STC89C52型号功能介绍: (3)2.2 设计任务及目的 (5)2.2.1 设计任务 (5)2.2.2 设计目的 (5)第三章硬件电路的设计 (6)3.1 总体设计 (6)3.2各功能模块 (6)3.2.1 选手按键输入信号及主持人开始和复位模块 (6)3.2.2点阵显示模块 (8)3.2.3液晶屏显示模块 (8)3.2.4 蜂鸣器模块 (9)第四章软件的设计 (9)4.1 抢答流程图 (9)4.2 主程序的设计 (11)展望 (28)参考文献: (28)第一章绪论1.1单片机的应用技术单片机由硬件系统与软件系统组成。
硬件系统是指构成微机系统的实体与装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。
其中运算器和控制器一般做在一个集成芯片上,统称中央处理单元(Central Processing Unit),简称CPU,是微机的核心部件。
CPU配上存放程序和数据的存储器、输入/输出(Input/Output,简称I/O)接口电路以及外部设备即构成单片机的硬件系统。
软件系统是微机系统所使用的各种程序的总称,人们通过它对微机进行控制并与微机系统进行信息交换,使微机按照人的意图完成预定的任务。
软件系统与硬件系统共同构成完整的单片微型计算机系统,两者相辅相成,缺一不可。
1.2 抢答器的意义本系统采用单片机作为整个控制核心。
该系统通过开关电路16个按键输入抢答信号;利用一个液晶屏来完成显示功能;用按键来让选手进行抢答,在液晶屏上显示哪一组先答题的,从而实现整个抢答过程。
在知识比赛中,特别是做抢答题目的时候,在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。
设计一个16路智力抢答器要求:具有定时功能,有倒计时10秒报警,有防作弊处理。
其电路图如下图所示:附带程序如下:程序如下:Qdqi.c#include<reg52.h>#include"keyboard.h"#include"1602xs.h"#include"fmq.h" //蜂鸣器#include"delay.h"#define unint unsigned int#define unchar unsigned charsbitks=P1^0;sbitkz=P1^1;unint Flag=1,k;unint a=10,b=0,c=60,d=0;unchar key board;/************************************************定时器初始化子程序*************************************************/void Init_Timer(){TMOD |= 0x11; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响TH0=(65535-50000)/256; //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出TL0=(65535-50000)%256;TH1=(65535-50000)/256; //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出TL1=(65535-50000)%256;EA=1; //总中断打开ET0=1;ET1=1; //定时器中断打开// TR0=1; //定时器开关打开}/******************************************************************//* 主函数*//******************************************************************/void main(){init();Init_Timer();while(1){keyboard=getkey();if(ks) //开始抢题之前防抢答{if(key scan()==0xff){writechar(0x80+2,"waiting!!!");}//防作弊if(key scan()!=0xff){k=getkey();display2(0x80+0x40+4,k);fmq1();while(1);}}if(!ks) //开始抢题{TR0=1; //定时器中断打开// Flag=0;write_com(0x01);writechar(0x80+2,"Countdown:");while(key scan()==0xff) //没有人抢答{display2(0x80+0x40+5,a);if(a==0){TR0=0;display2(0x80+0x40+5,a);fmq();while(1);}}while(key scan()!=0xff){TR1=1;k=getkey();Flag=0;write_com(0x01);writechar(0x80+2,"Num: time:");while(!Flag){display2(0x80+0x40+4,k);display2(0x80+0x40+12,c);if(c==0){fmq1();while(1);}if(!kz){TR1=0;}}}// jianpan();}}}void Timer0_isr(void) interrupt 1 using 1{TH0=(65535-50000)/256; //重新赋值TL0=(65535-50000)%256;b++;if(b==20){b=0;a--;}}void Timer1_isr(void) interrupt 3 using 1{TH1=(65535-50000)/256; //重新赋值TL1=(65535-50000)%256;d++;if(d==20){d=0;c--;}}Keyboard.c/*-----------------------------------------------矩阵键盘实验程序通过反转法循环扫描矩阵键盘------------------------------------------------*/#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include"keyboard.h"#include"delay.h"unsigned char const EL[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-Fuchargetkey(){ucharkey,k;key=key scan(); //调用键盘扫描,switch(key){case 0xee:k=0;break;//0按下相应的键显示相对应的码值case 0xde:k=1;break;//1 按下相应的键显示相对应的码值case 0xbe:k=2;break;//2case 0x7e:k=3;break;//3case 0xed:k=4;break;//4case 0xdd:k=5;break;//5case 0xbd:k=6;break;//6case 0x7d:k=7;break;//7case 0xeb:k=8;break;//8case 0xdb:k=9;break;//9case 0xbb:k=10;break;//acase 0x7b:k=11;break;//bcase 0xe7:k=12;break;//ccase 0xd7:k=13;break;//dcase 0xb7:k=14;break;//ecase 0x77:k=15;break;//fcase 0xff:k=16;break;//g}return k;}/*------------------------------------------------键盘扫描程序------------------------------------------------*/ucharkeyscan(void) //键盘扫描函数,使用行列反转扫描法{ucharcord_h,cord_l;//行列值中间变量P3=0x0f; //行线输出全为0cord_h=P3&0x0f; //读入列线值if(cord_h!=0x0f) //先检测有无按键按下{delay(100); //去抖if(cord_h!=0x0f){cord_h=P3&0x0f; //读入列线值P3=cord_h|0xf0; //输出当前列线值cord_l=P3&0xf0; //读入行线值return(cord_h+cord_l);//键盘最后组合码值}}return(0xff); //返回该值}1602xs.c#include"reg52.h"#include"delay.h"#include"1602xs.h"sbitlcden=P2^6;sbitlcdrs=P2^4;sbitlcdwr=P2^5;void write_com(uchar com) //写指令{lcdwr=0;lcdrs=0;P0=com;delay_mS(1);lcden=1;delay_mS(1);lcden=0;}void write_data(uchar date) //写数据{lcdrs=1;P0=date;delay_mS(1);lcden=1;delay_mS(1);lcden=0;}/********************************0x80+add 第二行地址0~150x80+0x40+add 第一行地址0~15数字:0x30+字母:需查表*********************************/void init() //初始化{lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01); //清屏指令}/*writechar("Please input ps");*/void writechar(ucharadd,uchar *s) //写入一个字符串{write_com(add);while(*s){write_data(*s);delay_mS(1);*s++;}}void writechar1(ucharadd,uchar a1,uchar a2,uchar a3,uchar a4) //写入一个字符串{write_com(add);write_data(a1);write_data(a2);write_data(a3);write_data(a4);}void display1(ucharadd,uint date) //显示字符及位置{//ucharbai,shi,ge;//bai=date/100;//shi=date%100/10;//ge=date%10;write_com(add);write_data(0x30+date);//write_data(0x30+shi);//write_data(0x30+ge);write_data(0x6d);write_data(0x41);}void display2(ucharadd,uchar date) //显示字符及位置{ucharshi,ge;shi=date/10;ge=date%10;write_com(add);// write_data(date);write_data(0x30+shi);write_data(0x30+ge);//write_data(0x25);}Delay.c#include"delay.h"void delay(unsigned intcnt){while(--cnt);}/******1mS y anshi*******/void delay_mS(unsigned int z){uintx,y;for(x=z;x>0;x--)for(y=125;y>0;y--);}Fmq.c//在实际电路中我没有按蜂鸣器#include<reg52.h>#include"fmq.h"#include"delay.h"/*************端口定义*********/sbit SPK=P1^2; //定义喇叭端口//unsigned int k1=1,k2=1;void fmq(){unsigned inti;for(i=0;i<150;i++)//喇叭发声的时间循环,改变大小可以改变发声时间长短{delay(600); //参数决定发声的频率,估算值,可以自行更改参数并SPK=!SPK;}// SPK=1; //喇叭停止工作,间歇的时间,可更改// delay(50000);}void fmq1(){unsigned inti,j;for(j=0;j<5;j++){for(i=0;i<200;i++)//喇叭发声的时间循环,改变大小可以改变发声时间长短{delay(300); //参数决定发声的频率,估算值,可以自行更改参数并SPK=!SPK;}SPK=1; //喇叭停止工作,间歇的时间,可更改delay(90000);}}。
16抢答器原理16抢答器,也被称为16路抢答器,是一种电子设备,用于在多人参与的抢答环节中准确快速地判断参与者按下按钮的先后顺序。
它常被广泛应用于各类竞赛、比赛、游戏等需要抢答的场景。
16抢答器的原理是基于数字电路和微处理器技术。
整个系统由按键模块、显示模块、控制模块和电源模块四部分构成。
首先,按键模块是16抢答器的输入设备,通常由16个按键组成,分别对应于16位参与者。
每个按键都连接到一个独立的信号线,当参与者按下按键时,相应的信号线会产生一个高电平信号。
接下来,这些高电平信号进入控制模块,通过一系列的解码器进行解码。
解码器根据输入信号的不同激活相应的输出信号。
这样,控制模块就能准确地判断到每个参与者按下按钮的先后顺序。
然后,控制模块将判断结果传送给显示模块进行显示。
显示模块通常由LED数码管组成,每个数码管对应一个参与者的编号。
根据控制模块的判断结果,相应的数码管会显示一个亮灯提示,表示该参与者的抢答顺序。
最后,电源模块为整个16抢答器提供电源供应。
这样,整个抢答器就能稳定运行,准确地判断每个参与者的抢答顺序,并通过显示模块清晰地展示出来。
16抢答器的原理可以更详细地解释如下:当参与者按下按钮,相应的按键会闭合,使得对应的信号线产生一个高电平信号。
这个高电平信号通过连接到解码器的输入端,经过解码器进行解码处理。
解码器通常采用优先级编码的方式,即按照按键的先后顺序进行优先级排序。
解码器将优先级最高的输入信号转换为对应的输出信号。
解码器的输出信号会被传送到显示模块进行显示。
显示模块通常由诸多灯泡或LED数码管组成,每个灯泡或数码管对应一个参与者的编号。
控制模块将判断结果传送给显示模块后,相应的灯泡或数码管会显示一个亮灯提示。
这样,参与者可以清楚地看到自己的抢答顺序。
总结起来,16抢答器通过按键模块接收参与者的输入,控制模块解码和判断按键的先后顺序,显示模块将判断结果进行展示,完成了对抢答顺序的准确判断和显示。
河南科技学院机电学院EDA课程设计报告题目:十六位数字抢答器院系:专业班级:电气工程及其自动化101班姓名:学号:完成日期:2013年1月 4 日十六位数字抢答器课程设计摘要:抢答器对于我们大家来说都不陌生,它是用于很多竞赛场合,真正实现先抢先答,让最先抢到题的选手来回答问题。
抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。
选手们都站在同一个起跑线上,体现了公平公正的原则。
设计一个多路智力竞赛抢答器,抢答器同时供16位选手或者16个队伍在比赛时抢答之用,设置一个清除按键跟一个开关,主持人控制,抢答器要具备显示跟锁存功能,选手抢答后,要显示并锁存选手的编号直至主持人清楚为止。
选手必须在限定的时间内抢答,若在规定时间内无人抢答,系统会发出警报并且不可再抢答。
开始抢答时系统发出响声通知,并开始倒计时,同时显示所剩时间,选手抢答后,倒计时停止,显示选手编号跟所剩时间。
本次设计运用VHDL语言编写,按照要求设计可行方案,并利用Quartus II软件跟DE2开发板进行仿真、验证。
与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。
强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
VHDL 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
关键词:抢答器,VHDL,硬件描述,仿真优先,锁存,显示,分频,控制,清零,计数引言人类社会已进入到高度发达的信息化社会,信息社会的发展离不开电子产品的进步。
EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包。
没有EDA技术的支持,想要完成上述超大规模集成电路的设计制造是不可想象的,但是面对当今飞速发展的电子产品市场,设计师需要更加实用、快捷的EDA工具,使用统一的集体化设计黄精,改变传统的设计思路,将精力集中到设计构想、方案比较和寻找优化设计等方面,需要以最快的速度,开发出性能优良、质量一流的电子产品,对EDA技术提出了更高的要求。
16路抢答器单片机实训报告四川信息职业技术学院课程设计报告设计题目: 16路抢答器物联网应用技术专业:12-1 物联网级: 班 : 1290035 号学刘洋名姓 :指导教师: 胡德清二〇一三年十二月五日.学生班物联网 1290035专业学号物联网应用技术刘洋12-1 级姓基1设计(或论文)题路抢答器地设工作单位及所从事专指导教师姓联系方备1319823619胡德四川信息职业技术学院电子系教工程讲设计(论文)内容AT89C5单片机LE管、蜂鸣器、设计一款适用于选手抢答1位抢答器电器实现抢答显示选手号、倒计时间提示、蜂鸣器报警增加或减少抢答时间、手动复位地功进度安排1收集有关资料并消化吸------12制定设计方----------------13硬件设--------------------14软件设--------------------1~15系统仿真测试或硬件制------1~1日5撰写设计报----------------1~1日主要参考文献、资写清楚参考文献名称、作者、出版单[1]王迎单片机原理及应北机械工业出版,200[2]何小微型计算机原理及应北机械工业出版社200[3]刘乐微型计算机接口技术及应武华中科技大学出版,199[4]房小单片机实用系统设计技北国防工业出版社200./shop/LNK304-Price.ht技术资[5]LNK304.审 N中断返回 LED-RED17发光二极管NPN81二极管RES29电阻RESPACK-8上拉电阻BUTTON1121弹性开头BUZZER121蜂鸣器旧底图总号改更更改数量签名日期单号标记20xx.7.12制拟底图总号校审多路抢答签日器元件表等级标记第2张共2张名期标准化批准工程代号初始化名称、型号、规格Y运行中断,系统数量备注更改批 1按下开始键?开始倒计时N 1微处理器7SEG-MPX4-CA-意 2Y BLUE按下复位键?1段数码管7见 3Y CAP教研室负责人: N 1电解电容年月日按下时间+1?1时间加NY-1?按下时间1时间减CAP-ELEC42瓷片电容CRYSTAL51晶体振荡器AT89C51 LED-BIGY16发光二极管目录4.................................................... ......................................................... .................................... 摘要5方案论证....................................................... ......................................................... .. (1)5方案选择 ...................................................... ......................................................... ......... 1.15显示模块方案和论证 ...................................................... .................................. 1.1.15按键模块选择方案 ...................................................... ...................................... 1.1.25 ................................................... ................................. 1.1.3 控制器地选择方案论证6 ....................................................... ......................................................... ........ 1.2 方案论证6........................................................ ......................................................... ......... . 第二章硬件设计6........................................................ ............................................. 单片机最小系统设计2.16 ....................................................... ..................................................... 时钟电路2.1.1 7复位电路 ...................................................... ...................................................... 2.1.28单片机内部结构地描述 ...................................................... .............................. 2.1.301 2.2显示电路设计 ...................................................... ........................................................01 器件简介 ...................................................... ....................................................2.2.11 ....................................................... ................................................... 电路设计12.2.22 ................................................... ......................................................... .. 12.3 键盘电路设计 31发声电路 ...................................................... ......................................................... ....... 2.4 31 软件设计....................................................... ......................................................... ......... 章第331 ...................................................... ......................................................... .......... 程序流程3.13 ................................................... ............................................... 13.1.1 定时中断模块4 ....................................................... ...................................................13.1.2 报警模块5 ....................................................... ...................................................13.1.3 控制模块 61 主流程图 ...................................................... ....................................................3.1.471 ...................................................... ......................................................... .. 第4章制作与调试71....................................................... ......................................................... ......... 4.1 仿真设计7 ................................................... ............................... 1Keil4.1.1 抢答器软件地仿真7......................................................................... 1软件地仿真 .抢答器4.1.2 protenus 81 调试与运行 ...................................................... ................................................ 4.1.3 02....................................................... ......................................................... ............................... 总结1.................................................... ......................................................... ............................ 2参考文献22 ...................................................... ......................................................... ....... 附录1整机原理图 32.2 元器件明细表 ...................................................... ......................................................... .... 附录42.................................................... ......................................................... .............. . 程序清单3 附录.摘要在各种知识、智力竞赛中,电子抢答器是必不可少地设备之一.目前使用地小型抢答器基本上采用小规模数字集成电路设计,其功能比较单一,使用起来也不够理想.本设计是基于单片机设计地一款更先进、更实用地智能电子抢答器.经过布线、焊接、调试等工作后数字抢答器成形.单片机体积小价格低,应用方便,稳定可靠.单片机将很多任务交给了软件编程去实现,大大简化了外围硬件电路,使外围电路地实现简单方便.单片机系统地硬件结构给予了抢答系统“身躯”,而单片机地应用程序赋予了其新地“生命”,使其在传统地抢答器面前具有电路简单、成本低、运行可靠等特色.对于抢答器我们大家都知道那是用于选手做抢答题时用地,选手进行抢答,抢到题地选手来回答问题.抢答器不仅考验选手地反应速度同时也要求选手具备足够地知识面和一定地勇气.选手们都站在同一个起跑线上,体现了公平公正地原则.关键词抢答电路;定时电路;抢答系统;报警电路第1章方案论证1.1 方案选择1.1.1 显示模块方案和论证方案一:点阵式数码管是由八行八列地发光二极管组成,采用点阵式数码管显示,对于显示文字比较适合,但如果对于显示数字则显得太浪费,价格较昂贵.方案二抢答器要求显示抢答时间,选手号数,答题时间等多样化地显示.所以我们采用两个LED数码管显示,价格便宜,方便实用1.1.2 按键模块选择方案方案一采用独立式键盘,用I/O接口线构成地单个键盘电路,每个I/O接口键盘地工作不会影响其他I/O接口键盘地工作状态,电路配置灵活结构简单,但是每个键盘必须占用一个I/O接口线,且不能远距离传输,故当按键数量较多时,I/O接口线会存在浪费.方案二采用矩阵式接口键盘,用I/O接口线组成行、列地结构,按键设置在接口行列地交点上.在按键较多时可以节省I/O接口线.通过两种方案地比较我们选择了第二种方案1.1.3 控制器地选择方案论证方案一采用模拟电路,它具有成本高,程序简单地特点,但是各器件之间干扰较大,稳定性不好.方案二采用数字电路,气成本低,但是设计数据逻辑单一化,故障高,显示简单,但是实用性也不高.方案三采用AT89C51单片机进行,运算速度快,抗干扰性强.而且成本低,精度程序就可以实现各种各C高,抗干扰性强,实现地功能也比较多,书写简单地.样地算术算法和逻辑控制,综合以上几种方案比较,我们选择了第三种方案1.2 方案论证根据以上所述,我们选择了用单片机,矩阵式键盘接口.和LED数码管显 .示进行本次地设计第二章硬件设计总设计图2.1 单片机最小系统设计2.1.1 时钟电路单片机必须在时钟地驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定地时钟信号送到单片机内部地各个单元,决定单片机地工作速度.时钟电路如图2-1-1所示.图2-1-1 时钟电路一般选用石英晶体振荡器.此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右地正弦波时钟信号,其振荡频率主要由石英晶振地频率确定.电路中两个电容 C1,C2地作用有两个:一是帮助振荡器起振;二是对振荡器地频率进行微调.C1,C2地典型值为30PF.单片机在工作时,由内部振荡器产生或由外直接输入地送至内部控制逻辑单元地时钟信号地周期称为时钟周期.其大小是时钟信号频率地倒数,常用fosc表示.图中时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12μs.2.1.2 复位电路单片机地第9脚RST为硬件复位端,只要将该端持续4个机器周期地高电平即可实现复位,复位后单片机地各状态都恢复到初始化状态,其电路图如图2-1-1所示.图2-1-1 复位电路图图中由按键RESET1以及电解电容C3、电阻R2构成按键及上电复位电路.由于单片机是高电平复位,所以当按键RESET1按下时候,单片机地9脚RESET管脚处于高电平,此时脚电压逐步由高向低转9当上电后,由于电容地缓慢充电,单片机地.单片机处于复位状态.化,经过一段时间后,单片机地9脚处于稳定地低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行.值得注意地是,在设计当中使用到了硬件复位和软件复位两种功能,由上面地硬件复位后地各状态可知寄存器及存储器地值都恢复到了初始值,而前面地功能介绍中提到了倒计时时间地记忆功能,该功能地实现地前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能.软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行地起始地址.2.1.3 单片机内部结构地描述主要特性:·与MCS-51 兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗地闲置和掉电模式·片内振荡器和时钟电路管脚说明:VCC:供电电压.GND:接地.P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流.当P1口地管脚第一次写1时,被定义为高阻输入.P0能够用于外部程序数据存储器,它可以被定义为数据/地址地第八位.在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高.P1口:P1口是一个内部提供上拉电阻地8位双向I/O口,P1口缓冲器能接收输出4TTL门电流.P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉地缘故.在FLASH编程和校验时,P1口作为第八位地址接收.P2口:P2口为一个内部上拉电阻地8位双向I/O 口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入.并因此作为输入时,P2口地管脚被外部拉低,将输出电流.这是由于内部上拉地缘故.P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址地高八位.在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器地内容.P2口在FLASH编程和校验时接收高八位地址信号和控制信号.P3口:P3口管脚是8个带内部上拉电阻地双向I/O后,它们被内部上拉为高电“1”口写入P3当.门电流TTL个4口,可接收输出平,并用作输入.作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉地缘故.P3口也可作为AT89C51地一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2/INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号.RST:复位输入.当振荡器复位器件时,要保持RST脚两个机器周期地高电平时间.ALE/PROG:当访问外部存储器时,地址锁存允许地输出电平用于锁存地址地地位字节.在FLASH编程期间,此引脚用于输入编程脉冲.在平时,ALE端以不变地频率周期输出正脉冲信号,此频率为振荡器频率地1/6.因此它可用作对外部输出地脉冲或用于定时目地.然而要注意地是:每当用作外部数据存储器时,将跳过一个ALE脉冲.如想禁止ALE地输出可在SFR8EH地址上置0.此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用.另外,该引脚被略微拉高.如果微处理器在外部执行状态ALE禁止,置位无效./PSEN:外部程序存储器地选通信号.在由外部程序存储器取指期间,每个机器周期两次/PSEN有效.但在访问外部数据存储器时,这两次有效地/PSEN信号将不出现./EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器.注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器.在FLASH编程期间,此引脚也用于施加12V编程电源(VPP).XTAL1:反向振荡放大器地输入及内部时钟工作电路地输入.XTAL2:来自反向振荡器地输出.振荡器特性:XTAL1和XTAL2分别为反向放大器地输入和输出.该反向放大器可以配置为片内振荡器.石晶振荡和陶瓷振荡均可采用.如采用外部时钟源驱动器件,XTAL2应不接.有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号地脉宽无任何要求,但必须保证脉冲地高低电平要求地宽度2.2 显示电路设计2.2.1 器件简介1.AT89C51单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)地低电压,高性能CMOS8位微处理器,俗称单片机.该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准地MCS-51指令集和输出管脚相兼容.由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL地AT89C51是一种高效微控制器2.LED显示器是由发光二极管显示字段地显示器件,也可称为数码管.单片机系统中通常使用8段LED数码显示器,其外形及引脚如图1(a)所示,由图可见8段LED显示器由8个发光二极管组成.其中7个长条形地发光二极管排列成“日”字形,另一个圆点形地发光二极管在显示器地右下角作为显示小数点用,通过不同地组合可用来显示各种数字,包括A~F在内地部分英文字母和小数点“.”等字样共阴和共阳结构地LED显示器各笔划段名和安排位置是相同地,当二极管导通时,相应地笔划段发亮,由发亮地笔划段组合从而显示各种字符.8个笔划段dpgfedcba对应于1B(8位)地D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就可以表示欲显示字符地字形代码.例如,对于共阴极LED显示器,当公共阴极接地(为零电平),而阳极dpgfedcba各段,显示器显示“P”字符,即对于共阴极LED显示器,“P”字符地字形码是0×73.如果是共阳极LED显示器,公共阳极接高电平,显示“P”字符地字形代码应0x8C).这里必须注意地是:很多产品为方便接线,常不按规则地方法去对应字段与位地关系,这时字形码就必须根据接线自行设计了.2.2.2 电路设计显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解地前提下提供尽可能丰富地信息,全靠软件来解决.在这里我们使用地是八段数码管显示,通常在显示上我们采用地方法一般包括两种:一种是静态显示,一种是动态显示.其中静态显示地特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示地特点是显示稳定性没静态好,程序编写复杂,但是相.对静态显示而言占用端口资源少.在本设计中根据实际情况采用地是动态显示方法.4位八段数码管显示电路如图3-4所示.图2-2-2 数码管驱动电路图2.3 键盘电路设计键盘是人与单片机打交道地主要设备.关于键盘硬件电路地设计方法也可以在文献和书籍中找到,配合各种不同地硬件电路,这些书籍中一般也提供了相应地键盘扫描程序.站在系统监控软件设计地立场上来看,仅仅完成键盘扫描,读取当前时刻地键盘状态是不够地,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象.在单片机应用中键盘用得最多地形式是独立键盘及矩阵键盘.它们各有自己地特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高地简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上这.“毛刺”现象其次就是消除在按键过程中产生地有优势得多,因此它更适合于多按键电路.脉冲一般持续时“里采用最常用地方法,即延时重复扫描法,延时法地原理为:因为毛刺”所以当单片机检测到有按键,而我们按键地时间一般远远大于这个时间,间短,约为几ms如果是则为有效10ms)这里我们取后再判断此电平是否保持原状态,(动静后再延时一段时间.按键,否则无效个抢答按键输入,一个开始按在本文设计中采用了独立键盘地方式,本设计中有16键、一个结束按键,此外还有抢答时间调整键、回答时间调整键,加一按键、减一按键各.一个.如图2-3所示.图2-3 抢答键盘电路图图2-3-1 复位键盘电路图在2-3-1图中,开始及复位按键接到单片机地3、4脚,这里用到了单片机3、4脚复合功能中地IO端口功能,单片机通过读取3、4脚地P1.2、P1.3地IO端口值来判断当前是否处于抢答开始状态或抢答结束状态.2.4 发声电路本文设计如图2-4所示,单片机通过内部定时器地操作实现交替变换地波形输出驱动 .扬声器发声.报警电路图图2-4 软件设计第3章程序流程3.1定时中断模块3.1.1秒时,抢答器6由于抢答器中需要显示倒计时来提示选手们抢答时间,,当时间小于需要提供警告,以及当抢答时间结束时,要关闭外部中断,表示抢答结束,此时再有键按.3-1-1所示流程图如图下抢答器也不会做出反应.启动中断定时0N1S时间到Y?秒数加1 显示秒数中断返回抢答器定时器中断流程图图 3-1-13.1.2 报警模块报警模块主要作用有两个,一是当时间还剩5秒时,蜂鸣器放出报警,以此提示选手们抢答时间将要结束;二是当有选手第一时间抢答成功时发出报警声,提示其他选手不必再抢答.报警程序流程图如图3-1-2所示.中断定时0Y=6?时间NY1?秒加N警报中断返回警程序流程图2 3.1.图控制模块3.1.3当开.控制模块主要作用是对抢答器地开始和复位功能进行控制,主要由人来实现功能始键被按下时,抢答器开始正常工作;当抢答器停止工作是,可以按下复位键使抢答器回.3-1-3.答初始化状态控制程序流程图如图所示控制程序流程图图3-1-33.1.4 主流程图主程序设计流程图3-1-4 图第4章制作与调试4.1 仿真设计4.1.1 抢答器Keil软件地仿真图4-1-1 程序汇编图本设计程序汇编采用Keil软件,程序汇编结果如图4-1所示.Keil软件软件是目前最流行地开发MCS-52系列单片机地软件.该软件提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大地仿真调试器等在内地完整开发方案,并通过一个集成开发环境将他们组合在一起.4.1.2 抢答器protenus软件地仿真绘制抢答器地软件仿真图步骤分一下四步:查找所需要地元器件;1. 根据电路图进行连线;2. 是用来写线所对应地坐标;3..文件进行仿真keil生成和HEX4.装载所示4-1-2通过以上步骤,来实现抢答器设计地仿真实现,仿真电路图如图4-1-2 仿真电路图4.1.3 调试与运行.把编写好地程序放入仿真软件中,结合硬件电路进行调试与运行在仿真软件中按下开始按钮,从而达到仿真地目地;1. 初始化;显示器显示当前2.LED0030 .按照本次实际任务要求,逐个调试功能是否能实现3. 运行过程如下:1. 4-1-3-1.按下运行键,系统自动复位,如图图4-1-3-12. 号选手抢答成功,数码管显示3当按下开始按键时,选手开始抢答, 4-1-3-2..如图选手号图4-1-3-23.最后地5秒地答题倒计时,系统蜂鸣器控制将会发出声音以提示选手,系统30秒倒计时时间到,选手答题结束,如图4-1-3-3.图4-1-3-34-1-3-4.,如图..按下复位按键,系统回复到初状态,预示可以进行下一轮答题4.图4-1-3-4总结本设计是选用单片机技术为核心地设计方法设计地一款智能电子抢答器.系统主要以单片机为核心元件,以编程来控制单片机,达到抢答器所能实现地功能.系统硬件设计包括:单片机地介绍、复位电路、时钟电路、控制电路、显示电路、报警电路等地设计.系统软件设计包括:中断模块、报警模块、控制模块、主程序模块地设计等.平时我们学习地只是理论知识,但是繁多地理论让人很难理解.在听完老师讲课之后,我们也不清楚到底自己懂多少.在做设计这段时间里,我们不但巩固了那些已经掌握地知识,同时还学习了以前没学好地知识.做毕业设计地收获是很大地,它不但使我对单片机地知识有了一个整体地认识,使知识形成了一个连贯地体系;还让我们知道了在课堂上学到地原理知识、器件(如;8255芯片80C52等等)通过各种渠道可以实现不同地功能.而且随着设计地深入,我们对单片机及其扩展有了更深刻地认识.在设计地过程中,虽然智能抢答器相关资料可以在图书馆或者网上查阅,但这并不表我也深刻认识到单片机在日常生活中地强大用途,同时也被单片.示不用心就可以做好设计.机地强大微处理能力所震撼,随着社会地发展,单片机将成为人类社会不可缺少地重要科技之一.我们应该更加努力地学习单片机,为社会发展作贡献.最后我们要感谢含辛茹苦、默默地在后面辅导我们地胡老师,我们地成功离不开你地努力,现在我唯一能做地,就是不断学习,在学习中提高自己,以不辜负你地期望.当然还要感谢我地同伴设计者杨威.谢谢你们地帮助,才能使这次课程设计完美成功.参考文献,20xx机械工业出版社北京:[1] 王迎旭.单片机原理及应用. 2003:机械工业出版社,.微型计算机原理及应用.北京何小敏[2],1999:华中科技大学出版社微型计算机接口技术及应用.武汉[3] 刘乐善. 2001国防工业出版社,.北京:[4] 房小翠.单片机实用系统设计技术 2002:北京航空航天大学出版社,单片机应用系统设计何立民..北京[5]1999华中理工大学出版社,.武汉:陈光东[6] .单片微型计算机原理与接口技术华中科技大学出版:微机应用系统设计..武汉朱定华[7]附录1 整机原理图元器件明细表附录2代号附录3 程序清单#include <reg51.h>unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,。
16路无线抢答器设计摘要:本文设计的16路无线抢答器以STC89S52单片机作为核心控制芯片,由抢答发射电路模块和显示接收电路模块两部分组成,其中抢答发射电路模块包括选手抢答按键电路,发射模块,编码芯片和发送指示灯组成,可以将输入的信号数据经过编码发射到接收模块,实现抢答信号的发射。
显示接收电路包括接收模块,解码芯片,STC89S52电路主控芯片,晶体振荡器电路和LED数码显示部分组成,用来将接收到的信号加以处理并通过LED数码管进行显示。
该无线抢答器,减少了有线连接的麻烦和不便,使抢答器变得更加简便实用。
本文设计的抢答器具有价格便宜,功能齐全,小巧方便等优点,具有很好的市场前景。
关键词:单片机;16路无线抢答器;报警;无线发射;无线接收0 引言传统抢答器都是导线布线,线路复杂,受现场环境影响很大,可靠性差,功能简单,特别是当抢答路数很多时,实现更加困难,出错率变大。
传统的抢答器无法判断提前抢答按键的行为。
由于组成线路复杂,不便于电路升级换代。
因此本文设计一款方便实用、经济实惠的16路无线智能抢答器,解决了布线的麻烦和距离限制,应用单片机控制,程序调试方便,价格也低廉,更新方便。
1 16路无线抢答器结构设计本文设计的抢答器是操作简单、经济实用的小型无线抢答器,该抢答器使用STC主控芯片系统如图1所示,STC89S52单片机是一种功耗低,性能高的CMOS8位的微型控制器,具有8K在系统可编程Flash存储器,使用STC公司高密度的非易失性存储器技术制造,与工业上的80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统中科院编程,亦适用于常规编程器。
在单个芯片上,拥有灵活的8位CPU 和在系统可编程Flash,使得STC89S52在众多嵌入式控制应用系统中得到广泛地应用。
选手抢答部分把STC89S52芯片的P2和P3端口作为输入按钮,依次按按钮编号分配给每个选手1号到16号,当有选手按下按钮键时,端口的输入电平发生变化,通过单片机的智能处理后从P1端口输出到无线编码芯片PT2262进行编码然后发出信号,从而实现抢答的功能。
16路抢答器工作原理
16路抢答器工作原理是根据声音量来判断哪个通道有人回答
问题。
该抢答器系统由多个通道组成,每个通道都有一个麦克风和一个语音传感器。
当主持人提出问题时,学生可以通过按下相应的按钮来回答。
首先,系统会通过麦克风将学生的声音输入到相应通道的音频放大器中。
音频放大器会将声音信号放大,然后将放大后的信号传递到语音传感器。
语音传感器会将音频信号转换成电信号。
然后,电信号经过放大和滤波处理,以便更好地进行分析和识别。
接下来,信号会被送入一个微处理器。
微处理器使用算法来检测输入信号的声音强度。
它会记录每个通道的声音强度,并在一段时间后进行比较。
当学生按下按钮回答问题时,相应通道的声音强度会迅速增加。
微处理器会检测到这个变化,并记录下来。
最后,微处理器会通过LED指示灯或者其他显示器显示哪个
通道的声音强度最高,即哪个学生先回答了问题。
通过这种工作原理,16路抢答器可以迅速准确地确定哪个学
生先回答问题,并提供相应的显示。
这种系统广泛应用于学校、培训机构等场合,有助于激发学生积极参与课堂互动。
《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、四通道PWM 32个和可编程的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.2 ATMage16单片机结构框图2.2.1 单片机ATmega16芯片电路设计2.2.1 复位电路的设计RESET:复位端,用于在电路出现问题时使电路恢复。
在AVR单片机工作期间,按下复位按钮开关再松开时,将在复位脚产生一个低电平的复位脉冲信号,触发AVR单片机复位。
2.2.2 显示电路的设计2.2.3 键盘扫描电路的设计第3节系统软件设计硬件电路完成以后,进行系统软件设计。
首先要分析系统对软件的要求,然后进行软件的总体的设计,包括程序的总体设计和对程序的模块化设计。
按整体功能分为多个不同的模块,单独设计、编程、调试,然后将各个模块装配联调,组成完整的软件。
#include<avr/io.h>#define uchar unsigned char#define uint unsigned intuchar ge,shi, key,tem,rem,k;uchar tem1,tem2;uchar const table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//编码void delay(uint xms){int i,j;for(i=0;i<xms;i++)for(j=0;j<100;j++); }void display(){PORTD=0xff;PORTA=0xfe;PORTD=table[ge];delay(2);PORTD=0xff;PORTA=0xfd;PORTD=table[shi];delay(2);}void key_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) //解码{case 0x81:k=0x01;break;case 0x41:k=0x02;break;case 0x21:k=0x03;break;case 0x11:k=0x04;break;case 0x82:k=0x05;break;case 0x42:k=0x06;break;case 0x22:k=0x07;break;case 0x12:k=0x08;break;case 0x84:k=0x09;break;case 0x44:k=0x0a;break;case 0x24:k=0x0b;break;case 0x14:k=0x0c;break;case 0x88:k=0x0d;break;case 0x48:k=0x0e;break;case 0x28:k=0x0f;break;case 0x18:k=0x10;break;}}int main(){//端口初始化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。