单片机课程设计报告基于多路数字抢答器1.docx

上传人:b****8 文档编号:11518342 上传时间:2023-03-02 格式:DOCX 页数:26 大小:349.44KB
下载 相关 举报
单片机课程设计报告基于多路数字抢答器1.docx_第1页
第1页 / 共26页
单片机课程设计报告基于多路数字抢答器1.docx_第2页
第2页 / 共26页
单片机课程设计报告基于多路数字抢答器1.docx_第3页
第3页 / 共26页
单片机课程设计报告基于多路数字抢答器1.docx_第4页
第4页 / 共26页
单片机课程设计报告基于多路数字抢答器1.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

单片机课程设计报告基于多路数字抢答器1.docx

《单片机课程设计报告基于多路数字抢答器1.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告基于多路数字抢答器1.docx(26页珍藏版)》请在冰豆网上搜索。

单片机课程设计报告基于多路数字抢答器1.docx

单片机课程设计报告基于多路数字抢答器1

目录

摘要I

第1章绪论1

1.1单片机抢答器的背景1

1.2抢答器的意义1

第2章设计概述2

2.1抢答器工作原理2

2.2设计目的与要求2

2.3设计任务2

2.4运行环境及工具2

第3章系统硬件电路设计3

3.1AT89C51单片机硬件电路3

3.2原理及电路总框图3

3.3晶振复位及开始抢答电路4

3.4选手抢答键4

3.5显示与显示驱动电路5

3.6蜂鸣器音频输出电路6

第4章系统软件设计7

4.1程序设计7

4.2主程序设计7

4.3系统流程图8

4.4程序清单9

第5章系统仿真18

5.1Proteus软件介绍18

5.2仿真电路设计18

5.3仿真测试18

5.4仿真结果分析20

第6章结束语21

参考文献22

第1章绪论

1.1单片机抢答器的背景

二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。

不过,这种电脑,通常是指个人计算机,简称PC机。

它由主机、键盘、显示器等组成。

还有一类计算机,大多数人却不怎么熟悉。

这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。

顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。

因为它体积小,通常都藏在被控机械的“肚子”里。

它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。

现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。

现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。

究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上[1]。

在知识竞赛中,特别是做抢答题时,在抢答过程中,为了更确切的知道哪一组或哪一位选手先抢答到题,必须要有一个系统来完成这个任务。

若在抢答中,只靠人的视觉(或者是听觉)是很难判断出哪一组(或哪一个选手)先抢答到题的。

利用单片机编程来设计抢答器,可以使以上问题得以解决,即使两组的抢答时间相差几微秒,也能轻松的分辨出哪一组(或哪个选手)先抢答到题的。

本文主要介绍了抢答器的工作原理及设计,以及它的实际用途。

1.2抢答器的意义

本系统采用单片机作为整个控制核心。

控制系统的四个模块为:

显示模块、存储模块、语音模块、抢答开关模块。

该系统通过抢答电路键盘按键输入抢答信号;利用一个数码管来完成显示功能;用按键来让选手进行抢答,在数码管上显示哪一组先答题的,从而实现整个抢答过程。

在知识比赛中,特别是做抢答题目的时候,在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。

如果在抢答中,靠视觉是很难判断出哪组先答题。

利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。

第2章设计概述

2.1抢答器的工作原理

抢答器的工作原理是采用单片机最小系统,用查询式键盘进行抢答。

采用动态显示组号。

主持人按下开始抢答键才可以抢答。

主持人没有按下开始抢答按纽(P3.2),有人抢答则抢答违规,报警并显示组号,主持人按下开始抢答开关重新抢答。

主持人按下开始抢答按纽(P3.2),蜂鸣响声提示,且数码管10秒倒计时(10秒内抢答有效),有人在10秒抢答,蜂鸣器响声提示并显示他的组号,3秒开始20秒倒计时(20秒内必须回答完问题)。

20秒后主持人按下复位开关为下一题的抢答做准备。

单片机最小系统、抢答按键模块(四位并行数码显示、4*4矩阵式键盘)、显示模块、显示驱动模块、抢答开关模块、蜂鸣器音频输出模块。

