您的当前位置:首页正文

单片机抢答器课程设计 (2)

2020-07-11 来源:易榕旅网


课 程 设 计 说 明 书 课程名称: 单片机原理及应用 设计题目: 抢答器设计 院 系:

学生姓名: 学 号: 专业班级: 指导教师:

2013年5 月17日

课 程 设 计 任 务 书

设计题目 学生姓名 所在院部 抢答器设计 专业、年级、班 设计要求: 1.设计一个具有表决选择的选择器;具有电源开关及指示灯,有复位按键; 2.用一位数码管的P0.0—P0.6显示抢答选手,P0.7经三极管驱动扬声器;利用查询方式扩展8个外部中断源,P1口接八个开关按键,代表8个中断源,由74ls09组成优先权选择电路识别最先输入的信号,显示选号,并有声音提示; 3.P3.3接开关K10,做主持人按键。任何情况下在主持人未按下开始抢答按键时,抢答无效;当有选手抢答时蜂鸣器响一声,其他人抢答无效;若有人抢答成功,蜂鸣器响一声,对应的位置编号指示灯闪烁5次,以示抢答成功。当有两人同时抢答时,八号选手优先级最高,一号最低。 学生应完成的工作: 1.硬件电路设计以及程序的编写; 2.软硬件结合仿真; 3.实物制作并调试; 4.课程设计说明书的书写; 5.该同学主要负责软硬件的设计以及软硬件的仿真并制作实物和调试。 参考文献阅读: [1] 张毅刚,彭喜元,董继成.单片机原理及应用.高等教育出版社,2010. [2] 童诗白,华成英.模拟电子技术基础.高等教育出版社.2006 [3] 张大明,刘振鹏.单片微机控制应用技术实操指导书.机械工业出版社,2007. [4] 徐晨,陈继红,王春明,徐慧.微机原理及应用.高等教育出版社。2004. 工作计划: 5.6课程设计任务书下达 5.7结合指导老师,完成硬件电路的设计 5.8程序编写 5.9进行软硬件联机调试 5.10~5.11课程设计说明书的书写 5.12领元器件 5.13焊接电路板 5.14~5.16程序的烧写和电路板调试 5.17交课程设计说明书和焊接电路板 任务下达日期: 2010 年 5 月 6 日 任务完成日期: 2010 年 5 月 17 日 指导教师(签名): 学生(签名):

抢答器设计

摘 要:随着单片机档次的不断提高,功能的不断完善,其应用日趋成熟、应用领

域日趋扩大,特别是工业测控、尖端武器和日用家电等领域更是因为有了单片机而生辉增色。本组设计目标为以AT89S52单片机作为主要控制模块、数码管和八个LED指示灯做为显示模块组成的用于表决选择的抢答器。本抢答器主要是通过八个按键开关来摸拟八路选手的抢答,开始键按下,则进入到八个按键的扫描中。通过数码管来显示抢答选手的号数,并由蜂鸣器发出抢答产生信号。具体功能为:主持人读完题目后按下允许抢答开关,才能进行选手抢答,否则摁键抢答无效,抢答时,首先有时间优先,之后有位置优先。本抢答器的主要特点有硬件比较简单,造价便宜,软件原理通俗易懂。

关键词:AT89S52单片机 抢答器 LED指示灯 数码管

目 录

1. 设计背景 .......................................................................................................... 1 2.设计方案 ............................................................................................................ 2

2.1 硬件设计方案 .................................................................................... 2 2.2 软件设计方案 .................................................................................... 2 3. 方案实施 .......................................................................................................... 4

3.1 硬件方案实施 .................................................................................... 4 3.2 软件方案实施 .................................................................................... 8 4. 结果与结论 .................................................................................................... 12

4.1 总体设计过程分析 .......................................................................... 12 4.2 总体结论 .......................................................................................... 12 5. 收获与致谢 .................................................................................................... 13 6. 参考文献 ........................................................................................................ 14 7. 附件 ................................................................................................................ 15

