搜索
您的当前位置:首页正文

【设计】毕业设计论文基于单片机技术的八路抢答器设计毕业论文

来源:星星旅游
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

【关键字】设计

摘要

当今的社会竞争日益激烈,选拔人才,评选优胜,知识竞赛之类的活动愈加频繁,那么也就必然离

不开抢答器。而现在的抢答器朝着数字化、智能化的方向发展,这就必然提高了抢答器的成本。

本抢答器通过十分巧妙的设计仅用两块数字芯片便实现了数显抢答的功能,与其他抢答器电路相比较有分辨时间极短、结构清晰,成本低、制作方便等优点,并且还有防作弊功能。因此,我们制作了这款简易八路抢答器摒弃了成本高,体积大,而且操作复杂。我们采用了数字显示器直接指示、自动锁存显示结果、自动复位的设计思想,因而本抢答器具有显示直观,不需要人干预的特点。而且在显示时抢答器会发出叮咚声使效果更为生动。工厂、学校和电视台等单位常常举办各种智力竞赛, 抢答记分器是必要设备。

关键词:单片机;抢答器;

数字芯片

ABSTRACT

Today's society increasingly fierce competition, talent selection, selection of superior, knowledge contest activities such as more frequent, so it is inseparable from the responder. And now the responder towards digital, intelligent direction, this will inevitably raise the cost of responder.

The responder through the ingenious design with only two digital chip can realize the digital responder function, and other Responder circuit, compared with the resolution time is very short, clear structure, low cost, convenient manufacture and the like, and there are cheating prevention function. Therefore, we made this simple eight way responder to abandon the high cost, large volume, and complex operation. We used a digital display indicator, automatic locking display results, automatic reset design thought, the responder has the advantages of visual display, without the need for human intervention characteristics. But also in the display when the responder will emit buzz sound to make the effect more vivid. The factory, school and television units often held a variety of intellectual competition responder, scoreboard is necessary equipment. Key words Single chip microcomputer; responder; digital chip

目录

1单片机的概述……………………………………………………………………4 1.1单片机发展历程………………………………………………………………4 1.2单片机的分类…………………………………………………………………4 1.3单片机的结构…………………………………………………………………5 1.4单片机原理……………………………………………………………………5

1文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

1.5单片机的基本认识……………………………………………………………6 1.6单片机的工作原理……………………………………………………………8 2硬件电路图的设计………………………………………………………………9 2.1抢答器的电路框图……………………………………………………………9 2.2单元电路设计…………………………………………………………………10 2.3时钟振荡电路设计……………………………………………………………12 2.4报警电路设计…………………………………………………………………12 3系统主程序设计……………………………………………………………14 结术语………………………………………………………………………16 感谢信………………………………………………………………………17 参考文献………………………………………………………………………18 附录………………………………………………………………………19

2文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

1单片机的概述

1.1 单片机的发展历史

可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。

第一阶段(1971~1974):早期单片机阶段 代表产品:Intel公司的Intel 4004、Intel 8008

特点:具有4位或8位微处理器,随机存取保存器RAM、只读保存器ROM。 第二阶段(1974~1978):初级单片机阶段 代表产品:Intel MCS-48系列单片机

特点:内部集成了8位CPU、并行I/O接口、以及8位定时器/计数器、寻址范围不大于4KB、无串行口等。

第三阶段(1978~1983):高性能单片机阶段 代表产品:Intel MCS-51、Motorola 6801

特点:具有串行口、多级中断处理系统、16位定时器/计数器、片内RAM、ROM容量加大、且寻址范围达到64KB。

第四阶段(1983年至今):8位单片机巩固发展及16位单片机推出阶段 代表产品:Intel MCS-96

特点:发展16位单片机及专用单片机、不断完善高档8位单片机、改善其结构、以满足不同用户的需求。

1.2 单片机的分类

Intel公司的51系列 1)MCS-51系列

①8031:内部无ROM,必须外接ROM作为程序保存器。

②8051:内部包含4KB的ROM、128Byte的RAM、21个特殊功能寄存器、4个8位并行口、一个全双工串行口、两个16位定时器/计数器。 ③8751:具有4KB的EPROM。

④8951:具有4KB的EEPROM(或Flash ROM)。 2)MCS-52系列

52系列也包含4个产品,分别是51系列的增强型。由于资源数量的增加,芯片的功能有所增强。

3文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