工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,单片机控制的智能抢答器。

2.2设计目的与要求

(1)熟悉电路,理解各个元件之间的控制流程;

(2)熟悉PROTEUS及WAV6000平台的运行环境;

(3)熟练掌握汇编语言,调用中断子程序和对端口进行读写数据的操作;

(4)理解掌握抢答器的原理及电路设计;

2.3设计任务

(1)多路数字抢答器的硬件和软件设计;

(2)分析电路图;

(3)画出程序流程图;

(4)编写代码;

(5)程序分析与调试;

2.4运行环境及工具

(1)WINDOWSXP系统;

(2)PROTUES软件;

(3)汇编编译环境、汇编语言;

第3章系统硬件电路设计

3.1AT89C51单片机硬件电路

单片机(SCM)是单片微型计算机(SingleChipMicrocomputer)的简称。

它是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。

它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出适配器简单,功能较低[2]。

目前,单片机在民用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活中。

近年来,AT89C51在我国非常流行,它最大的特点是内部有可以多次重复编程的ROM,并且ROM可以直接用编程器来擦写,使用起来比较方便。

本设计使用到的元器件包括:

AT89C51芯片、数码LED显示器、七段LED数码管的译码。

其中AT89C51是系统的核心,它主要负责控制各个部分的协调工作。

在其外围接上复位电路,上拉电阻,数码管,按钮以及振荡器,p1.0-p1.7为抢答输入键接口,数码管段选P0口,位选P2口,蜂鸣器输出为P3.0口。

3.2原理及电路总框图

图3.1抢答器总原理图

3.3晶振复位及开始抢答电路

晶振的频率为12MHZ,提供89C51的时钟脉冲使89C51工作,复位电路是单片机初始化,使单片机重新开始执行程序。

当复位开关按下RST由低电平变为高电平,则程序从头开始执行,在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。

图3.2复位及开始抢答电路

3.4选手抢答键(矩阵式键盘)

89C51的P1口做一个4*4的行列式键盘。

P1.0至P1.3轮流输出低电平在软件查询P1.4至P1.7的电平变化来输入组号。

给每一个选手编号1至16,当选手按下按钮时,电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。

图3.3选手抢答电路

3.5显示器与显示驱动电路

数码管的显示可以分为两种:

静态显示和动态显示。

静态显示的段选位和位选位均单独连接,因此占用的I/O接口多,无法扩展多个数码管。

而数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划的同名端连在一起,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

本次设计电路包括显示和驱动,显示采用数码管,驱动用三极管PNP。

数码管要显示抢答违规者编号、抢答10秒倒计时、正常抢答者编号和回答问题时间20秒倒计时,数码管采用动态显示。

驱动电路PNP发射极接+5V电压,当基极为低电平是集电极为高电平则能驱动数码管使其显示数字。

因为PNP是模拟器件而数码管为数字器件,PNP的集电极如果不接一个较大的电阻显示就会出问题。

所以在PNP的集电极接了一个10千欧的电阻。

图3.4显示器与显示驱动电路

3.6蜂鸣器音频输出电路

蜂鸣器是一种电子电路中常用的发声器件,蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。

提供蜂鸣器发声所需要较高的电流,单片机的I/O口驱动能力有限,而我们知道三极管有电流放大的作用,在这里就是利用三极管放大电流来使蜂鸣器获得足够的驱动电流。

蜂鸣器音频输出电路的功能是用来报警,当遇到报警信号时,发出蜂鸣声,以此来提醒操作者。

本电路通过控制不同频率的矩形脉冲来控制蜂鸣器发声。

此次课程设计中只需要一些简单的提示声音,如有抢答违规,开始抢答,抢答时间结束和回答问题时间到的提示声音。

本课程设计从P3.0口输出一个矩形脉冲来控制驱动器PNP集电极的高低电平时间来控制蜂鸣器的声音。

图3.5蜂鸣器音频输出电路图

第4章系统软件设计

4.1程序设计

程序设计(Programming)是指设计、编制、调试程序的方法和过程。

它是目标明确的智力活动。

在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。

在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。

数据处理包括:

数据的采集、数字滤波、标度变换等。