7.1 元器件清单 ...................................................................................... 15 7.2 硬件原理图 ...................................................................................... 16 7.3 仿真图 .............................................................................................. 17 7.4 实物图 .............................................................................................. 18 7.5 系统程序清单 .................................................................................. 19

1. 设计背景

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

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

抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。普通抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。这个学期我们开设了单片机课程,为了进一步巩固我们的相关知识,老师精心组织了这次课程设计。我们设计了以单片机为核心的新型的抢答器,在保留原始抢答器的基本功能的同时又增加了数码管显示电路实现了其它功能。通过这次抢答器设计,是我们进一步掌握相关专业知识的综合应用,提高我们的实际设计能力和动手能力。

1

2.设计方案

2.1 硬件设计方案

根据课程设计要求可以大概构思出硬件电路图:数码管与单片机的P0口的低七位相连接;P0.7口与蜂鸣器相连接;P1口接八个按键作为抢答的选手按键;P2口接八个LED灯分别显示八位选手抢答的指示信号。

1)主控部分的方案设计

用以AT89S52为核心的单片机控制方案,通过相应的程序,并通过按键来进行电平识别,再由单片机输出相应的程序,并将相应数值通过数码来显示。用单片机来制作的抢答器,硬件电路比较简单,容易明白,且成本相对较低。

2)优先级的设定

对于八位选手的优先级的设置有两种方案。

方案一:利用一片74LS09芯片分别把P1口的八个抢答信号两个一组相与之后接到单片机的除主持人外的其他的中断,并有软件的编写来控制八个抢答信号的优先级。

方案二:利用两片74LS09先把八个抢答信号两个一组相与后,再把相与后的信号两个一组再次相与,最后把相与的结果的一个信号接到单片机的外部中断0上,当有抢答信号时,通过软件编写查询各个选手顺序可以设置八个抢答的优先级。

显然,方案一虽然少用了一片74LS09芯片但它需要四个中断,非常麻烦。而方案二只需要设置两个中断的开通与关断以及内部查询顺序就可以设置八个抢答信号的优先级。因此选择方案二。

2.2 软件设计方案

1)中断的开通与关断设计

为达到在主持人未按下按键前抢答无效应该设置外部中断为开中断,外部中断0为关中断。当开始抢答信号发出后,开外部中断0以接收选手抢答中断信号。选手抢答后,开外部中断1从而使主持人再次按下按键后可以开始下一次抢答。

2)数码管的显示

方案一:采用静态显示,是指当数码管显示某一字符时,七段数码管的对应段的发

2

光二极管被选中,在这种显示方式下,每段LED都对应一个单片机口线。

方案二:采用动态显示,对于多位数码管显示时,每一位数码管轮流显示,当显示间隔时间较短时人眼就分辨不出是动态显示,而是每一位都是一直都在显示。

比较二者,静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是在需要用于显示的数码管较多时占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。动态显示器的优点是节省硬件资源,成本较低,但是要保证显示器正常显示,CPU必需每隔一段时间执行一次显示子程序,占用CPU大量时间,降低了CPU的工作效率,同时显示亮度较静态显示器低。

通过以上分析,同时考虑到本课题只提供一位数码管,所以采用方案一。 3)抢答信号指示灯

对于这一位LED灯的闪烁可以通过软件程序的编写,交替送出电平高低控制LED的闪烁。

3

3. 方案实施

3.1 硬件方案实施 1)硬件电路框图

本系统采用AT89S52单片机作为控制核心,对按键开关送来的信号进行分析处理,最终控制数码管显示相应的数值。本系统主要的单元电路有单片机主控电路、键盘控制电路、LED显示电路模块等。系统硬件框图如下图图2所示。

复位电路 AT89C52单片机 蜂鸣器电路 时钟电路 LED显示电路 电源电路 数码管显示电路

图3.1系统硬件框图

2)AT89S52电路

AT89S52为 ATMEL 所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

AT89S52主要功能列举如下:

1、拥有灵巧的8位CPU和在系统可编程Flash

2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz) 3、内部程序存储器(ROM)为 8KB 4、内部数据存储器(RAM)为 256字节 5、32 个可编程I/O 口线 6、8 个中断向量源