①片内ROM容量从4KB增加到8KB; ②RAM容量从128Byte增加到256Byte;

③定时器/计数器数目从2个增加到3个; ④中断源从5个增加到6个等。 2 AT89系列单片机

AT89系列单片机是ATMEL公司的8位Flash单片机系列。这个系列单片机的最大特点是在片内含有Flash存储器,而其他方面和MCS-51没什么太大的区别。

该系列单片机的特点: ①内含有Flash存储器;

②和MCS-51系列单片机的引脚一样;

③采用静态时钟方式,可以节省电能、降低产品功耗。

1.3单片机的结构

将中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、I/O接口、定时器/计数器(CTC)、串行通信接口等集成在一块芯片上,构成一个完整的微型计算机,称为单片机。

1.4单片机原理

单片机到底是什么呢?就是一个电脑,只不过是微型的,麻雀虽小,五脏俱全:它内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机,排烟罩VCD等等的家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件。

它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。

单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成

4文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!

由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言(近几年,C语言也开始广泛被应用),它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。

目前最常用的单片机为MCS-51,是由美国INTEL公司(生产CPU的英特尔)生产的,89C51是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的,其内核兼容MCS-51单片机。

1.5单片机的基本认识

单片机中存储器的类型及特点

程序、表格和固定的常数是存放在单片机的程序存储器(ROM)中的,单片机从中提取指令或常数,通常不对其内容进行修改,而各种常数、变量、中间数据、运行状态、运算结果等都是存放在数据存储器(RAM)中的,其内容要经常改变,即要能够随时快速读写。

常用的程序存储器有掩膜型只读存储器(MROM)、一次性可编程存储器(OTPROM)、可擦除可编程只读存储器(EPROM)和闪速存储器(Flash Memory)。常用的数据存储器有随机存储器(RAM)和电可擦除可编程只读存储器(EEPROM)。

单片机中数的表示方法

我们在日常生活中都是采用十进制来计数的,从1到9,逢10进l。而单片机只能识别低电平和高电平,即“O”和“l”两种状态,故采用二进制计数。用二进制数来表示某种状态是直观的,如用二进制数的1111可以直观地表示并排的4盏灯的亮或灭;用十进制表示各种常数便于计算;而用十六进制数0-9、A、B、C、D、E、F来表示4位二进制数书写起来则更加方便。因此,在单片机中有二进制、十进制、十六进制等多种数的表示方法,在书写时加上指定的符号以示区别(如15D、lAH、1010B分别为十进制数、十六进制

5文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

数和二进制数)。

常用80C51系列单片机及其主要特点

1.MCS一5l系列单片机MCS-51是INTEL公司推出的增强型8位单片机系列产品,有8031/8032、8051/8052、80C51和8751等型号。其主要功能如下:

4k/8k字节程序存储器;128/256字节数据存储器;32条I/O口线;ll1条指令,其中大多数是单字节指令;21个专用寄存器;2个可编程定时/计数器;5个中断源,2个中断优先级;一个全双工串行通信口;外部数据存储器寻址空间为64k字节;外部程序存储器寻址空间64k字节;具有逻辑操作位寻址功能。

2.ATMEL公司的Flash 80C51单片机1)AT89C2051系列非总线型Flash单片机是针对低端应用设计的,其突出特点是去掉了标准80C51与总线扩展相关的口线,将I/O口减少到15个,增加了两个比较器。

用该系列单片机组成简单的控制系统,基本不需要进行外部扩展。该系列单片机有89C105l/2051/4051等型号,片内Flash存储器分别为1 k、2 k和4 k字节。

2)AT89C51系列总线型Flash单片机,其片内有看门狗、EEPROM、API、SPI、A/D转换器等。AT89c51RB2、AT89C51RC、AT89C51RD2片内的Flash分别为16k、32k和64k字节。

3)AT89S5x系列总线型Flash单片机,其最突出的特点是片内Flash存储器可在系统编程ISP(In-system programmable)。

3.Philips公司的增强型80C51单片机Philips公司的增强型80C5l单片机,致力于从片内资源、运行速度、功耗等方面提升80C51。其主要特点为:三个定时计数器、4级中断、可动态关闭ALE以改善电磁兼容性、CPU时钟有主频2分频/6分频/12分频三种方式可选、双DPTR数据指针、UART的地址自动识别和帧错误检测功能。主要产品有P87C5l、P89C51、P87LPC76x系列、P89LPC900系列等。

1.6单片机的工作原理

