简易四路抢答器
4路智力抢答器及原理电路图

1.设计目的当今的社会竞争日益激烈,选拔人才,评选优胜,知识竞赛之类的活动愈加频繁,而在竞赛中往往分为几组参加,这时针对主持人提出的问题,如果要是让抢答者用举手等方法,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。
比赛中为了准确、公正、直观地判断出第一抢答者,这就要有一种抢答设备作为裁判员,这就必然离不开抢答器。
在数字电路设计的过程中具体的目的如下:1)巩固和加深对电子电路基本知识的理解,提高综合运用本课程所学知识的能力。
2)培养根据设计需要选学参考书籍,查阅相关手册、图表和文献资料的自学能力,并掌握抢答器的基本原理,掌握4D锁存器、计数器、555定时器的工作原理和使用方法。
3)通过电路方案的分析、论证和比较,设计计算和选取元器件、电路组装、调试和检测等环节,初步掌握简单实用电路的分析方法和工程设计方法。
4)学会简单电路的实验调试和性能指标的测试方法,提高学生动手能力和进行数字电子电路实验的基本技能,学会使用Multisim仿真软件。
2.设计要求及方案论证2.1设计要求(1)四组参赛者在进行抢答时(用4组彩灯代表),当抢先者按下面前的按钮时,抢答器能准确地判断出抢先者,并以声、光为标志。
要求声响、光亮时间为9秒后自动熄灭。
(2)抢答器应具有互锁功能,某组抢答后能自动封锁其他各组进行抢答。
(3)抢答器应具有限时(抢答时间、回答问题时间)的功能。
限时档次分别为30秒、60秒、90秒;时间到时应发出声响。
同时,时间数据要用数码管显示出来。
(4)抢答者犯规或违章时,应自动发出警告信号,以提示灯光闪为标志。
(5)系统应具有一个总复位开关。
2.2方案论证方案一,用优先编码器74LS148和74LS279锁存器实现抢答和锁存功能,用加法器74LS160实现计数功能,但此方案电路繁琐复杂,不做选用。
方案二,用4D触发器74LS175实现抢答并锁存功能,用计数器74LS192实现定时功能,此方案电路相对简单,并且74LS192可以实现减数倒计时功能,所以选用方案二。
毕业设计——四路智力竞赛智能抢答器【范本模板】

摘要和关键词本文主要围绕四路选手抢答电路的设计和制作而展开叙述的,叙述了电路设计的过程。
该电路主要包括电源电路、抢答显示电路、倒计时电路和脉冲电路构成。
电源电路提供稳定的5V电源,抢答显示电路能够锁存抢先获得抢答权的选手编号,倒计时电路能够对选手答题时间进行控制,脉冲电路为电路提供秒脉冲信号。
关键词:抢答电路仿真电路板倒计时目录一.绪论..。
.。
.。
.。
.。
..。
.。
..。
.。
.。
..。
11.1 设计任务与要求.。
....。
..。
.。
.....。
..。
....。
.。
.。
..。
.。
..。
11.2 设计方案.。
..。
..。
....。
....。
.....。
.。
.。
.。
..。
.。
.。
..。
1二。
模块设计及仿真..。
.。
.。
.。
...。
.....。
..。
.。
.。
.。
22。
1 仿真软件介绍。
.。
.。
.。
....。
.。
..。
.。
...。
..。
....。
..。
.。
22.2 电源电路的设计和仿真...。
.。
...。
.。
.。
..。
.。
...。
...。
......。
.。
32.3 抢答显示电路。
...。
.。
..。
..。
...。
.。
..。
.。
.。
.。
...。
..........。
.。
42.4 定时电路.....。
..。
.。
..。
.。
.。
..。
.。
.。
...。
.。
....。
...。
...。
.。
52。
5 脉冲电路..。
..。
.。
..。
..。
.。
.。
.。
.。
...。
.。
.。
..。
..。
.。
.。
(5)三. 元件及封装选择。
..。
.。
.。
..。
...。
.。
.。
..。
.。
63.1 74LS279锁存器。
.。
.。
.。
...。
.。
.....。
....。
.。
..。
..。
..。
..。
.。
.。
63.2 优先编码器 74LS148。
.。
.。
.。
......。
..。
.。
.。
...。
......。
..。
.。
.7 3.3 555定时器。
..。
.。
..。
..。
..。
..。
......。
...。
..。
.......。
...。
..9 3.4 译码器及应用.。
四路抢答器电路组成及工作原理(含电路图)