过程控制程序主要是使单片机按一定的方法进行计算,然后再输出[3]。

为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。

把一个程序分成具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化程序设计。

所谓“模块”,实质上就是能完成一定功能,并相对独立的程序段,这种程序设计方法称为模块程序设计法。

模块程序设计法的主要优点是:

(1)单个模块比起一个完整的程序易编写、调试及修改。

(2)程序的易读性好。

(3)程序的修改可局部化。

(4)模块可以共存,一个模块可以被多个任务在不同条件下调用。

(5)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。

本系统软件采用模块化结构,由主程序﹑键盘子程序、显示驱动子程序构成。

4.2主程序设计

为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人按开始键发布抢答命令,若在主持人未按开始键之前,有选手提前答题,则为违规抢答,蜂鸣器会发出警告声,并在显示器上显示犯规的选手编号。

当有选手抢答成功,则程序打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序,其他选手在此之后按键无效。

当在扫描到有人按下了抢答键,马上关闭T0、调用显示程序、封锁键盘。

4.3系统流程图

4.3.1硬件复位流程图

图4.1硬件复位流程图

4.3.2系统程序流程图

图4.2系统程序流程图

4.3.3显示抢答违规流程图

 

图4.3显示抢答违规流程图

4.3.4抢答成功流程图

 

图4.4抢答成功流程图

4.4程序清单

ORG0000H

LJMPMAIN

ORG0013H

LJMPESS1

ORG0100H

MAIN:

SETBEA

SETBEX1SETBIT1;外部中断1初始化

L16:

MOVP1,#0FFH

MOVR2,#00H

CLRP1.0

INCR2

JBP1.4,L0

LCALLDE0

L0:

INCR2

JBP1.5,L1

LCALLDE0

L1:

INCR2

JBP1.6,L2

LCALLDE0

L2:

INCR2

JBP1.7,L3

LCALLDE0

L3:

SETBP1.0

CLRP1.1

INCR2

JBP1.4,L4

LCALLDE0

L4:

INCR2

JBP1.5,L5

LCALLDE0

L5:

INCR2

JBP1.6,L6

LCALLDE0

L6:

INCR2

JBP1.7,L7

LCALLDE0

L7:

SETBP1.1

CLRP1.2

INCR2

JBP1.4,L8

LCALLDE0

L8:

INCR2

JBP1.5,L9

LCALLDE0

L9:

INCR2

JBP1.6,L10

LCALLDE0

L10:

INCR2

JBP1.7,L11

LCALLDE0

L11:

SETBP1.2

CLRP1.3

INCR2

JBP1.4,L12

LCALLDE0

L12:

INCR2

JBP1.5,L13

LCALLDE0

L13:

INCR2

JBP1.6,L14

LCALLDE0

L14:

INCR2

JBP1.7,L15

LCALLDE0

L15:

LJMPL16;读行列式键盘

ESS1:

MOV70H,#30D;外部中断1

MOVR7,#0CH

CLRP3.0

S2:

LCALLDELAY

DJNZ70H,S2

SETBP3.0;蜂鸣器提示开始抢答

MOVTMOD,#00010000B

MOVR3,#0AH

L20:

MOV55H,#14H

L19:

MOVTH0,#3CH

MOVTL0,#0B0H;定时器1初始化

SETBTR1;启动定时器1

MOVA,R3

MOVB,#0AH

DIVAB

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOV53H,A

LCALLDELAY1

SETBP2.4

MOVA,B

MOVCA,@A+DPTR

MOV54H,A

CLRP2.5

MOVCA,@A+DPTR

MOV54H,A

CLRP2.5

MOVP0,54H

LCALLDELAY1

SETBP2.5

L18:

JNBTF1,L18

D6:

CJNER3,#0FFH,L21

LJMPL22

L21:

LJMPL20;抢答倒计时

L22:

MOV73H,#02D

S5:

MOV70H,#20D

MOV71H,#20H

CLRP3.0

S4:

LCALLDELAY

DJNZ70H,S4

SETBP3.0

S6:

LCALLDELAY

DJNZ71H,S6

DJNZ73H,S5;抢答倒计时时间到声音提示

