求一单片机抢答器论文(C语言编程)

作者&投稿:雪翔 (若有异议请与网页底部的电邮联系)
51单片机做四路抢答器,要求如下,求C语言程序(做了两天了,心累)~

先来个汇编的程序,P1接一个共阳极数码管,P0低4位接4个抢答按键,主持人复位采用单片机复位按钮实现。 ORG 0000HSTART: MOV A,P0 ORL A,#0F0H CJNE A,#0FFH,PL0 SJMP STARTPL0: LCALL DELAY MOV A,P0 ORL A,#0F0H CJNE A,#0FFH,PL1 SJMP STARTPL1: JNB ACC.0,K1 JNB ACC.1,K2 JNB ACC.2,K3 JNB ACC.3,K4 LJMP STARTK1: MOV P1,#0F9H SJMP $K2: MOV P1,#0A4H SJMP $K3: MOV P1,#0B0H SJMP $K4: MOV P1,#99H SJMP $DELAY: MOV R6,#15DEL2: MOV R7,#200 DJNZ R7,$ DJNZ R6,DEL2 RET END

这个是毕业设计吧,网上一大堆相似程序,这个你自己写就成了,最简单用if语句询问P1的4个I/O口状态,设置好逻辑关系,只显示最初的那个(别告诉我这个逻辑关系你不会写),不就得了,再用一个数码管显示数字,直到按下复位按钮重新开始

电子实习任务书

1、时间:2006年12月18日—2006年1月7日
2、实习单位:
3、实习目的:
1>提高电路分析水平及综合运用的能力。
2>熟悉常用电子元器件的外型结构,掌握其标志方法。
3>掌握印制电路板的设计与制作方法。
4>通过产品的安装与调试,掌握电子产品的装配工艺与调试方法。
5>注重实践能力的培养,提高个人动手实践能力。
4、实习任务:
基本要求:
<1>具有八路输入,能够识别最先输入的信号,显示选号,并有声音提示。
<2>对回答问题所用的时间进行到计时显示,并提示结束时间报警。
<3>具有抢答开关功能,按下该键后系统进入抢答状态。
发挥部分:
<1>在按下抢答开关之前的信号判断为提前抢答,显示选号,声音提示,连续达到定次数后限制其抢答。
<2>具有设置上述提及的时间、次数等参数的功能。

实习报告

前言

随着现代电子电路的快速发展,以及电子行业对现有电子工程技术的不断需求,特别是对实际操作实践的电子人才的需求越来越多,所以加强学生动手能力、重视实践应该是电子发展需求的必然趋向。实践动手能力的培养是一种综合能力,这种能力当然是在一定难度的前提下完成的,通过一定数量的实践才能逐步形成的。因此在培养实践能力的同时,要通过实践来不断的发现问题和解决问题的途径和方法,从而提高实践能力。

近年来,随着单片机档次的不断提高,功能的不断完善,其应用日趋成熟、应用领域日趋扩大,特别是工业测控、尖端武器和日用家电等领域更是因为有了单片机而生辉增色。单片机应用技术已成为一项新的工程应用技术。本次实习设计的题目为基于单片机的抢答器。
在本次的课程设计中我主要负责了该系统的印制电路板PCB的制作

一、方案论证

方案一:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便。
方案二:该系统采用MCS-51系列单片机AT89S51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改性。 CS-51单片机特点如下:
1> 可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU ,程序指令和数据都可以烧写在ROM许多信号通道都在同一芯片,因此可靠性高。
2> 易扩充:单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统
3> 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。原理框图如1-1所示;

图1-1
方案比较及其选用依据,显然方案二比方案一简单的多,不但从性能上优于方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。另外AT89S51单片机采用12MHz的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩张功能。而方案一采用了中小规模集成电路,有其复杂的电路性能,从而可能会使信号的输入输出产生延时及不必要的误差。依此依据选择方案二比较适合。