单片机由运算器、控制器、存储器、输入输出设备构成。

单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条

执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为

6文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行

2硬件电路图的设计 2.1抢答器电路框图

如图2-1所示为电路框图。其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作\"开始、停止\"状态开关

抢答按扭 优先编 码电路 锁存器 译码电路 译码显示

主持人控制开关 控制电路 报警电路 秒脉冲产生电路 定时电路 译码电路 显示电路 7文档收集于互联网,如有不妥请联系删除. 图2-1 电路框图

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

图2-2抢答电路的接口电路

2.2单元电路设计

(1)抢答器电路

参考电路如图2-2所示。该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一次抢答。

(2)时序控制电路设计

时序控制电路是抢答器设计的关键,它要完成以下功能:

a.主持人将控制开关拨到\"开始\"位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。

b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。 (3)复位电路的设计

外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。复位电路如图2-3所示:

图2-3复位电路图

图2-4时钟震荡电路

2.3时钟震荡电路

8文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

时钟震荡电路单片机必须在AT89C51的驱动下才能工作,在单片机内部有一个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内部的各个单元,时钟震荡电路如图2-4所示。

2.4报警电路设计

报警电路用于报警,当遇到报警信号时,发出警报。一般喇叭是一种电感性图2-5报警电路图。8951驱动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。

选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次作\"清除\"和\"开始\"状态开关。

图2-5报警电路图

3系统主程序设计

为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人发布抢答命令按下P1.7按键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。

9文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

主程序 设置抢答时间和回答问题时定时器及并行口初始化 将时间计数器及启动标志值1 开中断 Y 采并行口数据为0吗? N Y 启动标志=1判断抢答组号 判断哪一组为抢答将抢答组发光二极管将抢答组号送显示 抢答时间到了吗? Y N 输出响铃信号提示超Y 继续抢答比赛N 系统返回

器件名称 微处理器 极性电容 电阻 电容 晶振 按钮

共阴4位7段数码管

规格型号 AT89C51 10uF 3WTT10K 20PF 12MHZ

SMG SM410561K

数量 1 1 9 3 1 15 1

10文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

扬声器

案的详细清单

1

3-1器件选型方

结束语

这个八路扫描式抢答器,采用单片机主控,响应迅速,判别精确。带大屏幕显示屏,高亮度数字显示抢答的组别号、倒计时时间。可以分辨正常抢答与偷答的情况,并会发出两种不同的声音提示。可分别设定抢答、答题两种不同的倒计时时间。倒计时启动后屏幕有数字显示,倒计时结束后有\"叮咚\"声音提示。每组可带大屏幕分数显示,组分结果一目了然。流线型外壳,精美时尚。直接进行加减分,全场观众共参与。灯光提示,结果更明确。广泛适用于学校、教育部门、企事业工会组织、工厂公司、俱乐部等单位组织举办各种知识、技能竞赛及文娱活动时作抢答之用。

致谢信

在本文的撰写过程中,胡宏梅老师作为我的指导老师,她治学严谨,学识渊博,视野广

阔,为我营造了一种良好的学术氛围。置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了明确的学术目标,领会了基本的思考方式,掌握了通用的研究方法,而且还明白了许多待人接物与为人处世的道理。其严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力,与无微不至、感人至深的人文关怀,令人如沐春风,倍感温馨。正是由于她在百忙之中多次审阅全文,对细节进行修改,并为本文的撰写提供了许多中肯而且宝贵的意见,本文才得以成型。

在此特向胡宏梅老师致以衷心的谢意!向她无可挑剔的敬业精神、严谨认真的治学态度、深厚的专业修养和平易近人的待人方式表示深

深的敬意!同时感谢浦灵敏老师、陈邦琼老师、孙艳老师等几年来对我的栽培和教育。 时间如梭,转眼毕业在即。回想在大学求学的三年,心中充满无限感激和留恋之情。感谢母校为我们提供的良好学习环境,使我们能够在此专心学习,陶冶情操。谨向我的论文指导老师胡宏梅老师致以最诚挚的谢意!胡老师不仅在学业上言传身教,而且以其高尚的品格给我以情操上的熏陶。本文的写作更是直接得益于他的悉心指点,从论文的选题到体系的安排,从观点推敲到字句斟酌,无不凝聚着他的心血。滴水之恩,当以涌泉相报,师恩重于山,师恩难报。我只有在今后的学习、工作中,以锲而不舍的精神,努力做出点成绩,以博恩师一笑。另外,我必须感谢我的父母。焉得谖草,言树之背,养育之恩,无以回报。作为他们的孩子,我秉承了他们朴实、坚韧的性格,也因此我有足够的信心和能力战胜前