D5:

RETI

DE0:

MOVDPTR,#TAB;抢答违规报警并显示抢答违规组号

MOVA,R2

MOVB,#0A

S10:

MOV72H,#20D

MOV73H,#10D

CLRP3.0

S8:

LCALLLCC

DJNZ72H,S8

SETBP3.0

S9:

LCALLLCC

DJNZ73H,S9

DJNZ71H,S10

L17:

LCALLLCC

LJMPL17

LCC:

CLRP2.4

MOVP0,50H

LCALLDELAY

DELAY1:

MOVP1,#0FFH;正常抢答读键

W0:

INCR2

JBP1.5,W1

LCALLDE1

W1:

INCR2

JBP1.6,W2

LCALLDE1

W2:

INCR2

JBP1.7,W3

LCALLDE1

W3:

SETBP1.0

CLRP1.1

INCR2

JBP1.4,W4

LCALLDE1

W4:

INCR2

JBP1.5,W5

LCALLDE1

W5:

INCR2

JBP1.6,W6

LCALLDE1

W6:

INCR2

JBP1.7,W7

LCALLDE1

W7:

SETBP1.1

CLRP1.2

INCR2

JBP1.4,W8

LCALLDE1

W8:

INCR2

JBP1.5,W9

LCALLDE1

W9:

INCR2

JBP1.6,W10

LCALLDE1

W10:

INCR2

JBP1.7,W11

LCALLDE1

W11:

SETBP1.2

CLRP1.3

INCR2

JBP1.4,W12

LCALLDE1

W12:

INCR2

JBP1.5,W13

LCALLDE1

W13:

INCR2

JBP1.6,W14

LCALLDE1

W14:

INCR2

JBP1.7,W15

LCALLDE1

W15:

DJNZR4,W16

LJMPW18

W16:

LJMPW17

W18:

RET

DE1:

MOVP1,#0FFH;抢答成功声音提示及回答问题时间20秒倒计时

MOV70H,#20D

CLRP3.0

S3:

LCALLDELAY

DJNZ70H,S3

SETBP3.0

SETBP2.0

SETBP2.1

MOVDPTR,#TAB

MOVA,R2

MOVA,B

MOVCA,@A+DPTR

MOV57H,A

MOVTMOD,#00000001B

MOVR5,#16H

L32:

MOVR6,#14H

L31:

MOVTH0,#3CH

MOVTL0,#0B0H

SETBTR0

CLRP2.4

MOVP0,56H

LCALLDELAY

SETBP2.4

CLRP2.5

MOVP0,57H

LCALLDELAY

SETBP2.5

CJNER5,#14H,L34

LJMPL35

L34:

JCL35

LJMPL30

L35:

MOVA,R5

MOVB,#0AH

DIVAB

MOVCA,@A+DPTR

MOV58H,A

MOVA,B

MOVCA,@A+DPTR

MOV59H,A

CLRP2.6

MOVP0,58H

LCALLDELAY

SETBP2.6

CLRP2.7

MOVP0,59H

LCALLDELAY

SETBP2.7

L30:

JNBTF0,L30

CLRTF0

DJNZR6,L31

DECR5

CJNER5,#0FFH,L32

MOVP1,#0FFH

MOV70H,#50D

CLRP3.0

S7:

LCALLDELAY

DJNZ70H,S7

SETBP3.0

MOVP2,#0FFH

MOVR3,#00H

MOVR7,#00H

RET

DELAY:

MOV51H,#10D;延时子程序

D0:

MOV52H,#248D

D1:

DJNZ52H,D1

DJNZ51H,D0

RET

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

第5章系统仿真

5.1Proteus软件介绍

在该设计中,利用Proteus软件进行仿真。

Proteus运行于Windows操作系统上,可以仿真、分析(SPICE)数字电路、模拟电路、数模混合电路,是目前唯一能实现对51、PIC、AVR、HC11、ARM等处理器的仿真软件[4]。

5.2仿真电路设计

将单片机最小系统、显示模块、抢答开关模块和音频输出模块进行PROTEUS设计。