二、原理分析
1. 本电路采用单片机AT89C51作为控制芯片,单片机的P0口外接八个发光二极管,每个发光二极管分别作为八位选手的信号指示灯。并在各个外接电路上并接开关按键,按键另一端接地。发光二极管采用共阳极接法,由于P0口为高电平呈输入状态,当有按键按下时,P0口呈低电平与按键对应的发光二极管满足点亮条件点亮。在程序编程上采用查询,查询P0口P0。0到P0。7的八个端口呈低电平,即查询是哪个选手先按键,然后将选手号码的字节数据送至串行口输出并在数码管上显现出来。
2. 蜂鸣器是利用三极管处于开关状态是的导通与截止工作,在三极管导通时蜂鸣器工作,三极管截止时蜂鸣器不工作。三极管采用8550 PNP型基极接于P1。2口置其低电平时三极管导通,置其高电平时三极管截止。
3. 数码管采用共阳极七段显示,其内部发光二极管为共阳极接高电平,当对应发光二极管一端为低电平时发光二极管点亮,显示的数字或字符由送入的字节数据控制,字节数据的输出采用串形口工作模式0,8位串行字节数据的输出通过RXD端口送出,TXD端用于送出同步移位脉冲,作为外接器件的同步移位信号。数据的发送是在TI=0的情况下,由一写发送缓冲器的指令开始CPU执行完该指令,串行口即将8位数据从RXD端送出,同时TXD端发出同步移位脉冲。8位数据发送完毕后由硬件置位TI=1,通过查询TI位来确定是否发送完一组数据,TI=1表示发送缓冲器已空,当要发送下一组数据时用软件使TI清零,然后即可发送下一组数据。
4. 软件设计分析首先在程序的开始为选手设置了一段违规程序,该程序的作用是为了防止选手在主持人没有按下抢答键时,有的选手已经提前抢答了,本次抢答为无效抢答,并有报警和记录下该位选手的选号,做违规处理,如果选手超出了在规定的提前抢答次数,则该选手将被取消以后的抢答资格。如果在主持按下抢答键时再抢答,该次抢答被视为有效抢答,在主持按下回答问题的键时选手就可以在规定的时间内回答问题了

图1-2
<1> 选手查询程序:
ORG 0000H
START:CLR A
MOV A,#0FFH
MOV P0,A
LOP:JNB P2。4,LP
JNB P0。0,SA1
JNB P0。1,SA2
JNB P0。2,SA3
JNB P0。3,SA4
JNB P0。4,SA5
JNB P0。5,SA6
JNB P0。6,SA7
JNB P0。7,SA8
SJMP LOP
SA1:AJMP SB1
SA2:AJMP SB2
SA3:AJMP SB3
SA4:AJMP SB4
SA5:AJMP SB5
SA6:AJMP SB6
SA7:AJMP SB7
SA8:AJMP SB8
LP:MOV R0,#9
LOP1:LCALL LED
LCALL DEL
JNB P0。0,SIP1
JNB P0。1,SIP2
JNB P0。2,SIP3
JNB P0。3,SIP4
JNB P0。4,SIP5
JNB P0。5,SIP6
JNB P0。6,SIP7
JNB P0。7,SIP8
DEC R0
CJNE R0,#0,LOP1
MOV R0,#0
LCALL LED
LCALL DEL
SJMP LOP
SIP1:AJMP DIP1
SIP2:AJMP DIP2
SIP3:AJMP DIP3
SIP4:AJMP DIP4
SIP5:AJMP DIP5
SIP6:AJMP DIP6
SIP7:AJMP DIP7
SIP8:AJMP DIP8
SB1:MOV R2,#1
LCALL LED1
LCALL DE
SJMP LP1
SB2:MOV R2,#2
LCALL LED1
LCALL DE
SJMP LP1
SB3:MOV R2,#3
LCALL LED1
LCALL DE
SJMP LP1
SB4:MOV R2,#4
LCALL LED1
LCALL DE
SJMP LP1
SB5:MOV R2,#5
LCALL LED1
LCALL DE
SJMP LP1
SB6:MOV R2,#6
LCALL LED1
LCALL DE
SJMP LP1
SB7:MOV R2,#7
LCALL LED1
LCALL DE
SJMP LP1
SB8:MOV R2,#8
LCALL LED1
LCALL DE
SJMP LP1
LP1:JNB P2。4,LOP2
SJMP LP1
DIP1:MOV R2,#1
LCALL LED1
LCALL DE
SJMP LH1
DIP2:MOV R2,#2
LCALL LED1
LCALL DE
SJMP LH1
DIP3:MOV R2,#3
LCALL LED1
LCALL DE
SJMP LH1
DIP4:MOV R2,#4
LCALL LED1
LCALL DE
SJMP LH1
DIP5:MOV R2,#5
LCALL LED1
LCALL DE
SJMP LH1
DIP6:MOV R2,#6
LCALL LED1
LCALL DE
SJMP LH1
DIP7:MOV R2,#7
LCALL LED1
LCALL DE
SJMP LH1
DIP8:MOV R2,#8
LCALL LED1
LCALL DE
SJMP LH1
LH1:JNB P2。4,LOOP
SJMP LH1
LOP2:MOV A,#11H
MOV SBUF,A
JNB TI,$
CLR TI
LCALL DEL
AJMP LOP