电路组成及工作原理四路竞赛抢答器总电路原理图如图1所示。
图1 四路竞赛抢答器原理图1.抢答器电路原理:如图2,IO1,IO2,IO3,IO4分别为抢答器按钮的输入端,开始抢答,假设IO1抢答成功,通过四D触发器输出Q1=1,Q1’=0,而Q 2’=Q3’=Q4’=1,通过四输入与非门后,输出高电平,再经过反相器输出低电平,再经过两输入与非门,输出低电平,此时四D触发器处于保持状态,并且其他按钮的输入不起作用,IO1的抢答信号被锁存。
此时LED1发光并且蜂鸣器发出响声。
其他抢答按钮同理。
图2 抢答器部分电路图2.计时电路原理:计时电路为两片74LS160用置数法构成的31进制计数器,因为可以为了让答题者直观的看到30S这个时间点,所以设置了31进制的计数器。
两片的四个输入端均接低电平,两片的输出端分别接七段译码管直接显示数字,高位的74LS160芯片的Q1Q2接到一个二输入的与非门(U8A)输出到计数器的LD端、三输入与非门端、反相器端。
输出到LD端是为了构成31进制计数器,当高位变为3时,计数器置0。
输出到三输入与非门(U9A)和时钟脉冲、开关的电平信号一起输入到与非门中,这就是为什么能控制计时的开始与暂停了,当开关输入低电平时,无论是否有时钟信号,时钟均不发生改变,此时时钟信号为无效信号;而当开关输入高电平时,U8A输出也为高,因此,时钟信号为有效信号,因此,凭借这样的类似锁存的电路,就可以控制计时的开始与暂停。
而当时间到了30s时,U8A输出为低电平,时钟信号又成为无效信号,时间被停止在30s,此时将U8A信号通过一个反相器输出到蜂鸣器,蜂鸣器发出响声。
图3 计时器电路3.555函数发生器:输出高电平时间:T1=(R1+R2)Cln2 输出低电平时间:T2=R2Cln2 振荡周期:T=(R1+2R2)Cln2图4 555函数发生器。
《简易四路抢答器》

