单片机四路抢答器的设计
单片机的四路电子抢答器设计

目录1设计要求与功能 (4)1.1设计基本要求 (4)2 硬件设计 (4)2.1控制系统及所需元件 (4)2.2抢答器显示模块 (5)2.3 电源方案的选择 (6)2.4 抢答器键盘的选择 (6)2.5蜂鸣器模块 (7)2.6外部振荡电路 (7)3 程序设计 (7)3.1程序流程图 (7)3.2系统的调试............................................... (9)3.3 焊接的问题及解决 (10)4总结 (10)附录C程序 (11)一设计要求与功能1.1设计基本要求(1)抢答器同时供4名选手或4个代表队比赛使用,分别用4个按钮K1~K4表示。
(2)设置裁判开关k5和清零开关k6,该开关由主持人控制,当主持人按下k6,系统复位,预备抢答,当主持人按下总控制控制开关k5,开始抢答;(3)抢答器具有定时抢答功能,抢答时间为倒计时15秒。
当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的提示声响,声响持续的时间0.5秒左右,当计时小于5秒后,每减少一秒,便报警一次以提示选手。
(4)抢答器具有锁存功能,参赛选手在设定的时间内进行抢答,抢答有效,蜂鸣器发声,计时停止,数码管上显示选手的编号和时间,选手相应的信号灯被点亮,其他选手再抢答时无效。
(5)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答。
等待下一轮抢答。
二硬件设计2.1控制系统及所需元件控制系统主要由单片机应用电路、存储器接口电路、显示接口电路组成。
其中单片机STC89C52是系统工作的核心,它主要负责控制各个部分协调工作。
所需元件:该系统的核心器件是 STC89C52。
各口功能:P0.0-P0.3 是数码管的位选口;P2.0-P2.7是数码管的段选口,为其传送段选信号;P1.0-P1.3是4组抢答信号的输入口;P1.4、P1.5由裁判控制,分别是抢答开始\复位功能键;P1.6为蜂鸣器的控制口;P3.4-P3.7为选手信号灯输出口;在其外围接上电复位电路、数码管电路、LED发光二极管、按键电路及扬声器电路。
4路抢答器设计单片机课程设计报告

目录1、课程设计目的 (3)2、课程设计正文 (3)1、软件方面设计 (3)①总程序流程图 (3)②显示子程序流程图 (4)2、硬件方面设计 (5)①方案设计 (5)②单元电路设计 (5)③系统调试 (8)3、课程设计总结或结论 (8)4、参考文献 (8)附录一:总的原理图附录二:PCB图附录三:总程序1、课程设计目的①可以自主设计简单地电路;②掌握响应外部中断的原理;③利用Protel硬件设计电路原理图和PCB图;④初步掌握使用Proteus进行单片机的软硬件联机调试。
技术要求:①设置4个抢答台和4个抢答成功指示灯,1个比赛主持人“开始”键和1个抢答指示灯以及1个LED显示器。
②采用中断和查询结合的方法确定按键的动作。
③主持人按下“开始”键后,若有人抢答,则抢答指示灯确认有人抢答,并用7段LED显示抢答者的号码(1--4),并同时点亮对应抢答台上的抢答成功指示灯;若10秒内无人抢答,则发出超时报警,此题作废,主持人可按下“开始”键开始下一题的抢答。
2、课程设计正文1、软件设计方面①总程序流程图②显示子程序2、硬件方面设计①方案设计采用以52为内核的STC系列的芯片,组成一个单片机的最小应用系统,运用C语言编程来实现四路抢答器的设计,采用独立式键盘来作为输入,LED数码管显示,蜂鸣器来报警。
用此方案的优点是:编程简单、操作方便、成本低和错误率低。
②单元电路设计各引脚接线:通过单片机各引脚功能的介绍,本硬件设计中,P0口接数码管显示器;P1口接独立式键盘;P2.0通过PNP驱动接数码管;/ALE脚和/PSEN脚悬空,/EA脚接高电平;复位电路包含了上电复位和按键复位;晶振选择为6MHz,GND接地,VCC接+5V电源;蜂鸣电路接在P2.1上面。
针对抢答器的设计,输入电路键盘按下开始键后,开始抢答,按下相应的键,输出电路相应的LED二极管发光、数码管显示相应的序号⑴复位电路复位电路有两种复位方式:上电复位和按键复位。
基于单片机的四路抢答器

