ppt2007全套教学教案详解
杨洋个人资料-当前国际形势分析
苏州信息职业技术学院
毕业设计报告(论文)
系 别: 通信与信息工程系
专
业: 应用电子
班 级:
G14050221
学 生 姓 名:
许可
学 生 学 号: G14050221
设计(论文)题目: 8路智能抢答器的设计
指 导 教
师: 王建珍
起 讫 日 期:
2016.9.3~2016.11.16
1
苏州信息职业技术学院
毕业设计(论文)成绩评定表
学生姓名
课题名称
许可 系部 通信与信息工程系 学号
G14050221
8路智能抢答器的设计
指导教师评语:
综合运用理论与专业技术知识能力较强,能
独立地分析解决80%以上的问题。持论有
据,技术路线明确。能从个人角度分析和解决问题。工作较严
谨、学习较努力、尊敬老师。
资料提交、工作进度、参加辅导在设计全周期内准时比例达80%以上。完
成任务书的大多
数要求(90%以上),研究成果具有一定水平和实用价值。结论合理,但具体思路尚有
待完
善或有考虑不周之处。
建议成绩: 86
指导教师: 王建珍
2016年11月 16 日
评阅教师评语:
持论有据,技术路线明确。完成任务书的大多数要求(90%以上),研究成果具有一定
水平和实用价值
。结论合理,但具体思路尚有待完善或有考虑不周之处。能从个人角度分析
和解决问题。论文结构比较合
理,文字比较通顺,书写比较规范,论文总体上格式规范性、
条理性、层次性较好
建议成绩: 85
评阅教师: 钱俊
2016年11月17 日
答辩小组评语:
有比较丰富的文献材料和较充足的理论依据,技术路线有一定的创造性,具有实用价值。
研究成果具有一定水平,结论合理,但具体思路尚有待完善或有考虑不周之处。论文格式规
范性、条理
性、层次性较好。能较圆满回答主要问题。
建议成绩: 86 答辩小组负责人:
张伟
2016年11月 18 日
2
苏州信息职业技术学院
毕业设计(论文)任务书
专业 应用电子 学号 G14050221 姓名 许可
课题名称: 8路智能抢答器的设计
主要技术指标:
工作内容和要求:
1. 软硬件设计
2.绘制原理图及生成PCB图
3.安装与调试
4.写毕业论文
主要参考文献:
1
张平.AT89S52单片机基础项目教程.北京理工大学出版社,2012
2
周润景等.单片机电路设计、分析与制作.机械工业出版社,2010
3
张宏伟等.单片机应用技术.北京理工大学出版社,2010
4
皮大能.单片机课程设计指导书.北京理工大学大学出版社, 2010
5
姜治臻.单片机技术实践.高等教育出版社, 2010
学 生(签名)
许可
2016年9月 10日
指 导 教师(签名)
王建珍
2016年9月 10日
教研室主任(签名)
庄乾成
2016年9月 10日
3
系 主 任(签名) 张宗橙
2016年9月 10日
苏州信息职业技术学院
毕业设计(论文)开题报告
专业 许可 学号 G14050221 姓名 许可
设计(论文)题目 8路智能抢答器的设计
一、选题的背景和意义:
目前市场上已经有很多类型的抢答器,但其中绝大多是早期设计的,
采用模
拟电路、数字电路或者模数混合电路的产品。这些已经相当成熟,但是随着功能
的增多,
人们要求的复杂和电路的高要求,成本普遍偏高,故障率高,显示方式
简单或者没有,无法准确的判断,
也不便于参数的调节和功能的升级换代。
本课题所设计和制件的智能抢答器基于单片机,具有电路简单
,元件普通,
成本低廉、性能优良等优点。
二、课题研究的主要内容:
1、系统硬件电路方案的设计
2、系统软件电路方案的设计和研究
3、设计成品的制作和测试结果与分析
三、主要研究(设计)方法论述:
1、 巩固、加深对单片机运用的知识面,提高自己的综合能力,把自己学的单片机知识
运用在
实际生活当中去。
2、 学会怎么样使用proteus软件的运用,并且熟练地掌握它的操作步骤。
3、 通过查阅书籍,并能够熟练编写程序,仿真,会画流程图,原理图。
4、
熟练使用单片机知识做系统开发,研制的过程
四、设计(论文)进度安排:
时间(迄止)日期
2016. 9.3 - 2016.9.14
2016.
9.15-2016.10.8
2016.10.9-2016.11.8
2016.11.9-2016.11.11
工作内容
查找资料确立选题
完成开题报告
室内煤气和天然气泄漏报警器的设计
撰写论文
4
2016.11.14~2016.11.15
2016.11.16~2016.11.18
毕业设计答辩
根据答辩小组和指导老师意见修改论文,力争在内容和格式上符
合毕业设计规范要求。
五、指导教师意见:
本课题符合专业人才培养目标,难易适中,也具有一定的实用价值,同意开题
指导教师签名:王建珍
2016年10月8日
六、系部意见
同意开题
系主任签名:张宗橙
2016年10月9日
5
苏州信息职业技术学院
毕业设计(论文)中期检查表
学生姓名 许可
课题名称
选题情况 难易程度
工作量
任务书
符合规范化
的要求
开题报告
外文翻译质量
学习态度、
出勤情况
工作进度
好
快
√
√
学号 G14050221 指导教师 王建珍
8路智能抢答器的设计
偏难
较大
有
有
优 良
一般
按计划进
行
适中
适中
√
√
√
√
无
无
中
差
慢
偏易
较小
差
中期工作汇
报及解答问
题情况
能按计划进行
指导教师 王建珍
2016年10月25日
所在专业意见:
继续进行
系主任 张宗橙
2016年10月25日
6
7
智能抢答器的设计与制作
摘要:本文首先介绍了系统的设计方案思
路与原理图,进而阐明了设计8路抢答
器系统的意义。文章采用分块模式,对整个系统的硬件与软件设计
进行分析,硬
件部分包括:单片机STC89C52RC 控制芯片及其外围电路,数码显示电路及其周
围电路,控制电路,音乐电路等,软件部分针对一些具体模块进行编程。整个系
统采用单片机通
讯方式,文中还介绍了单片机接口与控制器之间的通讯情况、安
装与调试的有关内容。
关键词: 单片机 ;抢答器;原理图
目录
1 引言 ..............................
................................ 1
1.1课题的背景和意义
............................................. 2
1.2课题的主要任务
............................................... 2
2 智能抢答器的整体设计
............................................. 3
2.1硬件设计 ......................................
............... 3
2.2软件设计 ....................
................................. 8
3
智能抢答器的设计实现
............................................. 9
3.1原理图绘制 .....................................
.............. 9
3.2 PCB图生成
..................................................
14
4 智能抢答器的制作
................................................
19
4.1智能抢答器的安装
............................................ 19
4.2智能抢答器的测试
............................................ 22
结论 ...........................................
.................... 25
致谢 ...................
............................................ 25
参考文献 .........................................
.................. 26
附录 .....................
.......................................... 27
1 引言
智能抢答器,顾名思义就是用于比赛时,跟对手比反应时间,思维运转快
慢的新型电器。随着社
会科技技术的不断发展,它的应用场合也随之增加;技术
含量大大提升;更加方便可靠。目前, 在电视
台、商业机构、学校及企事业单位,
广泛采用多种多样、功能齐全的智能抢答器用于各种竞赛,为竞赛增
添了刺激性
和娱乐性, 人们的业余生活得到了一定程度的丰富和充实。用单片机进行知识竞
赛
抢答器设计,其控制方便,灵活,只要按按钮,便可改变竞赛抢答器的抢答方
案。
1
1.1课题的背景和意义
无论军队还是电视节目中
,都会用到抢答器。目前市场上已经有很多类型的
抢答器,但其中绝大多是早期设计的,采用模拟电路、
数字电路或者模数混合电
路的产品。这些已经相当成熟,但是随着功能的增多,人们要求的复杂和电路的
高要求,成本普遍偏高,故障率高,显示方式简单或者没有,无法准确的判断,
也不便于参数的
调节和功能的升级换代。近年来随着科技的发展,应用的不断的
深入,单片机、PCLD、PCL的应用
技术的成熟和准确性,同时带动传统的控制检
测技术的不断更新。本文就是利用单片机为核心部分的控制
及信号的产生,单片
机的性能优势必将使得竞赛真正达到公平、公正、公开。
1.2本课题的主要任务
本课题所设计和制作的智能抢答器具有如下功能:
1)在主持人按下开始键后显示“F FF”。
2)有8个抢答按键,在开始倒计时后可进行抢答。
3)抢答成功后进入回答时间倒计时。
4)如若选手违规抢答,则显示选手号并报警。
5)可以自由调整抢答时间和回答时间。
2
2
智能抢答器的整体设计
2.1硬件设计
图2.1 系统框图
如图2.1所示,智能抢答器由单片机、八段数码管显示电路、选手抢答按扭电路、主持人控制电路、时间调整电路和蜂鸣器报警电路组成。
2.1.1
单片机
本设计所用的单片机为STC89C52单片机,STC89C52单片机采用40Pin封装
的双列直插DIP结构,如图2.2所示,40个引脚中,电源Vcc和接地GND各一
根,外
置石英振荡器的时钟线两根,4组8位共32个IO口,中断口和P3口复
用。
3
图2.2 STC89C52的引脚图
2.2.2 最小系统
图2.3 STC89C52最小系统图
4
如图所示为最小系统图。
1)复位电路:电容取10u,电阻R取8.2K
2)晶
振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特
率和19200波特率
,用于有串口通讯的场合)或者12MHz(产生精确的方波便于
12分频,方便定时操作)。
3)电源为4.5V,用3节5号电池
2.1.3 选手抢答电路
键盘有两类:独立键盘和矩阵键盘。
独立键盘的特点是每个按键单独占用一个IO口,每个按
键工作不会影响其
它的IO口线的状态,多用于按键不多的场合。可采用JNB或JB来查询是哪一个按键按下,并转向相应的功能处理程序。
当按键较多时,就用到了矩阵键盘。矩阵键盘又称行列
键盘,它是用四条IO
线作为行线,四条IO线作为列线组成的键盘,在行线和列线的每个交叉点上设<
br>置一个按键,这样键盘上按键的个数就是4*4个。这种行列式键盘结构能够有效
地提高单片机系
统中IO口的利用率。
但由于本设计的按键只有八个,所以采用独立键盘方式,编写程序比较简单,<
br>运行速度也较快。如图2.4所示。
图2.4 选手抢答电路图
2.1.4 八段显示电路
本次设计采用了LG
3641AH共阴数码管完成电路的显示工作,该数码管利用
了BCD编码显示数字,程序编译容易,资
源占用较少。并且具有低能耗、低损
5
耗、低压等特点。同时它还易于维护,精度高,操作简单。如图2.5:
图2.5 显示电路图
2.1.5 主持人控制电路
主持人按开始抢答键时,选手开始抢答。主持人按停止确定键
时,禁止选
手抢答,并且可以设置回答抢答,如图2.6所示。
图2.6 主持人控制电路图
6
2.1.6 时间调整电路
持人可自
由设定每次抢答时间,本人设置的初始值是30s。若参赛选手在
设定的抢答时间内进行抢答,抢答才算
有效,数码管将显示选手号与答题时间,
每次答题时间由主持人自由设定,本人设置的初始值是60s,
如图2.7所示。
图2.7
时间调整电路图
2.1.6 蜂鸣报警电路
当主持人启动开始键后,定时器进行减计时,同
时扬声器发出短暂的声响。
参赛选手在设定的抢答时间内进行抢答,抢答才有效,数码管将显示选手号与
答
题时间。若抢答时间已到且无人抢答,则该次抢答无效,系统报警并禁止抢答,
数码管显示选
手号与“FF” ,如图2.8所示。
图2.8 蜂鸣报警电路图
7
智能抢答器的总电路图见附录一
2.2软件设计
本程序采用子程序设计
,在主程序中调用子程序来完成特定的功能,这样程
序会通熟易懂,同时也有利于程序的调试和修改,本
程序流程如图2.9。
图2.9 程序流程图
从流程图上可以看出,启动时显示出“F F
F”然后按下抢答键,若非法抢答
则显示犯规,正常抢答则显示抢答号并倒计时。按下时间调整加一键可
调整抢答
时间,减一键则调整回答时间。
目前,单片机的编程语言主要有C语言和
汇编语言两种。C语言是高级语
言,编写起来比较简便且易维护,汇编语言介于机器语言和高级语言之间
,更接
近硬件,但编写起来比较冗长,所以本次运用的为汇编语言,源程序见附录一。
8
3 智能抢答器的设计实现
3.1原理图绘制
3.1.1 protel软件介绍
PROTEL是Altium公司在80年代末推出的
EDA软件,在电子行业的CAD软
件中,它当之无愧地排在众多EDA软件的前面,是电子设计者的首
选软件,它
较早就在国内开始使用, Protel99 SE共分5个模块,分别是原理图设计、PC
B
设计(包含信号完整性分析)、自动布线器、原理图混合信号仿真、PLD设计
功
能:它包含了电路原理图绘制、模拟电路与数字电路混合信号仿真、多层
印制电路板设计(包含印制电路
板自动布线)、可编程逻辑器件设计、图表生成、
电子表格生成、支持宏操作等功能,并具有Clien
tServer(客户服务器)体系结
构,同时还兼容一些其它设计软件的文件格式。
特点:专题数据库管理环境,对设计文档采取统一的管理机制
网络设计组,可以实现基于异地设计的全新设计方法
具有在线库编辑的库管理
强大的设计自动化功能
智能化的基于形状的自动布线功能及交互式手工布线
更丰富的PCB设计规则
可靠的设计校验,使电路板的可靠性得到保证
具有良好的兼容性和开放性
3.1.2原理图绘制过程
第一步,创建ddb文件,首先打开
protel99SE软件,新建一个工程项目即执
行菜单命令【FILE】【NEW】,在弹出的对话
框如图3.1所示中将文件格式设置
为MS Access
Database,文件名改好,然后点击“OK”就创建了一个后缀名为DDB
9
的文件,我所做的所有内容都会在这个文件里面了。我的工程中我将它命名为
“抢答器.ddb”。
图3.1创建ddb文件
第二步,新建原理图文件,在上一步之后显示的有Design Team,Recycle Bin,
Documents,双击Documents,进入后执行菜单命令【FILE】【NEW】【SCH
EMATIC
DOCUMENT】,这样原理图文件就建立在“彩灯”工程项目的文档下了,将其命<
br>名为“抢答器原理图.sch”在以后的制
作PCB电路板的过程中我也把PCB图建
立在该文档下,这样就可以保持文件的有序。
10
图3.2 新建原理图文件
第三步,载入元件库
,装入所需元件库就是将用户设计中需要用到的元件库
载入当前系统,以便在绘图过程中随时查找和取用
库中的元器件。如图3.3所示。
图3.3 载入元件库
例如在本设计任务中我需载入sim仿真库 ,如图点击“Add
”,此元件库便
添加到工作界面。如果要移除此库,点Remove即可。
11
图3.4元件表
如上图,便可直接在元器件列表中寻找所需的元器件。
此外,为更加方便地找寻元件,还可点击左边的“Browse Sch”下的“Find”
可
直接搜索,打开直接输入RES系统自动在所有库中寻找到目标元件(如
就可以放置这个元件到
所需要的位置。 图3.5,之间加入这个库并且点击
12
图3.5搜索元件
第四步,放置元器件,从装入的元件库中选定所需的各种元器件,将其注意
防止到以建立好的工作平面上。然后根据美观清晰的设计要求,调整元件位置。
并对元件的序号
、封装形式和显示状态等进行定义和设置,以便为下一步的布线
工作打好基础。
总原理图如下
13
图3.6 总原理图
3.2PCB图生成
PCB板生成步骤如下:
第一步,定义元件封装,双击元件如图3.7所示的框图,在FootDrint后面
的框中输
入该元件的封装。
14
图3.7元件封装
第二步,电气法则测试,打开菜单命令【TOOL】中的【ERC】出现如图3.8
所示的框图。
图3.8电气测试规则设置
15
第三步,生成网络表,在菜单栏Design中选择 create
Netlist命令,出现如
图3.9的框图。
图3.9
生成的电路原理图网络表
第四步,装入网络表,单击菜单栏Design中 Load
Nets命令,出现如图
16
3.10。
图3.10 装入网络表对话框
第五步,选择网络表文件,在装入网络表的对话框中,点击B
rowes,出现如
图3.11所示。
图3.11 选择网络表文件对话框
第六步,生成无错误网络表宏信息,如图3.12.
17
图3.12网络表宏信息
第七步,装入网络表与文件,自动布局,如图3.13。
18
图3.13 PCB板
4 智能抢答器的制作
4.1智能抢答器的安装
首先是对照清单表核对零件,然后用识环法认出各个阻值的电阻并且分类
归好。依据
实现绘制成的电气原理图开始排版,然后焊接。然后再此次焊接过程
中遇到了问题,做出了以下归纳 <
br>一般来说,造成硬件问题的首要原因就是焊接失误,即焊接的好坏直接影响
到产品的正常与否,在
本次设计制作的焊接过程中遇到了一些问题,通过查找资
料,找到了相关原因:
1)焊锡用量过多导致焊点的锡堆积;焊锡过少又不足以包裹焊点;
2)冷焊。焊接时烙铁温
度过低或加热时间不足,焊锡未完全熔化、浸润、焊锡
表面不光亮,有细小裂纹。
19
3)焊锡连桥。指焊锡量过多,造成元器件的焊点之间短路。这对超小元器件
及
细小印刷电路板进行焊接时要尤为注意。
4)焊点表面的焊锡形成尖锐的突尖。这多是由于
加热温度不足或焊剂过少,以
及烙铁离开焊点时角度不当造成的。
20
表1
元器件清单表
位号 名称
RP1
规格 数量
1
位号
S1-S15
名称 规格 数量
16
9脚排
1K
电阻
按键开
6X6X5
关
RP2
9脚排
10K
电阻
1 DSP1
数码管
四位0.56
1
共阴
RP3
7脚排
10K
电阻
1 Q1
三极管
S9012 1
R1
色环电
10K
阻
1 LS
蜂鸣器 无源蜂鸣器
1
R2、色环电0欧
R3
R4
阻
色环电
1.5K
阻
R5
色环电
4.7K
阻
C1、电解电
10uF
C3
C2
容
瓷片电
104P
容
C4、瓷片电
20P
C5
容
2 X1
接线座 2P接线座
1
5.08
1 X2
排针
4PIN 1
1 CY1
晶振
12M 1
2 LED1
发光二5MM红色
极管
1
1 IC1
单片机
STC89C52RC 1
2
单片机DIP40标准
1
IC座 座
8X7.6CM 1
PCB板
21
4.2智能抢答器的测试
1)启动电源后系统自动复位,数码管显示“F
FF”。这次设计中,电源用的是
3节5号电池,以下为调试运行时的实物拍摄如图4.1:
图4.1调试开始显示“F FF”
2)抢答开始后, 抢答器倒计时状态
本次设计的八路抢答器可同时供八名选手
进行比赛,分别用八个按钮
S1~S8表示。该系统还设置一个系统清除键S9和一个抢答器开始键S1
0,并由主
持人自由控制。下图是抢答开始后,
抢答器进入5秒倒计时状态实物拍摄如图
4.2:
22
图4.2 5秒倒计时
3)8号选手抢答后42秒倒计时状态
主持人启动开始键后,定时器进行减计倒计。下图便是8号选手成功抢答后
42秒倒计时状态如图4.3
:
图4.3 8号抢答后倒计时42秒
4)3号选手犯规状态
23
主持人按清除键时,禁止抢答,若某选手犯规抢答,数码管将显示选手号与“FF”
。
下图是主持人禁止抢答后, 3号选手犯规抢答时的实物拍摄如图4.4:
图4.4 3号犯规
5)抢答和回答时间的调整
主持人可以根据现场的具体情况自由调节抢答和回答时间上限,下
图为加减
时间的实物图4.5:
图4.5 抢答和回答时间设置
6)实物展示
24
通过这段时间的努力,终于成功做好了预期的八路抢答器。如图4.6所示为
实物图。
图4.6
实物图
结论
通过上述测试可知,本抢答器具备了预期
的功能,它设计合理,结构简单,
通用性好,功能强大,抢答可靠,能快速反应。
致谢
首先我要感谢我的导师王老师在毕业设计中对我给予的悉心指导和严格要
求,她
的指导使我有完成论文的信心。王老师从选题、论文资料的收集、论文框
架的确定、开题报告准备及论文
初稿与定稿过程中倾注了大量的心血。她对单片
25
机的专业研究和对该课题深刻的见解,使我受益匪浅。
同时也感谢本校的一些老师在毕业设计
期间所给予我的帮助,是你们的关怀
使我能够顺利的完成毕业论文。在我的学业和论文的研究工作中无不
倾注着老师
们辛勤的汗水和心血。老师的严谨治学态度、渊博的知识、无私的奉献精神使我
深受
启迪。在此我要向我的导师再次致以最衷心的感谢和深深的敬意,同时还要
感谢学校在毕业设计期间提供
给我们优越的条件。接着,我还要感谢和我一起做
毕业设计的同学,在毕业设计的短短几个月里,你们给
我提出很多宝贵的意见,
给了我不少帮助和支持,在此也真诚的谢谢你们。
参考文献
1 张平.AT89S52单片机基础项目教程.北京理工大学出版社,2012
2 周润景等.单片机电路设计、分析与制作.机械工业出版社,2010
3
张宏伟等.单片机应用技术.北京理工大学出版社,2010
4
皮大能.单片机课程设计指导书.北京理工大学大学出版社, 2010
5
姜治臻.单片机技术实践.高等教育出版社, 2010
26
附 录
附录一 智能抢答器的总电路图
附录二 源程序
ST EQU 20H;开始抢答标志
RING EQU 22H;响铃标志
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP
INT0SUB
ORG 000BH
AJMP
T0INT
ORG 0013H
AJMP
INT1SUB
ORG 001BH
27
AJMP T1INT
ORG 0040H
MAIN: MOV R1,#15;初始设置抢答时间为15s
MOV R2,#45;初始设置答题时间为45s
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;允许四个中断,T0T1INT0INT1
CLR ST
CLR RING
SETB TR1
SETB
TR0;刚开始就运行定时器,并显示FFF.如果想重新计数,重置
TH1TL1就可以
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
ST;抢答标志位,用于COUNT子程序中判断是否查询抢答
MOV
R7,#01H;读抢答键数据信号标志,这表示只读一次有用信号
MOV
R3,#0AH;抢答只显示计时,灭号数
AJMP
COUNT;进入倒计时程序, 在COUNT里面查询有效抢答的程
序
NEXT:
JNB P1.0,FALSE1
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
28
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
INT0SUB:MOV A,R1
MOV B,#0AH
DIV AB
MOV R5,A
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
29
ACALL DELAY1
AJMP INT0SUB
BACK0:
RETI
INT1SUB:MOV A,R2
MOV
B,#0AH
DIV AB
MOV R5,A
MOV R4,B
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;重置定时器
RECOUNT:MOV
A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间
给R6
MOV B,#0AH
DIV AB;除十分出个位十位
MOV
30H,A;十位存于(30H)
30
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
ST,CHECKK;只在回答倒计时才有效
AJMP NEXTT
CHECKK:JNB P3.0,REPEAT;判断是否使用锦囊
NEXTT:
ACALL DISPLAY
JB ST,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 ST;如果按下了清除键执行的程序
CLR RING
AJMP START
31
TRUE1: ACALL BARK
MOV A,R2
MOV R6,A;抢答时间R2送R6
MOV R3,#01H
CLR ST;因为答题的计时不再查询抢答,所以就锁了抢答
AJMP COUNT
TRUE2:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#02H
CLR ST
AJMP COUNT
TRUE3:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#03H
CLR ST
AJMP COUNT
TRUE4:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#04H
CLR ST
AJMP COUNT
TRUE5:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#05H
CLR ST
AJMP COUNT
TRUE6:
ACALL BARK
MOV A,R2
MOV
R6,A
MOV R3,#06H
CLR ST
AJMP COUNT
TRUE7:ACALL BARK
MOV
A,R2
MOV R6,A
MOV R3,#07H
CLR ST
AJMP COUNT
TRUE8:ACALL BARK
32
MOV A,R2
MOV R6,A
MOV R3,#08H
CLR ST
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 ST
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
33
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
;灭灭
DAT2:DB
3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H
;第一个为零,其他与上相同,因为十位如果为零显示熄灭
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
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
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
CLR RING;按键发声
RET
34
T0INT: MOV TH0,#0ECH
MOV
TL0,#0FFH
JNB RING,OUT;
CPL P3.6;RING标志位为1时候P3.6口不短取反使喇叭发出一定频
率的声音
OUT: RETI
T1INT: MOV TH1,#3CH
MOV TL1,#0B0H
INC R0
RETI
EN
35