<2> 串行输出程序:
该部分程序的设计利用了单片机的串行模式0输出,该输出方式占用IO口少。可以省去许多IO口作为功能的扩展使用。在该模式下,我们采用了输出查询的方式,就是要借助发送标志TI,当程序执行到发送标志位时,查询其标志位TI的值,只要TI的值是0程序就继续查询,知道查询到TI为1时才结束,然后在进入下一组数据的发送。由于串行输出时送进去的数都是十进制数,以致计算机不能识别,所以还要把送进去的十进制数转化成而进制数,这样才能输出。因此在输出程序前必须有拆字程序,把原来送进去的十进制数转化成二进制数,然后在输出并通过数码管显示出来。但是如果在显示选手选号与显示选手回答问题所用的到计同用一段串行输出程序时就会造成程序的混乱,所以在此处设计了两段初始值不同的显示程序,从而可能增加了程序的烦琐化。

LED1:MOV A,R2
MOV B,#10
DIV AB
MOV R1,A
MOV R3,B
MOV A,R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,R3
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
RET。
LED:MOV A,R0
MOV B,#10
DIV AB
MOV R1,A
MOV R3,B
MOV A,R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,R3
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
RET
DE:CLR P1。2
LCALL DEL01
SETB P1。2
LCALL DEL01
RET
TAB:DB 11H,0D7H,32H,92H,0D4H,98H,18H,0D3H,10H,90H
RET
END
<3>倒计时程序
该程序为选手回答问题时的30秒倒计时程序,其中前25秒为正常的倒计时,在后5秒倒计时时伴随有报警声,用于提示选手回答问题的剩余时间。如果该选手在正常的倒计时内没有完成问题的回答,那么倒计时将被清零。

LOOP:MOV R0,#30
LPP:LCALL LED
LCALL DEL
JNB P2。4,LOP2
DEC R0
CJNE R0,#5,LPP
MOV R0,#5
LPP1:JNB P2。4,LOP2
LCALL LED
LCALL DE
DEC R0
CJNE R0,#0,LPP1
MOV R0,#0
LCALL LED
LCALL DEL
LJMP START
<4>延时程序
该系统设计了两段延时程序,一段1秒延时,是为了30秒倒计时调用和程序中一秒延时所用;另一段为0。5秒延时,用于报警。程序的设计中报警时间为一秒,但是由于在硬件的设计时只设计了一个按键,这样就会造成连续按键时会使所设定的报警声不断的响,这是设计中不允许的,所以在软件编程时设计了一个0。5秒的延时,被报警时所调用,这样就使报警声能很清楚地区分出来了

DEL:MOV R6,#20 DEL01:MOV R6,#10
DEL1:MOV R5,#100 DEL11:MOV R5,#100
DEL2:MOV R4,#250 DEL21:MOV R4,#250
DJNZ R4,$ DJNZ R4,$
DJNZ R5,DEL2 DJNZ R5,DEL21
DJNZ R6,DEL1 DJNZ R6,DEL11
RET RET

<5>报警程序
该段程序主要是用于本系统中的所有报警使用,报警时间延时为1秒钟。
DE:CLR P1。2
LCALL DEL01
SETB P1。2
LCALL DEL01
RET

三、制作过程

×××××××××××

×××××××××××××

××××××××××××××

×××××××××××××××

××××××××××××××××

四、心得体会

×××××××××××××××

××××××××××××××××

×××××××××××××××××

五、参考文献

曾峰,巩海洪,曾波,电子工业出版社,印刷电路板(PCB)设计与制作 2005.8

梅海凤,王艳秋,张军,汪毓铎,清华大学出版社 单片机原理与接口技术 2004.2
北京交通大学出版社