7、三个 16 位定时器/计数器 8、三级加密程序存储器

4

9、全双工UART串行通道

图3.2 AT89S52单片机电路图

3)时钟电路

单片机必须在时钟电路的驱动下才能工作。在单片机内部有一个时钟振荡电路,只需要外接一个振荡源,就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,其振荡频率主要由石英晶体的频率决定。两个电容的作用是帮助振荡器起振,并对振荡器的频率进行微调。电路如图3所示

图3.3 时钟电路图

5

4) 复位电路

外部中断和内部中断并存,单片机有硬件复位端,输入一定周期的高电平即可实现复位。复位后单片机的各个状态都恢复到了初始状态。电路如图4所示:

图3.4 复位电路图

5)数码管的设计: 图中数码管采用的是1位七段共阳级数码管,其中a ~ f段分别接到单片机的P0.0 ~ P0.6口,由单片机输出的P0口数据来决定段码值,还有八个300欧姆的电阻,连接在P0口上,用作P0口的上拉电阻。

6)电源电路

电源电路由桥堆2w10和7805构成。电源电路主要用用于为整个系统提供电源。我们日常用电都是220V的交流电,所以在设计电源时要先把交流电整成直流,然后再经过稳压管输出整个系统所需的稳定的直流电压。整流主要采用2W10桥堆和电容滤波以得到基本稳定的输出电压。稳压部分是采用常用的稳压管W7805得到稳定的输出正5V电压。如图5所示:

6

图3.5 电源电路图

7)LED和数码管显示

LED显示主要是给发光二极管送一恒定的电流,这种方法需要有寄存器、译码器、驱动电路灯逻辑部件。而单片机的P0口每一位可以驱动八个TTL型LS型负载,所以可以采用直接由P0口驱动数码管,P2对应每一口接一个发光二极管。

由于采用的是阳极接5V电源的接法,所以需要限流电阻与发光二极管串联。发光二极管允许通过的电流是3mA至10mA左右,为了使发光二极管亮度高点,所以,选择了串联470欧电阻。 8)蜂鸣器

蜂鸣器的发声主要用于对有抢答时的报警信号,以提示主持人。蜂鸣器的发声由三极管放大电压、电流来驱动,其中三极管的基集接单片机的P0.7口,以提供导通基集电流,从而经放大后达到蜂鸣器的发声电压、电流。其电路图如图6所示:

图3.6 蜂鸣器电路

7

3.2 软件方案实施

1) 抢答器流程图

流程图是使用图形表示算法的思路是一种极好的方法,不论采用何种程序设计方法,程序总体结构确定后,一般以程序流程图的形式对其进行描述。总体框图中的各个子模块或各个子任务也应该结合具体的教学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用。为便于识别,绘制流程图的习惯做法是:方框表示:要执行的处理;平行四边形表示:输入;不规则图形代表输出;菱形表示:判断。

对整个系统的功能分析知,汇编语言程序分为三大部分:主持人未按允许抢答时没有响应,主持人按键为外部中断1,之后有抢答信号为外部中断0。得到系统的流程图如下图。

8

开始 初始化 中断初始是否有外部中断1? 外部中断1子程序 是否有外部中断0? 外部中断0子是否有外部中断1? 结束

图3.7 主程序流程图

2)主要程序分析

我们组所采用的编程语言是单片机汇编语言,汇编语言的特点是程序的各个部分除了必要的信息交流外彼此之间相互独立。这种结构化方式可使程序层次清晰, 便于使用、

9

维护以及调试。汇编语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。它的语法比较灵活,允许程序编写者有较大的自由度。本次设计的主程序中包括主持人按键处理程序,主选手抢答处理程序,一号选手抢答处理程序,LED灯闪烁程序,键盘消抖延时程序以及蜂鸣器发声时间和LED闪烁间隔时间程序。

3)按键扫描程序

此过程就是蜂鸣器响一声,数码管显示选手号,对应选手LED闪烁五次。数码管显示就是给P1送入选手号对应段码; P0.7高电平,使蜂鸣器发声,再调用蜂鸣器发声时间延时程序,然后使P0.7为低电平关闭蜂鸣器发声。LED闪烁是给P2口对应的口线交替送高低电平,同时调用延时程序用来控制闪烁的时间间隔。

