1、学习情景 3 抢答器的设计与制作31 资讯知识准备311 抢答器的介绍电视台、学校和工厂等单位常举办各种智力比赛,抢答器是必要设备。抢答器是一名公正的裁判员,它的任务是从若干名参赛者中确定出最先的抢答者。从原理上讲,目前抢答器有三种类型。第一类是用中小规模数字电路构成,其中包括了组合逻辑电路和时序电路,设计这一类抢答器时,要用到真值表、状态图等知识。第二类是用可编程逻辑器件 PLD 构成,可以由 FPGA 或 CPLD 组成,设计这一类抢答器时,要用到 VHDL 语言和 PLD 专用开发软件,有相当的难度。第三类是用单片机构成,可以由各个厂家、各种类型的单片机及相应的外围电路组成,设计这一类抢
2、答器时,要用到单片机软硬件、接口及产品开发等很多知识,也有相当的难度。312 指令系统3121 指令的格式按照机器码的字节个数,指令可以分为以下三种: 操 作 码7 0操 作 码7 0操 作 码7 0数 据 或 寻 址 方 式7 0数 据 或 寻 址 方 式7 0数 据 或 寻 址 方 式7 0单 字 节 指 令 :双 字 节 指 令 :三 字 节 指 令 :MCS-51 单片机指令系统包括 49 条单字节指令、46 条双字节指令和 16 条三字节指令。采用助记符表示的汇编语言指令格式如下: 标 号 : 操 作 码 操 作 数 或 操 作 数 地 址 ; 注 释标号是程序员根据编程需要给指令设
3、定的符号地址,可有可无;标号由 18 个字符组成,第一个字符必须是英文字母,不能是数字或其它符号;标号后必须用冒号。操作码表示指令的操作种类,如 MOV 表示数据传送操作、ADD 表示加法操作等。操作数或操作数地址表示参加运算的数据或数据的有效地址。操作数一般有以下几种形式:没有操作数项,操作数隐含在操作码中,如 RET 指令;只有一个操作数,如 CPL A指令;有两个操作数,如 MOV A,#00H 指令,操作数之间以逗号相隔;有三个操作数,如CJNE A,#00H,NEXT 指令,操作数之间也以逗号相隔。注释是对指令的解释说明,用以提高程序的可读性;注释前必须加分号。3122 指令的寻址方
4、式从指令格式知道,操作数是指令的重要组成部分,指出了参与操作的数据或数据的地址。寻找操作数地址的方式称为寻址方式。一条指令采用什么样的寻址方式,是由指令的功能决定的,寻址方式越多,指令功能就越强。MCS-51 指令系统共使用了 7 种寻址方式,包括寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址等。实训中,我们初步接触了寄存器寻址、立即数寻址、直接寻址和寄存器间接寻址等四种寻址方式。1. 寄存器寻址寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄存器 R0R7、累加器A、通用寄存器 B、地址寄存器 DPTR 等。例如:指令 MOV R1,A 的操作是把累加器
5、A 中的数据传送到寄存器 R1 中,其操作数存放在累加器 A 中,所以寻址方式为寄存器寻址。如果程序状态寄存器 PSW 的 RS1RS0=01(选中第二组工作寄存器,对应地址为 08H0FH) ,设累加器 A 的内容为 20H,则执行 MOV R1,A 指令后,内部 RAM 09H 单元的值就变为 20H,如图 3.1 所示。图 3.1 寄存器寻址示意图2. 直接寻址直接寻址是指把存放操作数的内存单元的地址直接写在指令中。在 MCS-51 单片机中,可以直接寻址的存储器主要有内部 RAM 区和特殊功能寄存器 SFR 区。例如:指令 MOV A,3AH 执行的操作是将内部 RAM 中地址为 3A
6、H 的单元内容传送到累加器 A 中,其操作数 3AH 就是存放数据的单元地址,因此该指令是直接寻址。设内部 RAM 3AH 单元的内容是 88H,那么指令 MOV A,3AH 的执行过程如图 3.2 所示。88H 3AH内 部 RAM88HA图 3.2 直接寻址示意图3. 立即数寻址立即数寻址是指将操作数直接写在指令中。例如:指令 MOV A,#3AH 执行的操作是将立即数 3AH 送到累加器 A 中,该指令就是立即数寻址。注意:立即数前面必须加“#”号,以区别立即数和直接地址。该指令的执行过程如图 3.3 所示。 图 3.3 立即数寻址示意图4. 寄存器间接寻址寄存器间接寻址是指将存放操作数
7、的内存单元的地址放在寄存器中,指令中只给出该寄存器。执行指令时,首先根据寄存器的内容,找到所需要的操作数地址,再由该地址找到操作数并完成相应操作。在 MCS-51 指令系统中,用于寄存器间接寻址的寄存器有 R0、R1 和 DPTR,称为寄存器间接寻址寄存器。注意:间接寻址寄存器前面必须加上符号“” 。例如:指令 MOV A,R0 执行的操作是将 R0 的内容作为内部 RAM 的地址,再将该地址单元中的内容取出来送到累加器 A 中。设 R0=3AH,内部 RAM 3AH 中的值是 65H,则指令 MOV A,R0 的执行结果是累加器 A 的值为 65H,该指令的执行过程如图 3.4 所示。65H
8、内 部 RAM3AHA3AH65HR0图 3.4 寄存器间址寻址示意图5. 变址寻址变址寻址是指将基址寄存器与变址寄存器的内容相加,结果作为操作数的地址。DPTR 或 PC 是基址寄存器,累加器 A 是变址寄存器。该类寻址方式主要用于查表操作。例如:指令 MOVC A,A+DPTR 执行的操作是将累加器 A 和基址寄存器 DPTR的内容相加,相加结果作为操作数存放的地址,再将操作数取出来送到累加器 A 中。设累加器 A=02H,DPTR=0300H,外部 ROM (0302H)=55H,则指令 MOVC A,A+DPTR 的执行结果是累加器 A 的内容为 55H。该指令的执行过程如图 3.5
9、所示。55H程 序 存 储 区02HA0302H03HDPTR00HALU0302H图 3.5 变址寻址示意图6. 相对寻址相对寻址是指程序计数器 PC 的当前内容与指令中的操作数相加,其结果作为跳转指令的转移地址(也称目的地址) 。该类寻址方式主要用于跳转指令。例如:指令 SJMP 54H 执行的操作是将 PC 当前的内容与 54H 相加,结果再送回 PC中,成为下一条将要执行指令的地址。设指令 SJMP 54H 的机器码 80H 54H 存放在 2000H 处,当执行到该指令时,先从2000H 和 2001H 单元取出指令,PC 自动变为 2002H;再把 PC 的内容与操作数 54H 相
10、加,形成目标地址 2056H,再送回 PC,使得程序跳转到 2056H 单元继续执行。该指令的执行过程如图 3.6 所示。54H程 序 存 储 区54HA 201H20HPC02H 2056H x802056H.图 3.6 相对寻址示意图7. 位寻址位寻址是指按位进行的操作,而上述介绍的指令都是按字节进行的操作。MCS-51 单片机中,操作数不仅可以按字节为单位进行操作,也可以按位进行操作。当我们把某一位作为操作数时,这个操作数的地址称为位地址。位寻址区包括专门安排在内部 RAM 中的两个区域:一是内部 RAM 的位寻址区,地址范围是 20H2FH,共 16 个 RAM 单元,位地址为 00H
11、7FH;二是特殊功能寄存器 SFR中有 11 个寄存器可以位寻址,可以参见前面有关章节中位地址定义。例如:指令 SETB 3DH 执行的操作是将内部 RAM 位寻址区中的 3DH 位置 1。设内部 RAM 27H 单元的内容是 00H,执行 SETB 3DH 后,由于 3DH 对应着内部RAM 27H 的第 5 位,因此该位变为 1,也就是 27H 单元的内容变为 20H。该指令的执行过程如图 3.7 所示。内 部 RAM27H00001二 进 制 1图 3.7 位寻址示意图3123 指令表符号 含 义Rn 表示当前选定寄存器组的工作寄存器 R0R7Ri 表示作为间接寻址的地址指针 R0R1#
12、data 表示 8 位立即数,即 00HFFH#data16 表示 16 位立即数,即 0000HFFFFHaddr16 表示 16 位地址,用于 64K 范围内寻址addr11 表示 11 位地址,用于 2K 范围内寻址direct 8 位直接地址,可以是内部 RAM 区的某一单元或某一专用功能寄存器的地址Rel 带符号的 8 位偏移量(-128+127)Bit 位寻址区的直接寻址位(X) X 地址单元中的内容(X) ) 将 X 地址单元中的内容作为地址,该地址单元中的内容 将 后面的内容传送到前面去n=07 rrr=000111i=0,1助记符格式 机器码 相应操作 指令说明 机器周期MO
13、V A,Rn 11101rrr ARn n=07rrr=0001111MOV A,direct11100101directA direct 1MOV A,Ri 1110011i A (Ri) i=0,1 1MOV A,#data01110100dataA #data 1MOV Rn,A 11111rrr Rn A N=07rrr=0001111MOV Rn,direct10101rrr directRn direct N=07rrr=0001111MOV 01111rrr Rn #data N=07 1Rn,#data data rrr=000111MOV direct,A11111010di
14、rectdirect A 1MOV direct,Rn10001rrrdirectdirect Rn N=07 rrr=0001111MOV direct2,direct110000101direct1direct2direct2 direct12MOV direct,Ri1000011idirectdirect (Ri) i=0,1 2MOV direct,#data01110101Directdatadirect #data2MOV Ri,A 1111011i (Ri)A i=0,1 1MOV Ri,direct1110011i direct (Ri)(direct) 2MOV Ri,#d
15、ata0111010i data (Ri)#data 1MOV DPTR,#data1610010000data158data70(DPTR) #data16把 16 位常数装入数据指针 2MOVX A,DPTR 11100000 A(DPTR)把 DPTR 所对应的外部 RAM 地址中的内容传送给累加器 A2MOVX A,Ri1110001i A (Ri) i=0,1 2MOVX DPTR,A11110000 (DPTR) A 结果不影响 P 标志。2MOVX Ri,A1110001i (Ri) A i=0,1,结果不影响 P 标志。2XCH A,Rn 11001rrr ARn A 与 Rn
16、 内容互换1XCH A,direct11000101 direct Adirect 1XCH A,Ri 1100011i A(Ri) i=0,1 1XCHD A,Ri1101011i A3-0(Ri)3-0 低 4 位交换,高4 位不变1SWAP A 11000100 (A) 3-0(A) 7-4 高、低 4 位互相交换1MOVC A,A+PC 10000011 A (A+PC)A+PC 所指外部程序存储单元的值送 A2MOVC A,A+DPTR 1001001 A (A+DPTR) A+DPTR 所指外 21 部程序存储单元的值送 APUSH direct11000000directSPSP
17、+1(SP)(direct)将 SP 加 1,然后将源地址单元中的数传送到 SP所指示的单元中去2POP direct 11010000direct(direct) (SP)SPSP-1将 SP 所指示的单元中的数传送到 direct 地址单元中,然后SPSP-12ADD A,Rn 00101rrr AA+Rn n=07 rrr=000111 1ADD A,direct 00100101 AA+direct 1ADD A,Ri 0010011i AA+(Ri) i=0,1 1ADD A,#data 00100100 data AA+#data 1ADDC A,Rn 00111rrr AA+Rn
18、+Cy n=07 rrr=000111 1ADDC A,direct00110101 direct AA+direct+Cy 1ADDC A,Ri0011011i AA+(Ri)+Cy i=0,1 1ADDC A,#data00110100 data AA+#data+Cy 1SUBB A,Rn 1001rrr AA-Rn-Cy n=07 rrr=000111 1SUBB A,direct10010101 direct AA-direct-Cy 1SUBB A,Ri1001011i AA-(Ri)-Cy i=0,1 1SUBB A,#data10010100 data AA-#data-Cy
19、1DA A 11010100 BCD 码加法调正指令1INC A 00000100 AA+1 影响 PSW 的 P标志1INC Rn 00001rrr RnRn+1 n=07 rrr=0001111INC direct 0101 direct directdirectt+1 1INC Ri 0000011i (Ri)(Ri)+1 i=0,1 1INC DPTR 10100011 DPTRDPTR+1 2DEC A 00010100 AA-1 影响 PSW 的 P标志1DEC Rn 00011rrr RnRn-1 n=07 rrr=0001111DEC direct 00010101 direc
20、t directdirectt+1 1DEC Ri 0001011i (Ri)(Ri)-1 i=0,1 1MUL AB 10100100 BAA*B 无符号数相乘,高位存 B,低位存 A4DIV AB 10000100 AA/B 的商BA/B 的余数无符号数相除,商存 A,余数存B4ANL A,direct01010101 direct AAdirect 按位相与 1ANL A,Rn 01011rrr AARn n=07 rrr=0001111ANL A,Ri 0101011i AA(Ri) i=0,1 1ANL A,#data 01010100 data AA#data 1ANL direc
21、t,A01010010 direct DirectdirectA 不影响 PSW 的P 标志1ANL direct,#data01010011 direct datadirectdirect#data不影响 PSW 的P 标志2ORL A,direct01000101 direct AAdirect 按位相与 1ORL A,Rn 01001rrr AARn n=07 rrr=0001111ORL A,Ri 0100011i AA(Ri) i=0,1 1ORL A,#data 01000100 data AA#data 1ORL direct,A01000010 direct Directdir
22、ectA 不影响 PSW 的P 标志1ORL direct,#data01000011 direct datadirectdirect#data不影响 PSW 的P 标志2XRL A,direct01100101 direct AAdirect 按位相与 1XRL A,Rn 01101rrr AARn n=07 rrr=0001111XRL A,Ri 0110011i AA (Ri) i=0,1 1XRL A,#data 01100100 data AA#data 1XRL direct,A01100010 direct DirectdirectA 不影响 PSW 的P 标志1XRL dire
23、ct,#data01100011 direct datadirectdirect#data不影响 PSW 的P 标志2CLR A 11100100 (A)00H A 中内容清 0,影响 P 标志1CPL A 11110100(A)( )_ A A 中内容按位取反,影响 P 标志1RL A 00100011 A7-A0 循环左移 1RLC A 00110011 CyA7-A0带进位循环左移,影响 Cy 标志1RR A 00000011 A7-A0 循环右移 1RRC A 00010011 CyA7-A0带进位循环右移,影响 Cy 标志1LJMP addr1600000010 addr158 ad
24、dr70PCaddr16 程序跳转到地址为 addr16 开始的地方执行2AJMP addr11a10a9a800001addr70PC10-0addr11 程序跳转到地址为PC1511addr11开始的地方执行, 2k 内绝对转移2SJMP rel 10000000relPCPC+rel -80H( -128)7FH(127)短转移2JMP A+DPTR01110011 PCA+DPTR 64K 内相对转移 2JZ rel 0110000 若 A=0,则 PCPC+rel, 否则程序顺序执行 2JNZ rel 01110000 若 A0,则 PCPC+rel, 否则程序顺序执行 2CJNE
25、A,#data,rel10110100 data rel若 A#data, 则 PCPC+rel,否则顺序执行;若 A#data,则 Cy=1,否则Cy=02CJNE Rn,#data,rel10111rrrdata rel若 Rn#data,则 PCPC+rel,否则顺序执行;若 Rn#data,则 Cy=1,否则Cy=02CJNE Ri,#data,rel1011011idata rel若(Ri)#data,则 PCPC+rel,否则顺序执行;若(Ri)#data,则 Cy=1,否则Cy=02CJNE A,direct,rel10110101direct rel若 A(direct) ,则
26、 PCPC+rel,否则顺序执行;若(A)(direct) ,则 Cy=1,否则 Cy=02DJNZ Rn,rel 11011rrr rel RnRn-1,若 Rn0,则 PCPC+rel, 否则顺序执行 2DJNZ direct,rel11010101direct rel(direct)(direct)-1,若(direct)0,则 PCPC+rel,否则顺序执行 2ACALL addr11a10a9a810001addr70PC PC+2SP SP+1,SPPC0-7SP SP+1,SPPC8-15PC0-10 addr112LCALL addr1600010010addr158addr7
27、0PCPC+3SP SP+1,SPPC0-7SP SP+1,SPPC8-15PC addr162RET 00100010 PC8-15 SP, SP SP-1PC0-7 SP, SP SP-1子程序返回指令2RETI 00110010 PC8-15 SP, SP SP-1PC0-7 SP, SP SP-1中断返回指令2NOP 00000000 空操作 消耗 1 个机器周期MOV C,bit 10100010 C y bit位传送指令,结果影响 Cy 标志。2MOV bit,C 10010010 bit C y位传送指令,结果不影响PSW。2CLR C 11000011 C y 0 位清 0 指
28、令,结果影响 Cy 标志。1CLR bit 11000010 bit bit 0 位清 0 指令,结果不影响PSW。1SETB C 11010011 C y1 位置 1 指令,结果影响 Cy 标志。1SETB bit 11010010 bit bit 1 位置 1 指令,结果不影响PSW。1ANL C,bit 10000010 bit C y C ybit位与指令 2ANL C,/bit 10110010 bit C y C y bit 位与指令 2ORL C,bit 01110010 bit C y C ybit位或指令 2ORL C,/bit 10100010 bit C y C y bi
29、t 位或指令 2CPL C 10110011 C y Cy位取反指令 2CPL bit 10110010 Bitbit位取反指令,结果不影响 Cy 2JB bit,rel 00100000 bit rel 若 bit=1,则 PCPC+rel,否则顺序执行2JNB bit,rel 00110000 bit rel 若 bit=0,则 PCPC+rel,否则顺序执行2JBC bit,rel 00010000 bit rel 若 bit=1,则 PCPC+rel,(bit) 0,否则顺序执行 2助记符格式 机器码(B) 相应操作 机器周期JC rel 01000000 若 CY=0,则 PCPC+
30、rel,否则顺序执行 2JNC rel 01010000 若 CY0,则 PCPC+rel,否则顺序执行 23.1.3 常用伪指令单片机汇编语言程序设计中,除了使用指令系统规定的指令外,还要用到一些伪指令。伪指令又称指示性指令,具有和指令类似的形式,但汇编时伪指令并不产生可执行的目标代码,只是对汇编过程进行某种控制或提供某些汇编信息。下面对常用的伪指令作一简单介绍。1. 定位伪指令 ORG格式:标号: ORG 地址表达式功能:规定程序块或数据块存放的起始位置例如: ORG 1000H ;表示下面指令 MOV A,#20H 存放于 1000H 开始的单元。MOV A,#20H2. 定义字节数据伪
31、指令 DB格式:标号: DB 字节数据表功能:字节数据表可以是多个字节数据、字符串或表达式,它表示将字节数据表中的数据从左到右依次存放在指定地址单元。例如: ORG 1000HTAB:DB 2BH,0A0H, A,2*4 ;表示从 1000H 单元开始的地方存放数据 2BH,0A0H,41H(字母 A 的 ASCII 码) ,08H 。3. 定义字数据伪指令 DW格式:标号: DW 字数据表功能: 与 DB 类似,但 DW 定义的数据项为字,包括两个字节,存放时高位在前,低位在后。例如: ORG 1000HDATA:DW 324AH,3CH ; 表示从 1000H 单元开始的地方存放数据32H
32、,4AH,00H,3CH(3CH 以字的形式表示为 003CH) 。4. 定义空间伪指令 DS格式:标号: DS 表达式功能:从指定的地址开始,保留多少个存储单元作为备用的空间。例如: ORG 1000HBUF:DS 50TAB:DB 22H ;表示从 1000H 开始的地方预留 50(1000H1031H)个存储字节空间,22H 存放在 1032H 单元。5. 符号定义伪指令 EQU 或=格式:符号名 EQU 表达式符号名=表达式功能:将表达式的值或某个特定汇编符号定义为一个指定的符号名,只能定义单字节数据,并且必须遵循先定义后使用的原则,因此该语句通常放在源程序的开头部分。例如: LEN=
33、10SUM EQU 21HMOV A,#LEN ;执行指令后,累加器 A 中的值为 0AH6. 汇编结束伪指令 END格式:标号: END 功能:汇编语言源程序结束标志,用于整个汇编语言程序的末尾处。32 计划学生学习的设想321 学习目的知识目标:1数据传送指令2算术运算指令3逻辑运算指令4控制转移指令5位操作指令能力目标:1.能够正确选择指令。 2.能判断指令书写的正确与否,并能改正322 学习条件1 教室:用于讨论和自学。2 多媒体:用于预备知识的讲授及答辩。3 单片机实训室:拥有 50 台微型计算机和 50 套启东 Dais 单片机实验箱,启东 Dais 单片机实验箱内部嵌有仿真器并提
34、供开发环境,可完成抢答器设计的软硬件的验证工作。4 虚拟仿真实训室:拥有 1 台服务器和 25 台微型计算机,并装有服务器版的单片机仿真软件 Proteus。Proteus 可完成 MCS-51 单片机的软硬件仿真,可初步验证抢答器的软硬件设计方案。也可用于自学。5.数字化综合服务平台:该平台是我院购置的大型教学软件,教师和学生都可登录。教师可上载教学材料供学生使用。在本项目中,该平台为学生复习和自学提供大量资源。323 项目技术要求(1)八个人同时抢答。(2)谁先按下抢答按钮,谁旁边的灯亮。(3)在大显示屏上显示抢答人的编号。324 学习团队按每班 50 人计算,25 台微机,并考虑到机器有
35、可能损坏,大约 23 人一组。325, 项目设计任务书要求学生填写任务书。学习情境 抢答器项 目 名 称 抢答器的设计与制作专 业 班 级项目设计人页 数: 一、项目描述1、项目工作要求(任务书)(1)在掌握寻址方式的基础上,掌握指令系统,理解指令的功能和使用。(2)通过抢答器的设计与制作,了解指令的机器码格式和助记符格式,掌握手工汇编和机器汇编的过程,学会查看各种报表文件。图2、已具备资料(1)抢答器基本原理图(2)单片机应用技术教材二、项目资讯1、寻址方式。2、指令格式。3、指令系统(111 条) 。三、项目计划1、根据设计要求,选择确定设计方案,分析并实现原理图。2、确定本工作任务需要使
36、用的工具和辅助设备,填写下表。项目名称各工作流程 使用的工具 辅助设备 备注四、项目决策1、分小组讨论,分析阐述各自对抢答器电路的理解和软件设计思路。2、老师指导确定最终设计方案和设计电路。3、每组选派一位成员阐述设计方案。五、项目实施1、设计前的准备工作具体有哪些?2、设计时要注意哪些事项?3、选择电路的流程?主要注意什么问题?4、抢答器电路的元件如何选择?选择元件型号时的注意事项?5、如何对设计好的原理图进行检测?如何排除错误处?6、如何对设计好的程序进行检测?如何排除错误处?7、你认为完成该项工作需要注意哪些事项?8、工作过程中如何提升效率?提出你的建议。9、对整个工作的完成进行记录。六
37、、项目检查1、学生填写检查单。2、教师填写评价表。3、撰写抢答器的设计说明书。七、项目评估1、小组讨论,自我评述完成情况及发生的问题,小组共同给出提升方案和效率的建议。2、小组准备汇报材料,每组选派一人进行汇报。3、老师对方案评价说明。4、整理相关资料,列表说明项目资料及资料来源,注明存档情况。 项目名称项目资料名称 资料来源 存档备注5、成品上交资料备注。项目名称上交资料名称七、备注(需要注明的内容)指导老师评语:项目完成人签字: 日期: 年 月 日指导老师签字: 日期: 年 月 日33 决策项目方案的设计与选择331 方案一抢答器由单片机以及外围电路组成,由于采用单片机,使得外围电路非常简
38、单,但是功能并不比一般的抢答器少。功能描述如下: 1、 涵盖抢答题、抢答限时、选手答题计时及犯规组号抢答器具有抢答自锁,灯光指示、暂停复位、电子音乐报声、自动定时等功能 2、 工作模式:自动/手控 任意切换。 3、 时间设定范围: 答题时间 0-95 秒或 0-995 秒可调,二种型号任选。 抢答规定时限 0-30 秒可调。 具备计时临时暂停,再启动功能。 4、 面板上设有组号与计时窗口,显示清晰,同步显示,互不干扰。外接输出口可配套大屏幕抢答组号与计时显示屏!打开电源开关,电源指示灯亮,组别显示器应显 0,否则请按一下复位键。 5、 集抢答器、记分器、数显倒计时器于一机 6、 积木式结构,1
39、12 组任意连接。 7、 计算机式小键盘完成所有功能设定及各种操作。 8、 基本分、每组次加减分及数显倒计时时间可任意设定。 9、 可设定抢答、答题两种倒计时时间。 10、 准确分辨偷答功能。 11、 具抢答、偷答两种声音提示。共用的喇叭中发出优美的电子音乐声,电子音乐的产生是利用 VD1、VD2、VD3 的垫垒电压,给音乐片提供 2V 左右的电压,使其音乐集成块工作。C3 起改善音质作用。 单片机实现抢答器原理描述 电路进入就绪状态,等待抢答。主持人发布抢答命令后,若有人按下按键,程序判断是谁最先按下,然后从 P10P16 输出抢答者号码的七段段码值,经 GAL16V8 驱动,送数码管显示,
40、并封锁键盘、禁止其他人按键的输入,从而实现抢答功能。当要进行下一次抢答时,由主持人先按下复位按键 SW,电路复位,进入下一次抢答就绪状态。D3 作状态指示,抢答就绪 D3 亮,有人抢答时 D3 灭。332 方案二抢答器的一般构成框图如图 3.8 所示。它主要由开关阵列电路、触发锁存电路、编码器、7 段显示器几部分组成。下面逐一给予介绍。图 3.8 抢答器的组成框图()开关阵列电路该电路由多路开关所组成,每一竞赛者与一组开关相对应。开关应为常开型,当按下开关时,开关闭合;当松开开关时,开关自动弹出断开。()触发锁存电路当某一开关首先按下时,触发锁存电路被触发,在输出端产生相应的开关电平信息,同时
41、为防止其它开关随后触发而产生紊乱,最先产生的输出电平变化又反过来将触发电路锁定。若有多个开关同时按下时,则在它们之间存在着随机竞争的问题,结果可能是它们中的任一个产生有效输出。()编码器编码器的作用是将某一开关信息转化为相应的 8421BCD 码,以提供数字显示电路所需要的编码输入。()段显示译码器译码驱动电路将编码器输出的 8421BCD 码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。()数码显示器数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管。本设计提供的为 LED数码管。333 方案三抢答器同时供 8 名选手或 8 个代表队比赛,分别用 8 个按
42、钮 S0 S7 表示。设置一个系统清除和抢答控制开关 S,该开关由主持人控制。抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在 LED 数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如 30 秒) 。当主持人启动“开始“键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间 0.5 秒左右。参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。如果定时时间已到,无人抢答,本次抢答无
43、效,系统报警并禁止抢答,定时显示器上显示 00。其工作原理为:接通电源后,主持人将开关拨到“清除“状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置?quot;开始“状态,宣布“开始“抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作“清除“和“开始“状态开关。334 方案的选择方案的选择从以下几个方面进行选择:1.学生是否具备项目所需的知识?2实训室是否具备项目所需的设备?3实训室是否能提供项目所需的
44、器件?4抢答器是否符合行业规范?5项目所需的资金是否少?以上五个方面肯定回答越多,则是优选方案。34 实施制作过程341 硬件的制作342 软件的编制YNYN开始初始化快速扫描键盘第一行有按键?第二行有按键?显示相应序号显示相应序号源程序设计如下:BANK0_REG EQU 00H ;BANK1_REG EQU 08H ;BANK2_REG EQU 10H ;BANK3_REG EQU 18H ;LED_MAX_BITS EQU 02H ;HD_K1_LED EQU P2.0HD_K2_LED EQU P2.1HD_K3_LED EQU P2.2HD_K4_LED EQU P2.3HD_K5_
45、LED EQU P2.4HD_K6_LED EQU P2.5HD_K7_LED EQU P2.6HD_K8_LED EQU P2.7HD_KC1 EQU P1.4HD_KC2 EQU P1.5LED_SCL EQU P1.6LED_SDA EQU P1.7LED_DIS_BUF EQU 30HORG 0000HLJMP STARTORG 0100HSTART:CLR EAMOV PSW,#BANK0_REGMOV SP,#0DFHMOV R0,#20HMOV R7,#80H-20HLCALL PUB_CLEAR_RAM1 ;LCALL LED_CLR_FULLLCALL LED_DISP_DA
46、TAMOV P2,#0FFHSETB HD_KC1SETB HD_KC2START_A: CLR HD_KC1SETB HD_KC2MOV A,P1ANL A,#0FHCJNE A,#0FH,PRO_L1SETB HD_KC1CLR HD_KC2MOV A,P1ANL A,#0FHCJNE A,#0FH,PRO_L2SJMP START_A;-PRO_L1: ;MOV P2,#0FFHJNB ACC.0,PRO_L1_K1JNB ACC.1,PRO_L1_K2JNB ACC.2,PRO_L1_K3JNB ACC.3,PRO_L1_K4SJMP START_APRO_L1_K1:CLR HD_K
47、1_LEDMOV LED_DIS_BUF,#1SJMP PRO_DISPPRO_L1_K2:CLR HD_K2_LEDMOV LED_DIS_BUF,#2SJMP PRO_DISPPRO_L1_K3:CLR HD_K3_LEDMOV LED_DIS_BUF,#3SJMP PRO_DISPPRO_L1_K4:CLR HD_K4_LEDMOV LED_DIS_BUF,#4SJMP PRO_DISP;-PRO_L2: ;MOV P2,#0FFHJNB ACC.0,PRO_L2_K1JNB ACC.1,PRO_L2_K2JNB ACC.2,PRO_L2_K3JNB ACC.3,PRO_L2_K4SJMP START_APRO_L2_K1:CLR HD_K5_LEDMOV LED_DIS_BUF,#5SJMP PRO_DISPPRO_L2_K2:CLR HD_K6_LEDMOV LED_DIS_BUF,#6SJMP PRO_DISPPRO_L2_K3:CLR HD_K7_LEDMOV LED_DIS_BUF,#7SJMP PRO_DISPPRO_L2_K4:CLR HD_K8_LEDMOV LED_DIS_BUF,#8;-