基于单片机的四路抢答器1.由于剩余4个引脚,所以可以扩展到8路2.矩阵键盘输入任意两位数倒计时初值一、功能要求以8051系列单片机为核心,设计一个4路竞赛抢答器。
具体功能要求如下:1、该抢答器最多可供4名选手参赛,用4个按钮S0~S3表示,设置一个系统复位和抢答控制开关S,由主持人控制。
2、当主持人启动“抢答开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,LED显示器上显示选手的编号和抢答的时间并保持到主持人将系统清除为止;如规定的时间内无人抢答则蜂鸣器发声,计时器复位,为下一次计时做好准备。
3、抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。
4、只有主持人的操作将电路复位后,方可结束上一次的抢答,为下一次抢答做好准备。
二.设计方案(1)倒计时用矩阵键盘输入,程序中用keycount来记录按下按键的次数,我只设置两次,只能输入两位数,多按下几次是没有效果的,相当于键盘自锁,之后单片机读取键值,缓存入一个两位的数组table【2】。
(2)采用的是3位led动态扫描的方式显示(3)中断扫描选手按键,选手按键用的用独立键盘,用与门接选手按键,当有人按下时,与门由高到低,产生下降沿而引起中断,单片机扫描独立键盘。
(4)蜂鸣器电路(5)开始按键和复位按键1-1主流程图1-2 外部中断扫描选手按键1-3 定时器中断电路图如下图由于仿真软件proteus不能用PnP仿真,所以去掉了PnP,直接用IO口驱动;真实是不行的。
#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit FUW=P3^5; //抢答键sbit CLR=P3^4; //清零,复位键sbit xuan1=P2^4;//选手1,2,3,4sbit xuan2=P2^5;sbit xuan3=P2^6;sbit xuan4=P2^7;sbit wei1=P2^0;//位选1,2,3,4sbit wei2=P2^1;sbit wei3=P2^2;sbit wei4=P2^3;sbit buz=P3^0;uchar code numtab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极uint table[3]={0,0,0};//倒计时缓存uchar keycount=0;uint time=0;uchar num=0;uint ge,shi;/***********延时函数*****************/void delayms(uint xms){uint i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}/************蜂鸣器****************/void buzzer(){buz=0;delayms(50);buz=1;}/************报警部分独立按键扫描********************/ void kscan(){uchar sk;if(xuan1==0){delayms(10);if(xuan1==0){buzzer();sk=1;table[2]=sk;}}else if(xuan2==0){delayms(10);if(xuan2==0){buzzer();sk=2;table[2]=sk;}}else if(xuan3==0){delayms(10);if(xuan3==0){buzzer();sk=3;table[2]=sk;}}else if(xuan4==0){delayms(10);if(xuan4==0){buzzer();sk=4;table[2]=sk;}}}/**********矩阵键盘扫描***************/ void keyscan(){uint temp,key;P1=0xfe;//第一行为0temp=P1;temp=temp&0xf0;//与上11110000if((temp!=0xf0)&&(keycount<2))delayms(10);//去抖temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xde:key=0;table[keycount]=key;keycount++;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xfd;//第二行为0temp=P1;temp=temp&0xf0;//与上11110000if((temp!=0xf0)&&(keycount<2))delayms(10);//去抖temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xed:key=1;table[keycount]=key;keycount++;break;case 0xdd:key=2;table[keycount]=key;keycount++;break;case 0xbd:key=3;table[keycount]=key;keycount++;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xfb;//第三行为0temp=P1;temp=temp&0xf0;//与上11110000if((temp!=0xf0)&&(keycount<2)){delayms(10);//去抖temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xeb:key=4;table[keycount]=key;keycount++;break;case 0xdb:key=5;table[keycount]=key;keycount++;break;case 0xbb:key=6;table[keycount]=key;keycount++;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xf7;//第四行为0temp=P1;temp=temp&0xf0;//与上11110000if((temp!=0xf0)&&(keycount<2)){delayms(10);//去抖temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xe7:key=7;table[keycount]=key;keycount++;break;case 0xd7:key=8;table[keycount]=key;keycount++;break;case 0xb7:key=9;table[keycount]=key;keycount++;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}}/********显示函数*********/ void display(){ge=time%10;shi=time/10;wei1=1;wei2=0;wei3=0;P0=numtab[shi];delayms(5);P0=0xff;wei1=0;wei2=1;wei3=0;P0=numtab[ge];delayms(5);P0=0xff;wei2=0;wei1=0;wei3=1;P0=numtab[table[2]];delayms(5);P0=0xff;wei3=0;}/****************主函数**********************/ main(){EA=1;TMOD=0x01;TH0=(65536-50000)/256;//定时50msTL0=(65536-50000)%256;ET0=1;EX0=1;IT0=1; //下降沿触发PX0=1;PT0=0;while(1){if(keycount<2){ keyscan();if(keycount==2){time=10*table[0]+table[1];}}if(keycount==2){display(); }/******按下开始抢答键********/if(FUW==0){delayms(10);if(FUW==0){TR0=1;while(!FUW);}}/********按下清零键*********/if(CLR==0){delayms(10);if(CLR==0){TR0=0;EX0=1;time=0;ge=0;shi=0;table[0]=0;table[1]=0;table[2]=0;keycount=0;while(!CLR);}}}}/**************定时器0中断******************/ void t0() interrupt 1{TH0=(65536-50000)/256;//定时50msTL0=(65536-50000)%256;num++;if(num==20){num=0;time--;if(time==0){TR0=0;}}}/*********外部中断0***********/void estern0() interrupt 0{uchar ks;EX0=0;//关掉中断,防止键盘抖动,多次中断,还有就是//只扫描第一次按键的选手,之后按键不扫描if(TR0==0||time==0){kscan();}else if(xuan1==0&&TR0==1 ){delayms(10);if(xuan1==0){ks=1;table[2]=ks;TR0=0;while(!xuan1);}}else if(xuan2==0&&TR0==1 ) {delayms(10);if(xuan2==0){ks=2;table[2]=ks;TR0=0;while(!xuan2);}}else if(xuan3==0&&TR0==1 ){delayms(10);if(xuan3==0){ks=3;table[2]=ks;TR0=0;while(!xuan3);}}else if(xuan4==0&&TR0==1 ){delayms(10);if(xuan4==0){ks=4;table[2]=ks;TR0=0;while(!xuan4);}}}。
单片机控制四路抢答器设计

