三人抢答器模拟实验报告
三人抢答器模拟实验报告
一. 目的与要求
1. 目的
(1) 培养学生综合利用MCS——51单片机的软硬件知识进行程序设计的能力,解决一定实际问题。
(2) 进一步加深对MCS——51单片机的内部结构和程序设计方法的理解。
(3) 提高学生建立程序文档,归纳总结的能力。
2. 基本要求
(1) 要求用MCS——51单片机知识完成程序的设计。
(2) 源代码程序要求必要的注释。
3. 创新要求
在基本要求达到后,可以进行创新设计,更加完善程序功能。
二. 系统总体设计
基于MCS——51单片机的智能抢答器的设计,主要实现以下几种功能:
(1) 当主持人按下控制按钮时,抢答开始,蜂鸣器响起,提醒选手可以开始抢答。
(2) 从开始抢答起,自动计时5秒抢答时间,在此期间如有选手要回答问题,那么可以按下自己的抢答开关,若抢到,与之相对应的LED灯亮起。
(3) 如在规定抢答时间内,无人抢答问题,那么此题作废,主持人可按键进行下一题抢答。
三. 硬件系统设计
该抢答器的设计是基于MCS——51单片机的,使用到的硬件主要有8051的P1和P3口,LED灯,外部中断INT0和定时/计数器0
1.使用的三个开关SW1、SW2、SW3分别代表的是三名选手的控制按键,选用P1口中的P1.0、P1.1、P1.2表示三名选手。
2.使用的三盏LED灯表示相应的选手的指示灯,亮起即表示该名选手抢得该题。
3.外部中断0与K1相连,功能为主持人按键,按下此开关抢答即开始。
4.P3.3与蜂鸣器相连。
四. 程序流程图
五. 程序
ORG 8000H LJMP MAIN ORG 8003H 外部中断0入口地址 LJMP INT
ORG 800BH 计时器0入口地址 LJMP TOS
MAIN: SETB EA
SETB EX0 SETB IT0;开中断 MOV TMOD,#01H;设置T/C0
WAIT: JB P3.5,STOP;判别抢答位
JNB P3.4,WAIT SETB TR0;开始计时 SETB ET0 MOV R7, #00H
Loop: MOV R6, #15H
DJNZ R6, $ DJNZ R7, Loop CPL P3.3;蜂鸣器响起 JNB P1.3,L1 JNB P1.4,L2 JNB P1.5,L3 LJMP WAIT L1: CPL P1.0 CLR P3.4 CLR ET0
LJMP WAIT L2: CPL P1.1 CLR P3.4 CLR ET0 CLR TR0 LJMP WAIT L3: CPL P1.2 CLR P3.4 CLR ET0 CLR TR0 LJMP WAIT
TOS: MOV TL0,#00H
MOV TH0,#4CH;T0中断为50ms INC R0 MOV A,R0 CJNE A,#100,NEXT;抢答时间设置为50ms MOV R0,#00H SETB P3.5
NEXT: RETI
STOP: CLR TR0
CLR ET0
SETB P1.0 SETB P1.1 SETB P1.2 MOV R0,#00H
LJMP WAIT
INT: CPL P3.5 SETB P3.4 RETI END
六. 调试程序的方法
在调试的过程中,可采用单步执行的方法调试,在单步执行的过程中可穿插使用运行至光标处,然后加入中断,执行中断任务。
七. 所设计问题的不足和改进方案
由于时间和设备资源限制,本设计内容较为简单,而且功能比较单一,且选手抢答后开关不能自己复位,需靠选手自行将开关拨回。
八.收获体会
我们选的题目是四人抢答器,由于实验设备的限制,主要是LED数码管不能使用的限制,我们将实验改成三人抢答器,这样做的原因是当P1口与排线相连时,只有3个开关可以与P1口相连,那么着太实验仪器就只能完成三人抢答器,这与开始的设想是有一定的差距的。通过这次单片机的设计实验,我学会了处理问题要结合实际,要学会灵活。在这个过程中我同时体会到理论与实际的不同之处,有可能你的理论设计是正确的。但不一定可以运行出来,这样就必须要理论结合实际,经过反复的尝试才可以得出正确的结果。
在这次实验中,我们也遇到过无法解决问题的时候,这时候会不知所措,在这个时候我们也曾想过放弃,但当我们在坚持下去时,问题也会得到解决,通过这次的课程设计,更加坚定了我们的人生信条:决不轻言放弃!
由于设计时间和机房开放时间过短的限制,加上是初学者,知识不足,经验有限,有些问题不能得到完美的解答,难免会有不足之处,请王老师加以指正,不胜感激。
设计人: 唐诚050538 2007-12-31