基于AT89C51单片机的四路抢答器课程设计汇本.docx
《基于AT89C51单片机的四路抢答器课程设计汇本.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机的四路抢答器课程设计汇本.docx(12页珍藏版)》请在冰豆网上搜索。
![基于AT89C51单片机的四路抢答器课程设计汇本.docx](https://file1.bdocx.com/fileroot1/2022-11/27/93710c05-1f37-4d6b-8751-d74ffeb443e8/93710c05-1f37-4d6b-8751-d74ffeb443e81.gif)
基于AT89C51单片机的四路抢答器课程设计汇本
河北建筑工程学院
课程设计计算说明书
题目名称:
单片机原理及应用课程设计
院系:
机械工程学院
专业:
机械电子工程
班级:
机电112
学号:
2011322214
学生姓名:
孙宏财
指导教师:
张东辉
职称:
讲师
2014年7月3日
基于AT89C51单片机的抢答器设计
前言
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分为如下几个范畴。
1、在智能化仪表上的应用。
2、在工业控制中的应用。
3、在家电中的应用。
4、在计算机网络和通信领域中的应用。
5、单片机在医疗设备领域中的应用。
目前世界上单片机生产商很多,如INTEL、Motorola、NEC、AMD等公司其主流产品有几十个系列,几百个品种。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:
CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用单片机的应用介绍
一、硬件系统设计
1、硬件设计思路及系统框图
该系统采用AT89C51单片机作为控制核心,可以完成运算控制、信号识别、结果锁存、显示输出以及声音提示等功能。
由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。
系统具有灵活的可编程性,能方便地对系统进行功能的扩展和更改。
根据课程设计的任务要求,初步设计硬件系统框图如图1所示:
2、系统分析
系统由AT89C51单片机作为主体,系统的清零由手动按键完成,按键使RST脚获得高电平信号,系统复位。
LED数码管、发光二级管指示灯及蜂鸣器分别由单片机的P0口和P1口驱动。
开始按钮和各组选手按键接P3口,按下按键时向系统输入信号,由系统软件完成控制。
根据各部分电路组成,统计出该系统所需元器件如表1所示:
器件名称
规格型号
数量
微处理器
AT89C51
1
极性电容
10uF
1
电阻
3WTT10K
2
电容
30PF
2
晶振
12MHZ
1
按钮
6
七段共阳极数码管
1
发光二极管
蓝色
1
红色
4
扬声器
1
表1器材选型方案
3、抢答器总电路图
根据上述条件,设计出抢答器总电路图如图1所示。
其工作原理为:
接通电源后,抢答器处于上电状态,主持人按下“开始”按钮,蓝色的抢答提示灯亮起,宣布“开始”抢答,选手抢答,抢答完成后由系统判断组别、锁存编号、显示编号、扬声器和红色指示灯提示,其他按钮按键无效,直到主持人按下复位键。
下一轮抢答开始前主持人需进行复位操作,然后才能开始继续以上步骤。
2、软件系统设计
1、系统功能分析及程序流程图
主持人与4个(组)参赛者共计用6个按键,分别为主持人控制的抢答开始按键、清零按键及各组选手的抢答按键,抢答开始按键按下后EA由软件置位,CPU开中断,此后各组才可以抢答,每当有人按下抢答按钮时再将EA清零,关闭中断总允许,使其他队不能抢答,直到主持人将系统复位,同时通过设计程序分别完成锁存、显示、亮灯和发声等功能。
系统的复位由按键手动完成。
程序流程图如图2所示:
2、软件系统程序的编制
根据流程图,运用汇编语言编制抢答器程序如下:
ORG0000H
LJMPMAIN
ORG0003H
LJMPGROUP1
ORG000BH
LJMPGROUP3
ORG0013H
LJMPGROUP2
ORG001BH
LJMPGROUP4
ORG0030H
MAIN:
MOVP0,#0FFH;设置上电开始时无数码显示
CLRP1.5;P1.5清零,蜂鸣器静默
START:
MOVTMOD,#66H
MOVTH0,#0FFH
MOVTL0,#0FFH
MOVTH1,#0FFH
MOVTL1,#0FFH
SETBET0
SETBET1
SETBTR0
SETBTR1
SETBEX0
SETBIT0
SETBEX1
SETBIT1
NEXT1:
JNBP3.0,NEXT2;等待主持人按下“开始”键,跳转至NEXT2
SJMPNEXT1
NEXT2:
SETBEA;中断总允许开
CLRP1.0;P1.0清零,蓝色的“抢答开始指示灯”点亮
SETBP1.1
SETBP1.2
SETBP1.3
SETBP1.4
MOVA,#00H;将0传入A,等待显示
ACALLSQR;调用SQR数码管显示子程序,数码管显示0
SJMPSTART;跳回START,循环扫描直到有人抢答
GROUP1:
CLREA;一号抢答,之后中断总允许关闭,使其他选手操作无效
CLRP1.1;一号指示灯亮
SETBP1.0
SETBP1.2
SETBP1.3
SETBP1.4
MOVA,#01H;数字1送入A
MOVR2,A;将抢答选手编号锁存入寄存器R2
ACALLSQR;数码管显示1
ACALLSOUND;调用扬声器发声子程序
SJMP$;保持状态,直到系统复位
RETI
GROUP2:
CLREA;二号选手
CLRP1.2
SETBP1.0
SETBP1.1
SETBP1.3
SETBP1.4
MOVA,#02H
MOVR2,A
ACALLSQR
ACALLSOUND
SJMP$
RETI
GROUP3:
CLREA;三号选手
CLRP1.3
SETBP1.0
SETBP1.1
SETBP1.2
SETBP1.4
MOVA,#03H
MOVR2,A
ACALLSQR
ACALLSOUND
MOVTH0,#0FFH
MOVTL0,#0FFH
LJMP$
RETI
GROUP4:
CLREA;四号选手
CLRP1.4
SETBP1.0
SETBP1.1
SETBP1.2
SETBP1.3
MOVA,#04H
MOVR2,A
ACALLSQR
ACALLSOUND
MOVTH1,#0FFH
MOVTL1,#0FFH
LJMP$
RETI
SQR:
MOVDPTR,#TABLE;数码管显示字码子程序
MOVCA,@A+DPTR
MOVP0,A
RET
SOUND:
MOVR4,#25;扬声器发声子程序
LOOP1:
MOVR3,#25
LOOP2:
SETBP1.5
ACALLDELAY1
CPLP1.5
ACALLDELAY2
DJNZR3,LOOP2
DJNZR4,LOOP1
RET
DELAY1:
MOVR7,#10H;扬声器发声的延时程序
D1:
MOVR6,#10H
D2:
DJNZR6,D2
DJNZR7,D1
RET
DELAY2:
MOVR7,#10H
D4:
MOVR6,#20H
D3:
DJNZR6,D3
DJNZR7,D4
RET
TABLE:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;数码显示的查表程序
END
3、运用Keil软件进行程序的调试
将以上所编程序输入Keil软件中,创建工程,并选择设备为Atmel目录下的AT89C51单片机,调试无误后建造出所需目标,其结果如图4所示:
图4程序调试结果
3、基于Proteus和Keil的软硬件联合仿真
运用两软件分别对系统上电初始状态、开始按钮按下后的状态和有人抢答的状态进行仿真,仿真结果如下分以下三种情况讨论。
1、上电初始状态
接通电源,数码管无数码显示。
如图5。
图5上电初始状态
2、开始按钮按的状态
按下开始按钮,数码管显示0,蓝色的“抢答开始指示灯亮”起。
如图6。
图6开始按钮按下
3、有人抢答的状态
开始抢答后,当4号选手优先按下抢答按钮,数码管显示4,并亮起红色的四号选手抢答成功指示灯,扬声器发出提示音。
此时其他选手抢答无效,直到主持人将系统清零。
如图7。
图7有人抢答时
4、心得与体会
通过一周紧张的设计,最后终于完成了我的设计任务——基于AT89C51的抢答器。
通过本次课程设计的学习,我深深地体会到设计课的重要性和目的性所在。
本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。
它不仅仅是一个学习新知识、新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺,学以致用。
这次设计和设计中遇到的问题,也让我积累了一定的经验,尤其是在Proteus和Keil这两款软件的使用方面有了更深的理解。
此次的课程设计树立了对自己工作能力的信心,相信会对今后的学习工作生活都有非常重要的影响,而且大大的提高了动手能力,使我充分的体会到了创造过程中的探索的艰难和成功的喜悦。
虽然这次做出的作品还存在很多需要改进的地方,但是在整个设计过程中所学习到的东西是这次实训所得到的最大收获跟财富,使我终身受益。
5、参考文献
[1]《单片机原理及应用》薛峰.朱晓骏编著北京:
北京理工大学出版社,2011,9