单片机原理与接口技术智力抢答器


     单片机课程设计 课程名称: 单片机原理与接口技术 实验项目: 智力抢答器 一、 设计目的 现如今电视节目日益丰富其中的竞赛环节也越来越多,其中智力抢答器是不可或缺的器材。在本学期学习了单片机这门课之后,我们小组成员觉得可以试着自己来实现抢答器的功能,令它能准确、公正、直观地判断出第一抢答者,并通过抢答器的数码管显示和蜂鸣器报警指出抢答组别。我们最终做出一种数字式抢答器的设计方案,通过Proteus设计完成,利用WAVE6000软件编辑程序,仿真验证,适用于多种竞赛场合。 二、 设计要求 设计一个用于智力竞赛的抢答器,其功能的实现是由单片机控制的,满足 (1)能容许2-6组进行抢答。 (2)能显示抢答组号。 (3)各组记分,并能记分显示。 (4)比赛结束时,能发出报警声 三、 设计方案 在设计中采用的单片机是AT89C51,它主要负责控制各个部分协调工作。 P1.0和P1.7由裁判控制,分别是抢答开始和停止键。P1.1—P1.6是6组抢答的输入口,按下对应按钮即为抢答。P0口为数码管的段选口,位选口用的是P2口的低4位,外部中断0。外部中断1,P3.3用于控制有组答题完成后结束计时。P3.4—P3.5分别实现了时间的加一和减一。P3.6为蜂鸣器的控制口。外部中断和内部中断并存,单片机有硬件复位端,只要输入持续4个机器周期的高电平即可实现复位。外部还接有蜂鸣器用来发出报警音。采用7SEG-MPX4-CC-BLUE显示,它是共阴极的由高电平点亮。系统仿真用到了WAVE6000和Proteus软件,通过仿真可以显示所设计系统的功能,对于程序的调试等有很大的帮助。 四、 实验器件 采用单片机AT89C51,10k的上拉电阻、若干按钮、扬声器、晶体振荡器X1、电容C1和C2、带极性的电容C3、排阻RESPACK-8以及数码管7SEG-MPX4-CC-BLUE。 五、 总体框图 六、 硬件设计 总体设计电路图 整个系统分为:外部振荡电路、复位电路、 加减分电路及蜂鸣器报警电路、 抢答电路及裁判控制开始停止电路、数码管显示电路几个部分。 本设计的核心是单片机AT89C51。 AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。  AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 振荡电路使用外部振荡电路,由两个1nF的电容和一个晶体振荡器组成 外部震荡电路 外部中断和内部中断并存,单片机有硬件复位端,只要输入持续4个机器周期的高电平即可实现复位。硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值。因为本设计功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软复位。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序开始。 复位电路 P3.3接口的开关按下意味着答题结束,P3.4接口开关表示给抢答相应组加上一分,P3.5接口开关按下表示相应组减去一分。 裁判示意开始抢答、有组抢答成功、违规抢答、最后5s倒计时都会触发蜂鸣器发出警报。P3.6为蜂鸣器控制口。 加减分电路及蜂鸣器报警电路 P1.0和P1.7由裁判控制,分别是抢答开始和停止键。P1.1-P1.6是6组抢答的输入口,按下按钮抢答。 抢答电路及裁判控制开始停止电路 采用排阻RESPACK-8来做为上拉电阻,排阻一般应用在数字电路上,通常作为某个并行口的上拉或者下拉电阻用。排阻具有方向性,与色环电阻相比具有整齐、少占空间的优点,比用若干只固定电阻更方便。 数码管7SEG-MPX4-CC-BLUE,它是共阴极的数码管 允许抢答后,开始倒计时从15s知道0s。在最后5s蜂鸣器会发出警报。 第三组抢答,答题时间有30s,在最后5s蜂鸣器会发出警报。 若还没有允许抢答就有人按下抢答器,那么蜂鸣器会发出警报,并显示是哪一组违规抢答。如图为第一组违规抢答 如图为第三组回答正确加一分 如图为第三组回答错误减一分 电路具有记忆功能,每次抢答后都能看到抢答组的分数。如图表示第三组已经获得4分 七、软件编程 OK EQU 20H RING EQU 22H ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040H MAIN: MOV R1,#0FH MOV R2,#01EH MOV TMOD,#11H;设置未定时器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH;越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX1;允许3个中断,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;开始就运行定时器,初始显示888如果想重新计数,重置TH1/TL1 ;=====查询程序===== START: MOV R5,#00H MOV R4,#00H MOV R3,#00H ACALL DISPLAY;未开始抢答时候显示888 JB P1.0,NEXT ACALL DELAY JB P1.0,NEXT;去抖动,如果“开始键“按下就向下执行,否者跳到非法抢答查询 ACALL BARK;按键发声 MOV A,R1 MOV R6,A;送R1->R6,因为R1中保存了抢答时间 SETB OK;抢答标志位,用于COUNT只程序中判断是否查询抢答 MOV R3,0AH;抢答只显示计时,灭号数 AJMP COUNT;进入倒计时程序,“查询有效抢答的程序“在COUNT里面 NEXT:JNB P1.1,FALSE1 JNB P1.2,FALSE2 JNB P1.3,FALSE3 JNB P1.4,FALSE4 JNB P1.5,FALSE5 JNB P1.6,FALSE6 AJMP START ;=====非法抢答处理程序===== FALSE1: ACALL BARK;按键发声 MOV R3,#01H AJMP ERROR FALSE2: ACALL BARK MOV R3,#02H AJMP ERROR FALSE3: ACALL BARK MOV R3,#03H AJMP ERROR FALSE4: ACALL BARK MOV R3,#04H AJMP ERROR FALSE5: ACALL BARK MOV R3,#05H AJMP ERROR FALSE6: ACALL BARK MOV R3,#06H AJMP ERROR ;=====INT1(答题对错加减分数程序)===== INT1SUB:MOV R4,#0AH MOV R5,#0AH JNB P3.4,INC1 JNB P3.5,DEC1 JNB P1.7,BACK1 ACALL DISPLAY AJMP INT1SUB MOV A,R3 SUBB A,#01H JZ XXY1 SUBB A,#02H JZ XXY2 SUBB A,#03H JZ XXY3 SUBB A,#04H JZ XXY4 SUBB A,#05H JZ XXY5 SUBB A,#06H JZ XXY6 XXY1:MOV R7,41H XXY2:MOV R7,42H XXY3:MOV R7,43H XXY4:MOV R7,44H XXY5:MOV R7,45H XXY6:MOV R7,46H INC1:INC R7 CJNE R3,#01H,L1 MOV 51H,R7 L1:CJNE R3,#02H,L2 MOV 52H,R7 L2:CJNE R3,#03H,L3 MOV 53H,R7 L3:CJNE R3,#04H,L4 MOV 54H,R7 L4:CJNE R3,#05H,L5 MOV 55H,R7 L5:CJNE R3,#06H,LL MOV 56H,R7 LL:ACALL DELAY1 AJMP INT1SUB DEC1:DEC R7 ACALL DELAY1 AJMP INT1SUB BACK1:RETI ;=====倒计时程序(抢答倒计时和回答倒计时都跳到改程序)===== COUNT: MOV R0,#00H;重置定时器中断次数 MOV TH1,#3CH MOV TL1,#0B0H;重置定时器 RECOUNT:MOV A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6 MOV B,#0AH DIV AB;除十分出个位/十位 MOV 30H,A;十位存于(30H) MOV 31H,B;个位存于(31H) MOV R5,30H;取十位 MOV R4,31H;取个位 MOV A,R6 SUBB A,#07H JNC LARGER;大于5s跳到LARGER,小于等于5s会提醒 MOV A,R0 CJNE A,#0AH,FULL;1s中0.5s向下运行 CLR RING AJMP CHECK FULL:CJNE A,#14H,CHECK;下面时1s的情况,报警,显示号数并清R0,重新计数 SETB RING MOV A,R6 JZ QUIT;计时完毕 MOV R0,#00H DEC R6;一秒标志减1 AJMP CHECK LARGER: MOV A,R0 CJNE A,#14H,CHECK;如果1s向下运行,否者跳到查“停/显示“ DEC R6;计时一秒R6自动减1 MOV R0,#00H CHECK: JNB P1.7,QUIT;如按下停止键退出 ACALL DISPLAY JB OK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUNT ACCOUT:JNB P1.1,TRUE1 JNB P1.2,TRUE2 JNB P1.3,TRUE3 JNB P1.4,TRUE4 JNB P1.5,TRUE5 JNB P1.6,TRUE6 AJMP RECOUNT QUIT:CLR OK;如果按下了“停止键“执行的程序 CLR RING AJMP START ;=====正常抢答处理程序===== TRUE1: ACALL BARK;按键发声 MOV A,R2 MOV R6,A;抢答时间R2送R6 MOV R3,#01H MOV R7,41H CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNT TRUE2:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H MOV R7,42H CLR OK AJMP COUNT TRUE3:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H MOV R7,43H CLR OK AJMP COUNT TRUE4:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#04H MOV R7,44H CLR OK AJMP COUNT TRUE5:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H MOV R7,45H CLR OK AJMP COUNT TRUE6:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H MOV R7,46H CLR OK AJMP COUNT ;=====犯规抢答程序===== ERROR:MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3;犯规号数暂存与(34H) HERE: MOV A,R0 CJNE A,#0AH,FLASH;0.5s向下运行->灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH;三灯全灭 AJMP CHECK1 FLASH:CJNE A,#14H,CHECK1;下面系1s的情况,响并显示号数并清R0,重新计 SETB RING MOV R0,#00H MOV R3,34H;取回号数 MOV R5,#0BH MOV R4,#0BH;显示FF和号数 AJMP CHECK1 CHECK1:JNB P1.7,QUIT1 ACALL DISPLAY AJMP HERE QUIT1: CLR RING CLR OK AJMP START ;=====显示程序===== DISPLAY:MOV 41H,51H MOV 42H,52H MOV 43H,53H MOV 44H,54H MOV 45H,55H MOV 46H,56H MOV DPTR,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出, MOV A,r5 MOVC A,@A+DPTR MOV P2,#01H MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,r4 MOVC A,@A+DPTR MOV P2,#02H MOV P0,A ACALL DELAY MOV A,r3 MOVC A,@A+DPTR MOV P2,#04H MOV P0,A ACALL DELAY MOV A,R7 MOVC A,@A+DPTR MOV P2,#08H MOV P0,A ACALL DELAY RET DAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;“灭“,“1“,“2“,“3“,“4“,“5“,“6“,“7“,“8“,“9“,“灭“,“F“ DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;第一个为零,其他与上相同,因为十位如果为零显示熄灭 ;====加减时间延时(起到不会按下就加N个数)====== DELAY1: MOV 35H,#08H LOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RET ;=====延时(显示和去抖动用到)===== DELAY: MOV 32H,#12H LOOP: MOV 33H,#0AFH LOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET ;=====发声程序===== BARK: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING;按键发声 RET ;=====TO溢出中断(响铃程序)===== T0INT: MOV TH0,#0ECH MOV TL0,#0FFH JNB RING,OUT; CPL P3.6;RING标志位为1时候P3.6口不短取反使喇叭发出一定频率的声音 OUT: RETI ;=====T1溢出中断(计时程序)===== T1INT: MOV TH1,#3CH MOV TL1,#0B0H INC R0 RETI END 八、 调试过程 首先新建一个Design,在其界面中画出完整的电路图,保存电路图。点击Source→Add/Remove Source Files添加编写好的程序。再点击Source→Build All仿真。 初次调试没能成功发现时加载错了程序,因为错误地使用了重复的文件名所导致的。加载了正确的程序后有有发现了几处错误,像在某个注释前忘记加分号导致程序无法识别等。因为程序已近在WAVE6000上运行过所以出现错误较少。 终于得出了正确的仿真结果 软件没问题后发现整个系统功能并不能正常使用,数码管显示数字混乱。仔细检查后发现是因为把本应该是共阳的数码管错接成了共阴的。数码管纠正好后又发现显示计时的两位数字显示颠倒了,很明显是片选端的两条线接反了。 上述错误全部改正后,系统可以按要求正常工作了。 九、 设计总结 通过本次设计我学会了使用Proteus软件的基本操作,给我最大的教训就是在时间的过程中一定要认真仔细,在调试中很多问题就是因为粗心造成的。 这次课程设计中,我们学习到了许多关于实践的东西,这些在书本上无法学到。我们在课程设计过程中,需要对单片机AT89C51的性能及工作原理与一定程度的了解,需要自己上网查资料,了解它的相关参数,以便应用。虽然在课堂上学过不少设计的实例,但在实际操作中还是有一定的困难,这是我们缺乏实践的原因所致。应该经常参与实践,才能对自己所学到的东西有更好的应用。 在课程设计过程中,我们还自学了Proteus软件的基本操作,至于WAVE6000已近在实验中有所涉及。我已经掌握用Proteus进行电路图绘制与仿真。学习Proteus这一基本应用软件对我们将来的学习有很大的帮助,它可以设计许多常见的电路,以及对这些电路图进行调试和仿真。 十、 参考文献 单片机原理与及接口技术(第一版) 豆丁网 本文档由香当网(https://www.xiangdang.net)用户上传

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    单片机原理与接口技术实验指导书(2018修订)

    本课程是电子信息工程、通信工程、信息工程和自动化专业必修的专业实验课程。通过本课程的教学,使学生深刻体会到单片机原理与接口技术的应用,掌握汇编和C51语言的语法和技巧,熟悉电子系统的设计和调试过...

    1年前   
    372    0

    基于凌阳单片机的红外通信接口设计

    科 研 训 练 报 告报告题目:基于凌阳单片机的红外通信接口设计姓 名 院(系) 电气与电子工程学院 ...

    1个月前   
    79    0

    (汇编语言、微机原理及接口技术)实验交通灯

     课程设计说明书 课程设计名称: 微机原理与接口技术课程设计 课程设计题目: 微机打印口外接交通灯模拟LED显示器 学 院 名 称: 信...

    3个月前   
    159    0

    《微机系统原理与接口技术》课程教学大纲

    《微型计算机系统原理与接口技术》课程教学大纲     课程编号:                        适用专业:集成电路设计、嵌入式系统 学时数:80(其中实验16)    ...

    7年前   
    6535    0

    微机原理与接口技术 实验报告一

    评阅微机原理与接口技术 实验报告一姓名 匡越 学号 1715211016 时间 地点 实验题目 ...

    2年前   
    705    0

    基于51单片机的8路智能抢答器

    抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

    4年前   
    2035    0

    单片机原理及应用试题答案

    单片机原理及应用试题答案

    2年前   
    795    0

    单片机原理及应用课程设计

    单片机课程设计数字音频频率测试仪班级:电气姓名:学号:日期:2010年X月X日 目录一、课程设计要求···········································1软硬...

    2年前   
    461    0

    单片机与微机原理课程设计

    一、课程设计(论文)的内容(1)设计并绘制硬件电路图;  (2)购买电子元器件并按电路图焊接到电路板上;   (3)编写程序并将调试好的程序固化到单片机中。

    1年前   
    401    0

    微机原理课程设计四路抢答器

    微机原理课程设计四路抢答器目 录摘要 1自动化专业微机原理课程设计任务书 2第一章 智能抢答器的设计背景 31.1抢答器的概念 31.2抢答器的设计背景 31.3课程设计要求 31....

    2个月前   
    86    0

    基于AT89C51单片机多人抢答器设计(无仿真)

     单位代码 学  号 分 类 号 ...

    2年前   
    315    0

    《单片机原理及应用》实验指导书(C语言)

    《 单 片 机 原 理 及 应用》实 验 指 导 书(C语言)XX大学物电学院微机教研室 XX2011前 言 由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,在...

    2年前   
    463    0

    实验6 接口与多态

    接口就是一些方法特征的集合

    4年前   
    1181    0

    抢答器设计心得

    抢答器设计心得  回顾上一周课程设计的时间,收获了很多,也付出了很多,周一至周二主要熟悉ewb软件的操作使用,学会仿真,周三至周四是看书查找资料,对相关元器件做一些了解,并把元器件布好线,以待...

    10年前   
    257    0

    基于AT89C51单片机的多人抢答器设计说明书(无仿真)

     单位代码 学  号 分 类 号 密 级 单片机课...

    2年前   
    387    0

    铁路四电接口工程

    厦深铁路四电接口工程 厦深高速铁路是需要多专业、多工种协同配合施工的系统工程。而目前在建的土建工程所涉及四电接口,是开展站后四电工程的基础,没有良好的基础,站后四电工程就谈不上高质量。 一...

    10年前   
    12668    0

    基于单片机的音乐喷泉论文(含原理图、PCB图、程序)

    咅乐喷泉控制器是咅乐喷泉的核心部分。在咅乐喷泉中,喷头的多姿造型和 缤纷的水下灯光都受喷泉控制器的控制。由于不同的喷泉对水泵和彩灯组数的要 求各不相同,因此可以设计一种简单、通用、组数可灵活扩充...

    3年前   
    1134    0

    铝合金熔铸加工技术原理

    铝合金熔铸加工技术原理 作者:王大伟 **铝业集团公司 一、铝合金熔炼方法 熔铸生产是铝及合金产品生产中最重要的工序过程,实现由固态向液态再向固态的转变,以及合金元素溶解于铝中的合金化过...

    8年前   
    8633    0

    抛丸清理机技术的原理

    抛丸清理机技术的原理工作时,磨料通过进料口进入抛头的中央,在抛头的中央有一个与抛头一起旋转的分丸轮,分丸轮外面是定向套,分丸轮把磨料通过定向套上的开口送到叶片靠近抛头中心的一端。抛丸清理机是依...

    2个月前   
    111    0

    铝熔铸加工技术原理之二

    铝熔铸加工技术原理之二            作者:**铝业集团王大伟 (接上篇) 4、铸造前的检化验 铝合金熔体在毛坯浇注前要进行检化验检测,主要的检测有三项。一是合金成分的化验、二...

    8年前   
    8121    0

    文档贡献者

    文***品

    贡献于2022-08-06

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档