课题名称:单片机控制四路抢答器设计专业:电机与电器班级:电测092班学号:200901370225姓名:戴兴国指导教师:陈新喜目录摘要 (3)关键词 (3)作品说明 (3)设计思路 (4)(一)设计任务 (4)(二)设计要求 (4)第一章器件功能介绍 (5)1.1元器件清单 (5)1.2 主要元器件介绍 (5)2.74F245驱动器: (6)第二章单片机控制LED显示四路抢答电路设计 (7)2.1 硬件电路设计 (7)2.2 软件设计 (7)2.3 程序设计 (7)参考文献 (9)摘要现在开展的竞赛抢答活动越来越多,而在大多数比赛当中都是采用抢答器进行抢答的。
本设计的核心是使用A T89S52单片机控制,抢答器可同时满足4名选手或4个代表队参加竞赛抢答比赛。
且本文设计的抢答器具有功能强大,造价低廉,维修方便等特点。
该抢答器同时具有锁存,数码LED显示功能,彩灯指示,抢答报警,违规抢答报警等功能。
即选手按动按钮,会锁存相应的编号,并且在LED数码管上同步显示,彩灯指示,同时蜂鸣器会发出报警声响提示。
关键词A T89S52单片机控制LED数码显示抢答器作品说明该作品电路面板上有一个电源开关,一个复位开关,一个开始按钮,四个抢答按钮,一个电源指示灯和六个指示彩灯。
打开电源开关,面板电源指示灯(红色)亮代表抢答器已通电可以正常工作了。
复位按钮和开始按钮由主持人操控。
四个抢答按钮分别有4名选手或4个代表队操控。
当主持人问完问题按下“开始”按钮后会有三个绿色彩灯亮,这时4个代表选手可以进行抢答了,其中一路选手在抢答完毕后LED 显示屏会显示相应选手的编号,蜂鸣器会发出报警提示,同时绿色彩灯熄灭而三个红色彩灯亮。
抢答器这时不会再接受其他任一路的指令抢答。
抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统复位为止。
这时主持人可以按下“复位”键进行下一轮比赛抢答了。
而在主持人没有按下“开始”键之前如有选手违规抢答,这时LED显示屏会显示选手的编号并不断闪烁,同时扬声器发出报警声绿色彩灯也会不断闪烁,直到主持人按下复位键。
用51单片机制作4路抢答器