呵呵,我们当时的抢答器是用游戏手柄改装的,插在电脑上用VB编程序,太爽了!

注明下:我当时高二。

哥们咋这么偷懒啊?
如果真想偷懒的话你得把悬赏分弄高点,像你这种问题根本就不在“帮助”之例。

楼上的 你不识字?人家都说了不要汇编的. 到哪儿copy的?

参考:

http://lib.mnu.cn/whdh-xkdh/mndzjs/zgmlw/4.pdf


51单片机抢答器论文提要怎么写
本项目利用单片机的内部定时器溢出产生中断来实现定时。采用汇编和C语言进行软件编程,用keil软件进行调试,proteus软件进行仿真。最后把调试成功后的程序烧写到AT89S52单片机中,通电运行。抢答器正常工作时能指示出第一抢答者,并对违规操作进行报警。本项目设计的抢答器能很好的完成设 计任务,但本人认为这个...

求一单片机抢答器论文(C语言编程)
8位数据发送完毕后由硬件置位TI=1,通过查询TI位来确定是否发送完一组数据,TI=1表示发送缓冲器已空,当要发送下一组数据时用软件使TI清零,然后即可发送下一组数据。 4. 软件设计分析首先在程序的开始为选手设置了一段违规程序,该程序的作用是为了防止选手在主持人没有按下抢答键时,有的选手已经提前抢答了,本次...

51单片机四路抢答器毕业论文 只要四路
图 2-1 方案二:采用五个单片机,五个计时器,一个数码管, 电路主要运用串行口中断和定时器计数器的工作原理。接通 电源后, 主持人将开关拨到"清零"状态, 抢答器处于禁止状态, 编号显示器灭灯,主持人将开关置开始"状态,宣布"开始"抢 答器工作,开始抢答时间倒计时,如果在抢答时间倒计时内 无人抢答,则直接进入下...

设计一个以单片机为核心的8位竞赛抢答器,要求如下:
8路抢答器,这种题目,在百度上真是泛滥成灾了,随便一搜就能搜到一大堆,有仿真图和程序全部资料的。或者百度文库里也同样可以搜索到,还是毕业论文,更是详细。下图是一个8路抢答器的仿真图。

用单片机设计一个八路抢答器,会的给我一份吧,谢谢,要求如图所示_百度...
这好容易啊,我给你分析一下,你单片机比如P0 8个脚接8个按键,按键一端接地,P1口接一个数码管,随便弄一个多余的做蜂鸣器,一个做一个复位按键,单片机不停的检测P0,如果P0=0xfe,表示第一个按键按下,第二个按下就是0xfd,一旦检测到P0等于其中的任何一个,立即把这个值显示在数码管上,...

求一个单片机抢答器的设计及程序 求好心人帮我解决一下
抢答器程序 OK EQU 20H;抢答开始标志位 RING EQU 22H;响铃标志位 ORG 0000H AJMP MAIN ORG 0003HAJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040H MAIN: MOV R1,#30;初设抢答时间为30s MOV R2,#60;初设答题时间为60s MOV TMOD,#11H;设置未...

课程设计:简易抢答器
在硬件方面,我们需要一个单片机,振荡器,蜂鸣器,以及一个显示器。而在软件方便,我们可以基于c++或Python的语言进行开发。其中,C++可以用于单片机相关的控制,而Python则可以适用于用户界面的开发。抢答器的工作原理 接下来我们需要了解抢答器的工作原理,在这个过程中,最为核心的是编程思路的记录。首先,...

51单片机6路抢答器课程设计报告,谢谢
1.1 课题研究的相关背景 抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能...

基于单片机的简易八路抢答器设计
R4位标志值送A寄存器AGAIN: MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P1,ALOOP1: MOV A,P3 ; 接收p3口的抢答信号 CPL A JZ LOOP1LOOP2: RRC A ;有人抢答信号则逐次移动判断哪一位抢答 INC R4 JNC LOOP2;*** MOV A,R4 ...

如何设计基于单片机的多功能8路抢答器
1、原理方框图此电路完成的功能如图2所示,当主持人宣布抢答开始的时候,按下开始按钮,此时电路进入抢答状态,选手的输入采用了扫描式的输入,之后把相应的信息送往单片机,再由单片机输出到显示输出电路中。此时有人第一按下相应的抢答按钮,经过单片机的控制选择,在八段显示器上显示相应的号码,并锁存,同时禁止其他按钮的...