11文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

进路上的艰难险阻;也因为他们的日夜辛劳,我才有机会如愿完成自己的大学学业,进而取得进一步发展的机会。最后,我必须感谢我的朋友,正是因为他们在电脑技术上的无私指引,我才能得以顺利完成该论文。

参考文献

[1] 张伟.[ 单片机原理及应用]. 机械工业出版社,2005. [2] 张鑫.[ 单片机原理及应用]. 电子工业出版社,2005.

[3] 曹国清.[ 数学电路与逻辑设计]. 中国矿业大学出版社社,2004. [4] 任致程.[ 经典集成电路400例] 机械工业出版社,2001. [5] 薛栋梁.[ 单片机原理及应用].中国水利水电出版, 2001. [6] 吴金戎.[ 单片机开发与典型应用设计].清华大学出版社, 1997.

[7] 谢筑森.[ 单片机开发与典型应用设计题].中国科学技术大学出版社,2001. [8] 杨峰义.[ 单片机实验指导书].河南工业职业技术学院内部,2001.

.

附录:主程序

OK EQU 20H;抢答开始标志位 RING EQU 22H;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040H

MAIN: MOV R1,#30;初设抢答时间为30s MOV R2,#60;初设答题时间为60s

12文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

MOV TMOD,#11H;设置未定时器/模式1 MOV TH0,#0F0H

MOV TL0,#0FFH;越高发声频率越高,越尖 MOV TH1,#3CH

MOV TL1,#0B0H;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX0

SETB EX1;允许四个中断,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1

SETB TR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了 ;=====查询程序===== START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH

ACALL DISPLAY;未开始抢答时候显示FFF JB P3.0,NEXT;ddddddd ACALL DELAY

JB P3.0,NEXT;去抖动,如果\"开始键\"按下就向下执行,否者跳到非法抢答查询 ACALL BARK;按键发声 MOV A,R1

MOV R6,A;送R1->R6,因为R1中保存了抢答时间

SETB OK;抢答标志位,用于COUNT只程序中判断是否查询抢答 MOV R7,#01H ;读抢答键数据信号标志,这里表示只读一次有用信号 MOV R3,#0AH;抢答只显示计时,灭号数

AJMP COUNT;进入倒计时程序,\"查询有效抢答的程序\"在COUNT里面 NEXT: JNB P1.0,FALSE1

13文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,FALSE7 JNB P1.7,FALSE8 AJMP START

;=====非法抢答处理程序===== FALSE1: MOV R3,#01H AJMP ERROR

FALSE2: MOV R3,#02H AJMP ERROR

FALSE3: MOV R3,#03H AJMP ERROR

FALSE4: MOV R3,#04H AJMP ERROR

FALSE5: MOV R3,#05H AJMP ERROR

FALSE6: MOV R3,#06H AJMP ERROR

FALSE7: MOV R3,#07H AJMP ERROR

FALSE8: MOV R3,#08H AJMP ERROR

;=====INT0(抢答时间R1调整程序)===== INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A

14文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

MOV R4,B MOV R3,#0AH

ACALL DISPLAY;先在两个时间LED上显示R1 JNB P3.4,INC0;P3.4为+1s键,如按下跳到INCO JNB P3.5,DEC0;P3.5为-1s键,如按下跳到DECO JNB P3.1,BACK0;P3.1为确定键,如按下跳到BACKO AJMP INT0SUB INC0: MOV A,R1

CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。 MOV R1,#00H ACALL DELAY1 AJMP INT0SUB ADD0: INC R1 ACALL DELAY1 AJMP INT0SUB DEC0: MOV A,R1

JZ SETR1;如果R1为0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUB SETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUB BACK0: RETI

;=====INT1(回答时间R2调整程序)===== INT1SUB:MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B

15文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

MOV R3,#0AH ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB P3.1,BACK1 AJMP INT1SUB INC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT1SUB ADD1: INC R2 ACALL DELAY1 AJMP INT1SUB DEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUB SETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUB BACK1: RETI

;=====倒计时程序(抢答倒计时和回答倒计时都跳到改程序)===== REPEAT:MOV A,R2 ;使用锦囊时重新计时 MOV R6,A CLR RING