10

开外部中断1 键盘消抖 有抢答? P1.7低电平? 数码管显示8、LED闪烁、蜂鸣器响一声 数码管显示7、LED闪烁、蜂鸣器响一声 数码管显示6、LED闪烁、蜂鸣器响一声 数码管显示5、LED闪烁、蜂鸣器响一声 数码管显示4、LED闪烁、蜂鸣器响一声 数码管显示3、LED闪烁、蜂鸣器响一声 数码管显示2、LED闪烁、蜂鸣器响一声 P1.6低电平? P1.5低电平? P1.4电平? P1.3电平? P1.2电平? P1.1电平? 数码管显示1、LED闪烁、蜂鸣器响一声 有中断1? 返回 中断1处理程序

图3.8 外部中断0处理程序

11

4. 结果与结论

4.1 总体设计过程分析

总结以下要点:在设计程序之前,设计者必学对所用单片机的内部结构有一个系统的了解,知道该单片 机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。

4.2 总体结论

此次的抢答器的设计,让我重新认识了以前所学习的专业知识,我觉得此次设计让我更加巩固了所学的知识并在设计的过程中学会了与时俱进.在学习单片机这门课程的时候,我们应该好好的记笔记,课下好好的做练习题才能把汇编语言程序设计灵活的运用到单片机的应用上,在单片机这门课程的学习上,我们还应该知道一种常用的仿真软件proteus软件,可以让你我们更为清晰的掌握AT89S52单片机的实际应用上的设计。在今后的学习过程中,应该多看一些专业方面的书籍,以丰富自己的知识。由于知识水平的局限和动手能力不足,设计中可能会存在着一些不足,我真诚的接受老师和同学的批评和指正。本抢答器的主要特点有硬件比较简单,造价便宜,软件原理通俗易懂。

12

5. 收获与致谢

这两个周的单片机课程设计实习很快要结束了,在这个过程中我深刻的认识到了自己的不足,也获得了很多难得的经验和知识。在本课程设计即将完成之际,我要对所有支持和帮助我的老师和同学表示衷心的感谢。我要感谢我们的指导老师,作为一个平时和她接触很少的普通学生,她的平易近人和认真负责的态度让我深受感动,她也给了我们精确地的指导,让我学到了很多知识,掌握了Keil的编程和Proteus的仿真的方法,也获得了实践锻炼的机会。这次课程设计,由于我们经验的匮乏,有许多想不到的地方,如果没有吴老师的督促指导,以及本组的同学们的团结合作,想要完成这个设计是不太可能的。其次要感谢我们的单片机课程老师丁老师,他平时授课认真,对我们要求严格负责,在相关知识的积累和应用上给了我们极大的帮助!在制作电路板焊接时丁老师还亲自指导的帮助我们焊接,然后要感谢本组其他同学的帮助,他们都是知识储量丰富,做事认真的合作伙伴!最后还要感谢周围所有同学的帮助!谢谢大家让我充分的锻炼了自己并且提高了动手实践的能力!

13

6. 参考文献

[1] 张毅刚,彭喜元,董继成.《单片机原理及应用》高等教育出版社。2003. [2] 童诗白,华成英.《模拟电子技术基础》高等教育出版社。2006.

[3] 张大明,刘振鹏.《单片微机控制应用技术实操指导书》机械工业出版社。2007. [4] 徐晨,陈继红,王春明,徐慧.《微机原理及应用》高等教育出版社。2004.

14

7. 附件

7.1 元器件清单

器件名 单片机 晶振 瓷片电容 电解电容 二极管 LED指示灯 数码管 三极管 74LS09 电阻 电阻 电阻 电阻 电阻 三端稳压器 蜂鸣器 桥堆 插座 开关 开关 万用板

2W10 40脚IC插座 拨动开关 按键 4.7K 220 10K 1K 470 7805 共阳极数码管1位 9013 型号与规格 AT89S52 12MHz 22pF和0.33uF 10uF和1000uF,220uF 1N4001 数量 1 1 各2 各1 1 9 1 1 2 8 8 2 2 8 1 1 1 1 1 10 1