打开PROTEUS的ISIS编辑环境,从PROTEUS中选取该电路所需要的元器件,放置元器件、放置电源和地,再点菜单栏工具下拉的电气规则检查,当规则检查出现:

“NETLISTGENERATEDOKNOERCERRORDFOUND”,表示通过检查,电路设计完成。

5.3仿真测试

5.3.1开始抢答仿真

主持人按开始按钮后,进入抢答10秒倒计时,仿真结果如图5.1。

图5.110秒抢答倒计时开始

5.3.2抢答犯规仿真

若在主持人还未按开始按钮时,就抢答则为抢答犯规。

4号选手在主持人未宣布开始时就抢答,从而造成犯规,犯规仿真如图5.3。

图5.2未开始状态

图5.34号选手犯规抢答

5.3.3抢答成功仿真

主持人按开始按钮后,10秒内抢答则为成功抢答。

仿真图为15号选手成功抢答,抢答后进入20秒倒计时答题时间,抢答成功仿真如图5.4。

图5.415号选手成功抢答

5.4仿真结果分析

通过对电路的仿真,可以看出基于AT89C51单片机控制的抢答器在PROTEUS软件上可以很好的实现抢答报警、抢答成功显示、抢答倒计时等一系列功能。

当仿真开始运行时,各个模块处于初始状态。

此时显示器并无状态显示,但此时抢答键和蜂鸣器都处于开启状态,若此时有选手按下抢答键,则蜂鸣器会发出报警声,并且在数码管上显示犯规的选手的编号。

主持人重新按下开始键,此时表示抢答正式开始,并且数码管显示10秒倒计时,同时蜂鸣器发出声音提醒选手抢答开始了。

选手抢答成功,同时也进入到倒计时20秒答题时间。

从仿真的测试结果来看,此设计还是能比较好的实现预期的目标。

 

第6章结束语

通过本次课程设计使我对Proteus仿真软件的使用和汇编语言有了更进一步的了解和掌握。

在最初编写过程中,我也曾经因为实践经验的缺乏失落过,也曾经因仿真成功而热情高涨。

特别是Proteus仿真软件的使用,不知是由于电脑的问题还是怎么,这个软件的安装就花了我很长的时间,好不容易安装好了,又对软件的使用一点都不熟悉,要从头开始学起,对着老师发给我们的芯片原理进行仿真画图,刚刚开始时候真的很难下手,因为是英文版的软件,很多东西都看不太明白,都是通过自己一个个来慢慢琢磨,才把仿真图画了出来,然后把写好的程序导入芯片,进行仿真,当看到程序正常运行的那一刻,心中真是有几分的喜悦。

虽然这只是一次的较简单的课程设计,可是平心而论,也耗费了我不少的心血。

我想说:

为完成这次课程设计我们确实很辛苦,但苦中仍有乐,和同学们相互帮助,当LED亮了起来,喇叭响了起来是对我这段日子以来最好的告慰。

而且对于论文的总体构思也有了很多经验,相信自己经过这一次的训练与学习,对于今后的毕业论文会有更多帮助。

这次课程设计让我充分理解了89C51芯片的工作原理,知道了抢答器的硬件和软件的实现过程,并且通过自己动手编写程序来控制抢答器的工作,我感到非常有成就感,也锻炼了我的编程能力。

在刚开始编程的时候,我感到很茫然,不知道怎么样下手,但是通过自己的仔细的分析和老师的细心的指导,在认真分析了原来已有的代码后,和应有的硬件后,经过多次调试和测试终于成功了。

在此我非常要感谢的是我的指导老师刘伟春老师,感谢老师的细心认真的辅导,教给我许多原来不知道的知识。

这次课程设计能够顺利的完成,当然有我个人的努力,但同时也离不开指导老师的答疑解惑和同学的帮助。

 

参考文献

[1]李泉溪.《单片机原理与应用实例仿真》.北京航天航空大学出版社2009年

[2]江世明.《基于Proteus的单片机应用技术》.电子工业出版社2008年

[3]喻宗泉.《单片机原理与应用技术》.西安电子科技大学出版社2005年

[4]万光毅.《单片机实验与实践教程》.北京航天航空大学出版社2003年

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1