;实战四《简易四路抢答器》;该抢答器供不多于4个参赛队或者个人的抢答比赛场合使用。
每个参赛队的座位前;安装1只抢答按钮开关(用板上的S9、S10、S11、S12)和一个信号灯(D4、D5、D6、D7)。
;主持人座位前装一只复原开关(板上S3)、1只蜂鸣器(板上BUZ1)和一个抢答器工作状态;指示灯(D10),每当主持人口头发出号令之后.哪个队先按下座位上的按钮开关,该座位的信;号灯就先被点亮,同时封锁其他按钮开关的活动.并且熄灭主持人座位上的状态指示灯和发出;三声类似于电话振铃的提示声,以声明此次抢答动作已经完成.在主持人确认后,按下复原按钮;,状态指示灯重新点亮,并且同时发出"笛-笛-"声,为下一次抢答作好准备.;PIC单片机学习网陈学乾 ;程序文件名:"MCD-INTBUZ.ASM";******************************************************************** *;程序清单;******************************************************************** *tmr0 equ 1h ;定义定时器/计数器0寄存器地址status equ 3h ;定义状态寄存器地址option_reg equ 81h ;定义选项寄存器地址option_temp equ 0a6h ;(在BACK1)定义选项寄存器的备份寄存器的地址intcon equ 0bh ;定义中断控制寄存器地址portc equ 7h ;定义端口RC的数据寄存器地址trisc equ 87h ;定义端口RC的方向控制寄存器地址portb equ 06h ;定义端口RB的数据寄存器地址trisb equ 86h ;定义端口RB的方向控制寄存器地址c equ 0 ;定义进位标志位的位地址z equ 2 ;定义0标志位的位地址w equ 0 ;定义传送目标寄存器为W的指示位f equ 1 ;定义传送目标寄存器为RAM的指示位t0if equ 2 ;定义TMR0中断标志位的位地址t0ie equ 5 ;定义TMR0中断使能位的位地址inte equ 4 ;定义外部中断使能位的位地址intf equ 1 ;定义外部中断标志位的位地址count equ 20h ;定义一个计数器变量count1 equ 24h ;定义一个计数器变量count2 equ 25h ;定义一个计数器变量count3 equ 27h ;定义一个计数器变量count4 equ 28h ;定义一个计数器变量portb_b equ 21h ;为PORTC定义一个备份寄存器w_temp equ 7fh ;为W在体0和体1定义2个备份寄存器;w_temp equ 0ffh ;(若是16F873/4,则需保留FFH单元)status_temp equ 23h ;为STATUS定义一个备份寄存器rp0 equ 5h ;定义状态寄存器中的页选位RP0;******************复位向量和中断向量***********************org 000h ;nop ;设置一条ICD必须的空操作指令goto main ;org 0004h ;goto serv ;跳转到中断服务子程序;*******************主程序************************************mainbsf status,rp0 ;movlw 0 ;movwf trisc ;设置RC口全部为输出movlw 0ffh ;movwf trisb ;设置RB口全部为输入movlw 02h ;设置选项寄存器:上拉电阻启用;INT下降沿触发movwf option_reg ;分频器给TMR0;分频比1:8bcf status,rp0 ;movlw 90h ;movwf intcon ;开发INT中断clrf portc ;RC口灯全灭loopmovf portb,w ;读取RB口数据iorlw b'11100001' ;送RB口的数到备份寄存器并将除S9、S10、S11、S12以外的位全部送1movwf portb_b ;xorlw 0ffh ;没有键按下转LOOP继续检测btfsc status,z ;goto loop ;call delay10ms ;防抖动廷时movf portb,w ;iorlw b'11100001' ;xorwf portb_b,0 ;再次读取RB口的数据,与前一次读的数相同则键值有效btfsc status,z ;goto loop ;comf portb_b,w ;取反以便使被按下按键的位为1,其它位为0movwf portc ;送RC口显示call tone3t ;调用发声三次子程序loop1comf portb,w ;检测按键是否有松开andlw b'00011110' ;btfsc status,z ;goto loop ;松开了返回goto loop1 ;没松开继续检测;*********************中断服务子程序***************************** serv;********************保存护现场部分*******************************movwf w_temp ;保护Wswapf status,w ;保护STATUSclrf status ;选择体0movwf status_temp ;将STATUS存入体0的备份寄存器;********************* 调查中断源********************************** btfsc intcon,intf ;检查不是INT中断,返回goto intserv ;是!转到INT中断处理部分goto retfie0 ;;*********************INT中断处理部分****************************** intservclrf portc ;令全部灯熄灭bsf portc,7 ;点亮D10,表示就绪call tone630 ;调用高音子程序call delay ;调用1S廷时子程序call tone630 ;调用低音子程序bcf intcon,intf ;清除INT中断标志位;*************************恢复现场部分***************************** retfie0swapf status_temp,w ;恢复STATUSmovwf status ;swapf w_temp,f ;恢复Wswapf w_temp,w ;retfie ;中断返加;*************************低音调发生子程序(500HZ/50MS)************* tone500movlw .50 ;循环次数寄存器赋初值movwf count ;50=500HZx0.05Sx2t5lopbcf intcon,t0if ;清除TRM0溢出中断标志位movlw .131 ;给TMR0装入初值256-125=131movwf tmr0 ;启动定时器t5herebtfss intcon,t0if ;定时器溢出否goto t5here ;否!循环栓测movlw b'01000000' ;只将BIT6置位xorwf portc,f ;只将RC6(BUZ)脚电平反转,其余不变decfsz count,f ;循环次数递减,为0,跳一步goto t5lop ;不为0,跳回return ;返回;**************************高音调发生子程序(630HZ/50MS)*****************tone630movlw .63 ;循环次数寄存器赋初值movwf count1 ;63=630HZx0.05Sx2t6lopbcf intcon,t0if ;清除TRM0溢出中断标志位movlw .157 ;给TMR0装入初值157=256-99movwf tmr0 ;启动定时器t6herebtfss intcon,t0if ;定时器溢出否goto t6here ;否!循环栓测movlw b'01000000' ;只将BIT6置位xorwf portc,f ;只将RC6(BUZ)脚电平反转,其余不变decfsz count1,f ;循环次数递减,为0,跳一步goto t6lop ;不为0,跳回return ;返回;*********************发声1S子程序(1S=10x(50ms+50ms)*********** tonelsmovlw .10 ;循环次数寄存器赋初值movwf count2 ;t1lopcall tone500 ;调用低音子程序call tone630 ;调用高音子程序decfsz count2,f ;循环次数递减,为0,跳一步goto t1lop ;不为0,跳回return ;返回;*********************TMR0廷时子程序1S(1S=16x256x(256-12)US)******** delaybsf status,rp0 ;设置文件寄存器体1movf option_reg,w ;保护选项寄存器内容movwf option_temp ;movlw 07h ;重设选项寄存器;上拉电阻启用,INT 下降沿触发movwf option_reg ;分频器给TRM0;分频比值设为1:256 bcf status,rp0 ;恢复到文件寄存器体0movlw .16 ;循环利用TMROP定时16次movwf count3 ;溢出次数寄存器d1lopbcf intcon,t0if ;清除TMR0溢出中断标志位bcf intcon,t0ie ;清除TMR0溢出中断使能位movlw .12 ;给TMR0装入初值12=256-244movwf tmr0 ;启动定时器herebtfss intcon,t0if ;用查询法检测TMR0溢出否goto here ;否!返回decfsz count3,f ;是!溢出次数减1,为0,跳一步goto d1lop ;否!循环利用TMR0bsf status,rp0 ;设置文件寄存器体1movf option_temp,w ;恢复选项寄存器内容movwf option_reg ;bcf status,rp0 ;恢复到文件寄存器体0return ;返回;*************************断续发声3次报警子程序***********************tone3tmovlw .3 ;循环次数寄存器赋初值movwf count4 ;t3lopcall tonels ;调用发声1S子程序call delay ;调用廷时1S子程序decfsz count4,f ;循环次数递减,为0,跳一步goto t3lop ;不为0,跳回return ;返回;**************************软件廷时10MS子程序****************************delay10msmovlw .13 ;将外层循环参数值送到30Hmovwf 30h ;lp0movlw 0ffh ;将内层循环参数值送到31Hmovwf 31h ;lp1decfsz 31h,1 ;变量31H内容递减,若为0则跳跃 goto lp1 ;跳转到LP1decfsz 30h,1 ;变量30H内容递减,若为0则跳跃 goto lp0 ;跳转到LP0return ;返回主程序end ;源程序结束;***************************************************; 进入该实战演练的工序流程如下:; 1.创建源文件和编辑源文件;在此介绍一种不同于前面讲的创建源文件的方法,用Windows附件中的”记事本”; 这个为大家所熟知和好用的文件编辑器,并且可以方便的加入中文注释.不过有两点需要注意,一是注释前面的; 分号”;”必须用西文半角输入;二是必须用”.asm”扩展名存储到事先建立的一个专用子目录下.; 2.打开MPLAB集成开发环境:首先在WINDOWS环境下,选用开始>程序>Microchip MPLAB>MPLAB命令,启动MPLAB; 并进入MPLAB的桌面.; 3.创建项目:选用菜单File>New或Project>New Project,在事先建立的一个专用子目录下创建一个新项目,将; 用记事本创建的源文件加入到该项目中.; 4.建立项目中的目标文件:选择菜单Project >Build All(项目>建立所有文件),MPLAB将自动调用MPASM将项目; 文件管理下的源文件(.asm)汇编成十六进制的目标文件(.hex).; 5.ICD参数设置:通过菜单命令Project>Edit Project或者Option>Development Mode,将开发模式设置为; ”MPLAB ICD Debugger”,点击OK按钮,打开ICD的工作窗口,在调试阶段,可以按照说明书图2-10设置各项,但需注意; OSCILLATOR应设置为XT方式,尤其需要说明的是,选中“Enable Debug Mode”(使能调试模式)选项,在向目; 标单片机烧写机器码程序时,会将调试临控程序同时写入单片机的指定程序存储器区域,然后才允许用ICD方式调试。
实训套件—四路抢答器(含线性电源)

实训套件—四路抢答器湖南科瑞特科技股份有限公司 - 1 -实训套件—四路抢答器元器件布局图实训套件—四路抢答器湖南科瑞特科技股份有限公司 - 3 -三、焊接说明本套件分为SMT 和直插两类,电路板都为单面PCB 板,直插套件焊接注意事项:1、注意R18与R19焊接正确(R18可用270欧代替)。
2、变压器输入输出绕组焊接正确。
四、使用说明四路抢答器具有清零和抢答控制,可由主持人操纵避免有人在主持人说“开始”前提前抢答违反规则。
优先判断、编号锁存,通过LED 显示。
当一轮抢答之后,最先抢答选手的LED 点亮,禁止二次抢答。
如果再次抢答必须由主持人再次操作"复位"状态按键S5。
根据电路原理图,四路按键S1,S2,S3,S4对应的显示灯是D1,D2,D3,D4。
74HC175的时钟由555振荡电路产生。
初始状态:当有时钟信号输入到CLK 引脚时,D 触发器的输入等于输出,四路输入引脚为低电平,输出引脚Q 端输出低电平,三极管Q1,Q2,Q3,Q4截止。
发光二极管D1,D2,D3,D4处于熄灭状态。
四路输出引脚/Q 输出高电平到74HC30(8路与非门),38KHz 时钟输入有效至74HC175的CLK 引脚。
抢答状态:当主持人宣布抢答有效,选手按键抢答,假设1号选手最先按下S1键,D 触发器的输入D1等于输出Q1(高电平),三极管Q1导通,发光二极管D1点亮。
此时,/Q1引脚输出电平到74HC30(8路与非门),时钟信号被锁存,74HC30输出端一直为高电平。
D 触发器停止工作,其它选手按键无效。
复位状态:再次抢答,主持人按下键S5是D 触发器复位,回到初始状态。
经典四路抢答器课程设计

四路抢答器课程设计设计参考一、数码抢答器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.信号发生器:信号发生器是四路抢答器电路的核心部分,它负责产生试题信号和抢答信号。
在发生器中,有一个计时器和一个按钮开关。
在游戏开始之前,计时器初始化为0,表示尚未开始抢答。
当游戏开始后,计时器开始运行,并且每秒钟产生一个试题信号。
当有人按下按钮开关时,计时器停止。
2.信号接收模块:信号接收模块是抢答器电路的外设,用于接收信号发生器产生的信号。
它包括四个接收器,分别对应四个参与者。
每个接收器都连接到一个LED指示灯和一个蜂鸣器。
当试题信号到达接收器时,LED指示灯会点亮,并发出一声蜂鸣器声音。
接收器还可以捕捉到按钮开关的信号,以确定参与者是否按下了按钮。
3.计分显示模块:计分显示模块用于显示每个参与者的得分情况。
它包括四个数码管显示器,分别对应四个参与者。
当一些参与者按下按钮开关时,计分显示模块会将其得分加1,并在数码管上显示出来。
4.控制模块:控制模块负责控制整个四路抢答器电路的工作流程。
它连接信号发生器、信号接收模块和计分显示模块。
控制模块可以控制信号发生器的启动和停止,在游戏进行过程中,它还会监测参与者是否按下了按钮开关,并相应地控制信号接收模块和计分显示模块。
1.游戏开始:控制模块启动信号发生器,并初始化计分显示模块中的得分为0。
信号发生器开始运行,每秒钟产生一个试题信号,对所有的参与者公平。
2.抢答:参与者观察试题信号的到来,并根据自己的判断抢答。
抢答的方式是按下按钮开关。
当有人按下按钮开关时,信号发生器停止。
3.信号接收和计分:信号接收模块接收到试题信号后,LED指示灯点亮,并发出蜂鸣器声音,提醒参与者谁是第一个抢答的人。
接下来,信号接收模块还会接收按钮开关的信号,并通知控制模块参与者是否抢答成功。
四路抢答器(详图)

目录一、实验目的 (3)二、设计要求与内容 (3)三、设计原理3.1总体设计方案 (3)3.1.1设计思路 (3)3.1.2总电路框图 (3)3.2各模块设计方案及原理3.2.1抢答器 (3)3.2.2计时器 (5)四、电路仿真4.1倒计时电路 (6)4.2抢答器 (6)五、实验结果与析 (7)六、主要元器件 (8)七、实习总结 (9)四路数字抢答器一、实验目的结合我们所学的有关电子线路课程,综合实现四路抢答器的设计。
二、设计要求与内容(1)要求实现ABCD四路抢答器的设计,每一组都具有独立的抢答按键,要求某路抢答后,其他三路抢答无效;(2)某路抢答信号到达后,指示该路已抢答的独立灯发光,发出提示音,并用数码管显示抢答的组号(以ABCD表示);(3)裁判桌上的公共通道号显示(以ABCD表示);(4)抢答时间的定时与报警,具体实现可自拟。
扩展内容:①记录某路的抢答次数或抢到得次数;②记录某路的分数;③路数的扩展。
三、设计原理及过程3.1总体设计方案3.1.1设计思路①要准确判断出第一抢答者的信号并将其锁存,实现这一功能可选择使用触发器或锁存器等。
得到第一信号后其他组的抢答信号无效,并且第一信号在主持人发出抢答命令后才有效。
②第一信号发出后,用编码、译码及数码显示电路显示抢答者的组别,发光二极管亮。
③主持人按下抢答按钮后,开始30秒倒计时,在此时间内抢答有效,若30秒内无人抢答,主持人清零后开始新一轮抢答。
3.1.2总电路框图3.2各模块设计方案及原理3.2.1抢答电路抢答电路实现选手抢答并锁存,同时发光二极管发光,数码显示。
使用优先编码器74LS148和锁存器74LS279来完成。
该电路主要完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号(采用七段数字数码显示管);二是禁止其他选手按键,其按键无效。
工作过程:开关S 处于清除端时,RS 触发器R 、S 端均为0,使译码器74LS48的优先编码工作标志端位0,处于工作状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
律等因素和性价比最优原则,最终实施方案三
结合课题功能指标,利用学习过的AT89C51单片机作为控制核心。同时利用独立式键盘来实现选手的抢答功能以及主持人对抢答开始和系统清零的控制,同时用8位的共阳极数码管显示队伍的编号、分数、以及减计时的时间,同时也用到了转换器PCF8951
4.2程序流程图
N
Y
4.3程序介绍
(1)A/D转换
//--定义PCF8591的读写地址--//
#define WRITEADDR 0x90//写地址
#define READADDR 0x91//读地址
//--声明全局函数--//
void Pcf8591SendByte(unsigned char channel);
关键字:AT89C51单片机、锁存、减计时、动态显示、报警
一、任务分析
1.1设计要求以及需求分析
1、设计一个四位竞赛抢答单片机系统,可同时供4名选手或4个代表队参加比赛,每队设置单独的抢答按钮,编号为1、2、3、4,主要的需求是通过对按钮的设置实现每个小组的抢答
2、给节目主持人设置一个“抢答开始”控制开关,用来控制抢答开始,主要需求是通过对抢答按钮的设置实现抢答的开始
(2)模拟器件的选取:
为了符合设计要求的规定,A/D转换器选择了采用I2C串行通信的PCF8591
(3)数码管的选取
由于通过PCF8591芯片采集的模拟量信号的输入电压最大为+5V,所
以八位数码管已基本满足需求,为了使P0口获得更大的驱动能力,在此选择了共阳极数码管。
(4)I/O驱动能力分析:
与P1、P2、P3口相比,P0口的驱动能力较大,每位可驱动8个LSTTL输入,而P1、P2、P3口的每一位的驱动能力,只有P0口的一半。当P0口的某位为高电平时,可提供400uA的电流,当P0口的某位为低电平时,可提供3.2mA的灌电流。无论是P0口,还是P1、P2、P3口,想要获得较大的驱动能力,只能用低电平输出。
主要性能参数:
·与MCS-51产品指令系统完全兼容
·4k字节可重擦写Flash闪速存储器
·1000次擦写周期
·全静态操作:0Hz-24MHz
·三级加密程序存储器
·128×8字节内部RAM
·32个可编程I/O口线
·2个16位定时/计数器
·5个中断源
·可编程串行UART通道
·低功耗空闲和掉电模式
2.
PCF8591是8位A/D和D/A转换器,是单片、单电源低功耗8位CMOS数据采集器件,具有4个模拟输入、一个输出和一个串行I2C总线接口。3个地址引脚A0、A1和A2用于编程硬件地址,允许将最多8个器件连接至I2C总线而不需要额外硬件。器件的地址、控制和数据通过两线双向I2C总线传输。器件功能包括多路复用模拟输入、片上跟踪和保持功能、8位模数转换和8位数模拟转换。最大转换速率取决于I2C总线的最高速率。
A/D和D/A转换的计算公式以及输入与输出关系图
时序图
PCF8591的数据传送服从I2C总线协议,总线上数据信号的传送由起始信号(S)开始,由终止信号(P)结束。
在SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号,起始信号表示一次数据传送的开始,其后为寻址字节,来寻址被控的从机(本设计中取为40H),在寻址字节后为其应答位。再之后,是按指定读/写的数据字节与应答位。在数据传送结束以后主器件都必须发送停止信号。停止信号用在SCL
(5)电路结构的确定
独立的键盘作为人机接口,直接与单片机的P1口相连,单片机的P1口驱动能力相对较弱,但满足数码管驱动,用于驱动八个8段LED数码管,P3口低四位作为四个数码管的位选信号。P3.0、P3.1分别作为时钟线和信号线接口与PCF8591相接,P1.6用来接入蜂鸣器、硬件设计
3.1电路原理图
系统整体设计图
报警系统
数码管显示
开关按键
A/D转换电路
关键器件的介绍:
1.
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片
内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大,可灵活应用于各种控制领域。
为高电平期间,SDA线由低电平向高电平的变化来表示。这便是一次完整的数据传送应答时序。
A/D转换的时序图
3、排阻RESPACK8及RX8电阻块
RESPACK8用于P0口驱动,电流不够,加排阻增加电流
RX8用于单片机IO用作低电平输入时是提供灌电流,电阻大小的确定一般都是根据你的拉电阻的选择,因为漏极输出的IO内阻相当大,等效电路的电阻即为拉电阻,拉电流就是外接电源/拉电阻,一般的TTL电平驱动电流在20ma-25ma
开始的时候先设置各存储器的地址以及控制字和IO口的设定
减计时设置完成以后,若主持人未按下【开始抢答】按键,却有【1组】、【2组】、【3组】、【4组】中的某一组按下按键,则系统提示报警信号,发出2s的报警提示音;若主持人按下【开始抢答】按键,则进入减计时程序,此时若减计时结束,却没有组进行抢答,则系统提示报警信号,发出2s的报警提示音,然后支持人对系统设置【系统清零】,若在减计时结束之前有【1组】、【2组】、【3组】、【4组】中的某一组按下按键抢答,则在数码管上显示该组的成绩累计加分,并显示改组的组号,同时系统设置锁存,保存该组现有的得分,阻止其他组继续抢答,系统提示报警信号,发出2s的报警提示音
5、抢答成功后,禁止其他选手抢答,优先抢答选手的编号一直保持到主持人将系统清零为止,主要实现数据锁存。
6、抢答器具有利用旋钮调整抢答时间功能,时间范围20秒~50秒,
主要需求是对抢答时间的准确设置
1.2功能模块设置及其功能
(1)键盘输入模块:主要是实现选手的抢答以及主持人实现系统清零和抢答开始的功能;
3)抢答时间内,若有选手按动对应的抢答按钮,此对编号立即锁存,数码管上显示出队伍编号和此队累计分数,同时系统给出音响提示(显示单音,持续2秒)。
4)在主持人启动“抢答开始”键前,选手提前抢答,抢答无效,系统报警提示(显示单音,持续2秒)。主要需求是对系统报警功能实现以及对选手抢答按键和主持人按键的检测
unsigned char Pcf8591ReadByte();
void Pcf8591DaConversion(unsigned char value);
*函数名: Pcf8591SendByte
*函数功能:写入一个控制命令
*输入: channel(转换通道)
*输出:无
*******************************************************************************/
(2)蜂鸣器报警模块:主要是实现提示和报警功能;
(3)旋钮调节模块:主要是实现对选手抢答时间设置的功能,通过PCF8591进行A/D转换改变计时器初值来实现;
(4)数码管显示模块:主要是实现选手抢答时间的显示以及选手的组别和答题分数的设置的功能
二、总体方案设计
方案一:抢答器系统采用中小规模集成电路,使用按钮作为开关,完成输入信号的触发。该方案不需要软件编程,只需要硬件电路不出错就可实现需要的功能。但是电路的结构复杂,不利于调试,成本较高,实现接线的时候会因导线连接混乱造成干扰和短路等故障。
各组成部分的作用和特点
PCF8591:通过对电压模拟信号的采集以及A/D转换,将数字量输出
送给单片机来控制减计时的时间;
AT89C52:处理键盘输入及控制数码管输入与报警电路
显示电路:显示倒计时、抢答队伍及其分数
报警电路:用于实现选手抢答和减计时结束却没有组别回答问题时的报警功能。
主持人/选手开关:通过键盘控制输入C52的数据
方案三:抢答器系统由一块AT89C51单片机芯片为控制核心,通过PCF8951芯片实现电压输入模拟量的采集以及A/D转换实现向单片机数据的传输以控制减计时时间的控制,通过蜂鸣器发出报警信号,以及通过开关的闭合采集减计时、选手组好、分数和主持人输入信号的采集以在数码管上显示,性能良好,可靠性高,且成本相对较低。
*函数名: Pcf8591DaConversion
*函数功能: PCF8591的输出端输出模拟量
*输入: value(转换的数值)
*输出:无
*******************************************************************************/
5、独立按键的简介
共有六个键盘,其中1-4组按键用于实现组别选手的抢答按键
5号按键用于实现主持人设置抢答开始
6号按键用于实现主持人设置系统清零
3.2器件的选择
(1)键盘的选择:
由于只要实现四组抢答以及主持人使用的系统清零和抢答开始功能,故使用单独六个按键来实现功能以减少器件使用的成本,且能够实现完全的功能
主要性能参数:
·单电源供电
·工作电压:2.5 V--6 V
·待机电流低
·I2C总线串行输入/输出
·通过3个硬件地址引脚编址
·采样速率取决于I2C总线速度
·4个模拟输入可编程为单端或差分输入
·自动增量通道选择
·模拟电压范围:VSS~ VDD
·片上跟踪与保持电路
·8位逐次逼近式A/D转换
·带一个模拟输出的乘法DAC
方案二:采用现场可编程门列阵(FPGA)。FPGA可以给出很多逻辑单元,可以将想要实现的功能的电路应硬件语言描述出来,可以实现许多的复杂功能,比较灵活多变而在时序方面比单片机要好。但是该设计方式对数据的处理方式的速度要求不高,FPGA高速优势无法体现,同时芯片的引脚比较多,实物电路板布线复杂,加重实际焊接的工作,而且从成本方面来看,较为不经济。