COUNT: MOV R0,#00H;重置定时器中断次数 MOV TH1,#3CH

MOV TL1,#0B0H;重置定时器

16文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

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 P3.1,QUIT;如按下停止键退出 JNB OK,CHECKK ;只在回答倒计时才有效 AJMP NEXTT

CHECKK:JNB P3.0,REPEAT ;判断是否使用锦囊 NEXTT: ACALL DISPLAY

17文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

JB OK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUNT ACCOUT: MOV A,36H JNB ACC.0,TRUE1 JNB ACC.1,TRUE2 JNB ACC.2,TRUE3 JNB ACC.3,TRUE4 JNB ACC.4,TRUE5 JNB ACC.5,TRUE6 JNB ACC.6,TZ1 JNB ACC.7,TZ2 AJMP RECOUNT TZ1:JMP TRUE7 TZ2:JMP TRUE8

QUIT: CLR OK;如果按下了\"停止键\"执行的程序 CLR RING AJMP START

;=====正常抢答处理程序===== TRUE1: ACALL BARK MOV A,R2

MOV R6,A;抢答时间R2送R6 MOV R3,#01H

CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNT TRUE2:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#02H CLR OK

18文档收集于互联网,如有不妥请联系删除.

AJMP COUNT TRUE3:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNT TRUE4:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNT TRUE5:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNT TRUE6: ACALL BARK MOV A,R2

MOV R6,AMOV R3,#06H CLR OK AJMP COUNT TRUE7:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COUNT

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

文档收集于互联网,如有不妥请联系删除.

19文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

TRUE8:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#08H CLR OK AJMP COUNT

;=====犯规抢答程序===== ERROR: MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H

MOV 34H,R3;犯规号数暂存与(34H) HERE: MOV A,R0

CJNE A,#06H,FLASH;0.3s向下运行->灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH

MOV R5,#0AH;三灯全灭 AJMP CHECK1

FLASH: CJNE A,#0CH,CHECK1;下面是0.8s的情况,响并显示号数并清R0,重新计 SETB RING MOV R0,#00H MOV R3,34H;取回号数 MOV R5,#0BH

MOV R4,#0BH;显示FF和号数 AJMP CHECK1

CHECK1: JNB P3.1,QUIT1 ACALL DISPLAY AJMP HERE QUIT1: CLR RING CLR OK

20文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

AJMP START

;=====显示程序=====

DISPLAY:MOV DPTR,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出, MOV A,R3

MOVC A,@A+DPTR MOV P2,#0feH MOV P0,A ACALL DELAY2 MOV DPTR,#DAT2 MOV A,R5

MOVC A,@A+DPTR MOV P2,#0fdH MOV P0,A ACALL DELAY2 MOV A,R4

MOVC A,@A+DPTR MOV P2,#0fbH MOV P0,A ACALL DELAY2 RET

DAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;\"灭\1\\灭\\"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

;=====延时4236个机器周期(去抖动用到)=====

21文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

DELAY: MOV 32H,#12H LOOP: MOV 33H,#0AFH LOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET

;=====延时4236个机器周期(显示用到)===== DELAY2: MOV 32H,#43H LOOP3: MOV 33H,#1EH

MOV A,R7 ;每隔60~70个机器周期读一次P1口,全为1时为无效数据,继续读,有一个不为1时,转到正常抢答处理

JNZ AAAA1 ;没读到有效数据时继续转到AAAA1 LOOP2: DJNZ 33H,LOOP2 DJNZ 32H,LOOP3 RET

;=====读抢答按键数据口程序=====

;由于在读抢答数据口的时候,单片机首先进入倒计时程序,再调用显示程序,最后才检测按键口 ;然而在检测按键口时动态扫描要调用三次(4ms)延时程序.这样就会导致读数据口出现滞后,造成1号优先最高.8号最低.

;故采用在延时子程序中加了读数据口程序.保证了灵敏度和可靠性 AAAA1: MOV A,P1

CJNE A,#0FFH,AA1 ;当不全为1时的数据为有效数据 AA0: MOV 36H,A ;将有效数据送到36H暂存 AJMP LOOP2 AA1: DEC R7 AJMP AA0

;=====发声程序===== BARK: SETB RING ACALL DELAY1 ACALL DELAY1

22文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

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

此文档是由网络收集并进行重新排版整理.word可编辑版本!

23文档收集于互联网,如有不妥请联系删除.

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

Top