汉台区13939566739: 急求基于单片机的4路电子抢答器c语言程序 -
泣霭可泰: 2、实现现象:同时按键抢答,先按的键有效,其他按键锁死 复位后重新开始抢答 3、硬件要求:按键 LED灯原理:最先按下按键者有效,其他均无效------------------------------------------------*/#include<reg52.h> //包含头文件,一般情况不需要改动,...

汉台区13939566739: 求基于单片机多路抢答器C程序 -
泣霭可泰: C语言的单片机抢答器程序(经过测试)#include #define uchar unsigned char#define uint unsigned intvoid delay(uint);void sysini(void)...

汉台区13939566739: 求52单片机八路抢答器带数码管显示的c语言程序 -
泣霭可泰: 12345678910111213141516171819202122232425262728293031323334353637 #include<reg52.h>#define uchar unsigned char uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f}; sbit rstkey=P3^7; main() { uchar i,key; while(1) { P2=...

汉台区13939566739: 【求】单片机抢答器设计 -
泣霭可泰: 硬件部分比较简单,用单片机最小电路接几个按键和LED就成了,单片机最小电路在书上或者单片机的datasheet中都可以找到.键盘部分要么自己写程序控制,要么用7279之类的键盘控制芯片.软件部分需要好好设计,建议用C写,写成一个一个的子功能模块.祝好运!

汉台区13939566739: 加定时的9位抢答器C语言程序
泣霭可泰: /***********************************************************实验名称:5路抢答器示例程序楼主请根据自身需要改一下,应该不会太难.程序说明:按键S6,S3,S1,S4,S2分别代表5路抢答器,抢答成功后,数码管显示相应的代号,并有声音提醒,每次抢...

汉台区13939566739: 谁能帮我画出由单片机控制的8路竞赛抢答器的原理图和程序(要求用C语言 单片机的)具体的编程原理 -
泣霭可泰: 简单的说一下吧,既然是八路,那么有8个LED,8个按键,硬件:8个LED 接P1口,(注意要接上拉电阻,低电平驱动) 8个按键接P2口,按键另一端接地.编程:swhich case语句, 8个case语句 判断了哪个按键,注意每次判断需要屏蔽其他口,比如你按了P2.0,那么P1.0亮,P1.1-P1.7都要灭.然后死循环.这样就判断了谁先按.而之后按的都无效.

汉台区13939566739: 急求基于单片机的6路电子抢答器c语言程序 -
泣霭可泰: 如果有一个按键按下就屏蔽其他5个端口然后输出这个端口号就行了.

汉台区13939566739: C语言在编写八路抢答器,共10个按钮,一个启动,一个停止,八个抢答按钮.用AT89C51控制,最好有原理图 -
泣霭可泰: 其实,需要补充的还很多,比如,出现了抢答,要有显示,无论是数字还是灯光.其实,简单的逻辑电路也可以实现,就是复杂了些.如果用单片机实现,跟键盘一样,这里面需要有一个去抖动的算法,但是,如果两个或以上抢答按钮同时出现,这里面就会变得比较复杂.原理图应该非常简单,找一个口做8个按钮的输入,比如P0.另外,比如P1,应该用一个口的8个输出用来显示谁抢到了,或者,用数码管,好在管脚的数量没什么区别.最后,再找一个口,就是开始、结束按钮,并且,这里面应该有蜂鸣器,提示开始、结束、有人抢答.关键的问题在去抖动的算法上,而不在原理图上.

汉台区13939566739: 单片机抢答器 论文(尽量全面,好的追加分)
泣霭可泰: 1前言 在知识竞赛中,特别是做抢答题时,在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要有一个系统来完成这个任务.如果在抢答中,只靠人的视觉是很难判断出哪组先答题.利用单片机来设计抢答器,使以上问题得以解决,即...

汉台区13939566739: 求一个单片机抢答器的设计及程序 求好心人帮我解决一下 -
泣霭可泰: 抢答器程序 OK EQU 20H;抢答开始标志位 RING EQU 22H;响铃标志位 ORG 0000H AJMP MAIN ORG 0003HAJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040H MAIN: MOV R1,#30...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网