用51单片机制作4路抢答器此抢答器具有限时抢答,超时无效的特点,并可以对主持人未喊开始而提前抢答的犯规情况作出判断。
由于用了单片机,所以电路很简单。
懒得写译码程序,也不想做驱动电路。
干脆直接用了一片74LS48译码驱动器来驱动数码管。
呵呵,面包板上插一下,由于之前在Proteus中仿真过,所以直接就正常运行了~上一张实物图 左边的是STC89C52的最小系统版,P1口上接了8个LED,当时做流水灯的。
直接拿来用了。
P2口是显示输出,P3口接受按键。
那个小的芯片就是74LS48啦~下方的是编程器+电源,STC的芯片就是编程方便,支持在线烧写,这么小巧的编程器~ 当然最重要的是程序,附上代码清单。
写的比较烂,竟然上了100行,希望不要被大虾们骂得太惨>_#include#defineuintunsignedchar //计时变量uints= 0,ms= 0; //枚举类型:记录抢答器工作状态enumStat{ Idle= 0,//空闲状态,比如正在读题Ready= 1,//就绪状态,可以抢答Respond= 2,//响应状态,有人抢到了}stat; //时钟中断服务程序voidTimer()interrupt1using1{ TH0=0x3C; TL0=0xBD; ms++; s+=ms/20; ms%= 20; s%= 60;} //重置时钟voidResetTimer(){ EA= 1;//允许CPU中断ET0= 1;//定时器中断打开TMOD= 1;//设定时器为方式TR0= 0;//关定时器ms= 0; s= 0;} //优先编码(反向输入)uintEncode(uintc){ uinti,mask= 1; if(c== 0)return0; for(i= 0;ivoidmain(){ uintled= 0xff;//对应P1口,指示灯uintdisp= 15;//对应P2口,数。
经典四路抢答器课程设计