15

7.2 硬件原理图

图7.1 硬件原理图

16

7.3 仿真图

图7.2 硬件仿真图

17

7.4 实物图

18

7.5 系统程序清单

ORG 0000H LJMP MAIN ORG 0003H LJMP IN0 ORG 0013H LJMP IN1 ORG 1000H MAIN: MOV SP, #60H LCALL ZDISP MOV A, #7FH MOV P0,A MOV A, #0FFH MOV P2,A CLR EX0 SETB EX1 SETB IT1 SETB PT1 SETB EA SJMP $ IN1: SETB EX0 SETB IT0 SETB EA SETB PT1 MOV A,#40H MOV P0,A SETB P0.7 LCALL DELAYIS CLR P0.7

19

RETI IN0: SETB EX1 SETB IT1 SETB PT1 SETB EA CLR EX0 CLR IT0 MOV A, P1 LCALL DELAY CJNE A,P1,FINISH LCALL CLZ FINISH: RETI

CLZ: JB P1.7, K6 MOV A, #80H MOV P0, A MOV R4, #5 LP7: CLR P2.7 LCALL DELAYIS SETB P2.7 LCALL DELAYIS DJNZ R4, LP7 AJMP INTR K6: JB P1.6, K5 MOV A, #0F8H MOV P0, A MOV R4, #5 LP6: CLR P2.6 LCALL DELAYIS SETB P2.6

20

LCALL DELAYIS DJNZ R4, LP6 AJMP INTR K5: JB P1.5, K4 MOV A, #82H MOV P0, A MOV R4, #5 LP5: CLR P2.5 LCALL DELAYIS SETB P2.5 LCALL DELAYIS DJNZ R4, LP5 AJMP INTR K4:JB P1.4,K3 MOV A, #92H MOV P0, A MOV R4, #5 LP4: CLR P2.4 LCALL DELAYIS SETB P2.4 LCALL DELAYIS DJNZ R4, LP4 AJMP INTR K3: JB P1.3, K2 MOV A, #99H MOV P0, A MOV R4, #5 LP3: CLR P2.3 LCALL DELAYIS SETB P2.3

21

LCALL DELAYIS DJNZ R4, LP3 AJMP INTR K2: JB P1.2, K1 MOV A, #0B0H MOV P0, A MOV R4, #5 LP2:CLR P2.2 LCALL DELAYIS SETB P2.2 LCALL DELAYIS DJNZ R4, LP2 AJMP INTR

K1: JB P1.1, K0 MOV A, #0A4H MOV P0, A MOV R4, #5 LP1:CLR P2.1 LCALL DELAYIS SETB P2.1 LCALL DELAYIS DJNZ R4, LP1 AJMP INTR K0: MOV A,#0F9H MOV P0, A MOV R4, #5 LP0: CLR P2.0 LCALL DELAYIS SETB P2.0

22

LCALL DELAYIS DJNZ R4, LP0 AJMP INTR INTR: RET

DELAY: MOV R2, #40 LOP0: MOV R3, #125 LOP1: DJNZ R3, LOP1 DJNZ R2, LOP0 RET

DELAYIS: MOV R7, #20 LOOP3: MOV R6, #100 LOOP2: MOV R5, #250 LOOP1: DJNZ R5, LOOP1 DJNZ R6, LOOP2 DJNZ R7, LOOP3 RET

ZDISP: MOV A, #0FFH MOV P0, A MOV A, #0FFH MOV P2, A LCALL DELAYIS RET END

23

指导教师评语: 课程设计报告成绩: ,占总成绩比例: 30% 课程设计其它环节成绩: 环节名称: 考勤 ,成绩: ,占总成绩比例: 20% 环节名称: 综合 ,成绩: ,占总成绩比例: 50% 总 成 绩: 指导教师签字: 年 月 日 本次课程设计负责人意见: 负责人签字: 年 月 日

24

因篇幅问题不能全部显示,请点此查看更多更全内容