四路抢答器课程设计设计参考一、数码抢答器1.设计要求(1)8个参赛选手,用0~7号表示,抢答赛中,锁定并显示最先抢答选手号。
(2)报警提醒主持人等功能。
(3)主持人控制电路。
2.课题涵盖的知识点编码器、锁存器、脉冲发生器、译码器、三极管的开关特性应用等知识。
3.设计课题中部分单元电路的原理说明(1图1.1 数码抢答器的整机工作原理构图数码抢答器的整机工作原理构图如图1.1所示。
图1.2 数码抢答器实验板。
图1.3提供了一种供参考用的整机电路图。
电路组成如下:U1组成8线3线编码器,U3、U7A形成锁存脉冲,其中C1有延时作用,74LS175锁存编码信号,S9为主持人复位开关,U6、SMG1组成译码显示电路,U5、U7B组成报警电路。
图1.2 数码抢答器实验板(2)编码器按照预先的约定用文字、数码、图形等字符或图片表示特定对象的过程统称为编码,如学生的学号、考号、邮编等都属于编码,但在数字、微机、单片机等系统中,多利用多位的二进制数码0和1按照某种预先约定的规律排列,组成不同的数码,表示某一具体特定事物或含义,之所以编为二进制码是因为二进制数便于进行存储、运算等各种数字信号处理,而且电路实现简单。
在本项目中为了便于锁存、显示抢答的选手号,可利用二进制编码器将8位选手的按键号编为3信二进制数码。
编码器可以用小规模集成电路设计而成,也可以直接用中规模集成电路如8线-3线编码器74148来实现。
此电路如有74147还可以有10个输入抢答端。
(3)译码显示器本项目可采用七段数码显示译码器。
其作用是将8421BCD码译码后通过数码管显示出来,译码是编码的逆过程。
数码管是由发光二极管显示字段的显示器件,在数字电路和单片机中广泛采用的是七段数码管,这种数码管的显示字段各对应一个发光二极管,根据发光二极管在数码管内部的连接形状不同分为共阴极和共阳极两种。
可编辑修改图1.3 供参考用的整机电路图精品文档驱动共阴数码管的显示译码器可采用MC14511,其功能表如表1.1。
单片机课程设计四路抢答器文档

1 设计任务和方案1.1设计任务(一)设计题目:抢答器(二)设计目的与任务:学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。
1.2功能要求说明该抢答器上电或按键复位后能自动显示系统提示符“P.”。
设定S2键、S3键、S4键、S5键、S9键分别为一号选手键、二号选手键、三号选手键、四号选手键、开始键。
若在主持人按下开始键之前有人按下抢答键,则抢答违规,数码管显示器显示违规台号,违规指示灯亮(接在P3.0上的灯),其他按键不起作用,只有主持人按复位键后才能重新开始抢答。
主持人按下开始键后,抢答开始并限定时间30S;10S 内无人抢答,蜂鸣器发出音响;若30S后依然无人抢答,蜂鸣器发出音响,违规指示灯亮。
正常抢答下,从抢答键按下开始30S内,答完后键没按下,则数码管显示器显示违规台号,违规指示灯亮,蜂鸣器发出音响。
各台数字显示的消除、蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位键实现。
1.3设计总体方案及工作原理说明设计中采用AT89S52芯片、LED显示器、蜂鸣器、LED灯和一些独立式按键构成一个简易四路抢答器。
设计中是采用单片机的内部定时器进行定时,原理框图如图1.1所示整个抢答器的工作原理是:在正常的供电状态下,开始抢答时利用单片机倒计时,并由单片机将所需要显示的数据送到LED显示器的输入口,当有键按下时则执行相应的键功能程序。
AT89S52单片机晶振电路单片机复位电路键盘输入8段LED显示器LED灯蜂鸣器图1.1 原理框图2抢答器的硬件系统的设计2.1 硬件系统各模块功能简要介绍该抢答器主要由单片机最小系统、独立式键盘模块、LED显示电路模块、蜂鸣电路模块和LED指示灯电路模块组成。
各模块的功能如下:(1)单片机最小系统由AT89S52单片机、时钟电路和复位电路构成。
基于51单片机的四路抢答器设计

摘要 (I)Abstract (II)引言 (1)1系统概述 (2)1.1抢答器需求分析 (2)1.2 抢答器工作过程 (2)2 单片机功能简介 (3)2.1 STC89C51的功能 (3)2.1.1 STC89C51特殊功能寄存器 (3)2.2 STC89c51单片机的内部结构 (5)3 系统硬件电路的设计 (6)3.1 系统总电路如图 (6)3.2 最小系统的设计 (7)3.2.1 电源的设计 (7)3.2.2 时钟频率电路的设计 (7)3.2.3 复位电路的设计 (9)3.3 显示电路的设计 (11)3.3.1 数码管简介 (12)3.3.2 CD4511七段译码器简介 (12)3.4 按键电路的设计 (14)3.5 蜂鸣器设计 (15)3.6元器件焊接及调试 (17)4 系统软件的设计 (17)4.1 延时子程序 (19)4.2 显示子程序 (19)4.3 倒计时加按键扫描子程序 (19)4.4主程序及分析 (20)5 结论 (23)参考文献 (24)致谢 (25)附录 1 (26)附录2 (27)Contents Abstract....................................................... I I Introduction. (1)1 System overview (2)1.1 The analysis of responder needs (2)1.2 Responder work process (2)2 MCU features (3)2.1 STC89C51 (3)2.1.1 Special function register (3)2.2 The internal structure of STC89c51 (5)3 The design of circuit system (6)3.1 The circuit system (6)3.2 The design of minimum system (7)3.2.1 The design of power supply (7)3.2.2 The design of clock circuit (7)3.2.3 The design of reset circuit (9)3.3 The design of display circuit (11)3.3.1 Digital tube profile (12)3.3.2 The introduction of CD4511 (13)3.4 The design of key circuit (15)3.5 The design of buzzer (15)3.6 Components and welding debuggin g (17)4 The design of software (19)4.1 Delay subroutine (19)4.2 Display program (19)4.3 The countdown and keyboard scanning subroutine (19)4.4 Main program and analysis (20)5 Conclusions (23)References (24)Acknowledgement (25)Appendix 1 (26)Appendix 2 (27)基于51单片机的四路抢答器设计作者:吴新春,指导教师:刘平(山东农业大学讲师)【摘要】本文设计以STC89C51单片机为核心的四路抢答器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章绪论1.1单片机介绍单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
而个人电脑中也会有为数不少的单片机在工作。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。
我们现在用的全自动滚筒洗衣机、排烟罩、VCD 等等的家电里面都可以看到它的身影。
它主要是作为控制部分的核心部件。
单片机是靠程序运行的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性。
由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。
一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。
单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。
一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。
二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。
1.2单片机的工作过程单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。
为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。
存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。
程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。
1.3 AT89C51AT89C51单片机是采用高性能的静态80C51 设计由先进CMOS 工艺制造并带有非易失性Flash 程序存储器,全部支持12 时钟和6 时钟操作。
P89C51X2 和P89C52X2/54X2/58X2 分别包含128 字节和256 字节RAM 32 条I/O 口线3 个16 位定时/计数器6 输入4 优先级嵌套中断结构1 个串行I/O 口可用于多机通信I/O 扩展或全双工UART以及片内振荡器和时钟电路。
此外由于器件采用了静态设计可提供很宽的操作频率范围频率可降至0 可实现两个由软件选择的节电模式空闲模式和掉电模式空闲模式冻结CPU 但RAM 定时器串口和中断系统仍然工作。
掉电模式保存RAM 的内容但是冻结振荡器导致所有其它的片内功能停止工作由于设计是静态的时钟可停止而不会丢失用户数据运行可从时钟停止处恢复。
振荡器特性为XTAL1 和XTAL2 为输入和输出可分别作为一个反相放大器的输入和输出此管脚可配置为使用内部振荡器要使用外部时钟源驱动器件时XTAL2可以不连接而由XTAL1 驱动外部时钟信号无占空比的要求因为时钟通过触发器二分频输入到内部时钟电路但高低电平的最长和最短时间必须符合手册的规定。
复位,在振荡器工作时将RST 脚保持至少两个机器周期高电平12 时钟模式为24 个振荡器周期6 时钟模式为12 振荡器周期可实现复位为了保证上电复位的可靠RST 保持高电平的时间至少为振荡器启动时间通常为几个毫秒再加上两个机器周期复位后振荡器以12 时钟模式运行当已通过并行编程器设置为6 时钟模式时除外。
设计中的注意事项,当空闲模式被硬件复位所中止时器件在内部复位之前从停止处恢复程序正常运行时间为2 个机器周期这段时间内片内硬件禁止对内部RAM 的访问但对I/O 口的访问未被禁止当Idle 模式被复位所中止时为了消除可能产生的误写操作应用Idle 模式指令后的指令不应执行写I/O 口或写外部存储器操作。
1.4 抢答器的应用随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。
抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。
因此我们设计了以单片机为核心的新型智能的抢答器,在保留原始抢答器的基本功能的同时又增加了数码管显示电路实现了其它功能。
抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。
1.5 单片机抢答器的意义二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词--“智能型”。
在知识竞赛中,往往会用到抢答器。
故此我们就选择利用单片机编程来设计抢答器,即使两组的抢答时间相差几微秒,也能轻松的分辨出哪一组(或哪个选手)先抢答到题。
本系统采用单片机作为整个控制核心。
控制系统的四个模块为:显示模块、存储模块、语音模块、抢答开关模块。
该系统通过开关电路四个按键输入抢答信号,利用一个数码管来完成显示功能,用按键来让选手进行抢答,在数码管上显示哪一组先答题的,从而实现整个抢答过程。
本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。
系统工作原理本系统采用89C52单片机作为核心。
控制系统的四个模块分别为:存储模块、显示模块、语音模块、抢答开关模块。
该抢答器系统通过开关电路四个按键输入抢答信号,利用一个数码管来完成显示功能。
工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,单片机控制的智能抢答器设计。
第二章抢答器硬件设计2.1 抢答器工作原理抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,广泛应用于各种知识竞赛、文娱活动等场合。
在抢答竞赛或呼叫时,有多个信号同时或不同时送入主电路中,抢答器内部的寄存器工作,并识别、记录第一个号码,同时内部的定时器开始工作,记录有关时间并产生超时信号。
在整个抢答器工作过程中,显示电路、声音电路等还要根据现场的实际情况向外电路输出相应信号。
2.2 单片机选择根据初步设计方案的分析,设计这样一个简单的应用系统,以AT89C51单片机为控制核心,采用模块化的设计方案,可以实现4位数字抢答器的各项基本功能,例如定时抢答、显示抢答选手号码等等。
AT89C51单片机是采用高性能的静态80C51 设计由先进CMOS 工艺制造并带有非易失性Flash 程序存储器,全部支持12 时钟和6 时钟操作。
P89C51X2 和P89C52X2/54X2/58X2 分别包含128 字节和256 字节RAM 32 条I/O 口线3 个16 位定时/计数器6 输入4 优先级嵌套中断结构1 个串行I/O 口可用于多机通信I/O 扩展或全双工UART以及片内振荡器和时钟电路。