科技职业学院信息技术系 电子信息工程技术专业毕业设计
PUSH DPL PUSH DPH
RETI ;清除高级中断激活标志
ERR1: MOV POWER,#0AAH;重建上电标志 CLR A ;准备复位地址 PUSH ACC ;压入复位地址0000H
PUSH ACC
RETI ;清除低级中断激活标志,从程序0000H开始执行。
这段程序先关中断,以便后续处理能顺利进行,然后用两个RETI指令代替两个LJMP指令,从而清除了两级中断激活标志。有相应软件陷阱捕捉来的程序可能没有全部激活两个标志,这也无妨。
3.9 本章小结
本章详细讲述了以AT89C51为核心元件的抢答器的硬件电路具体设计过程,分析了具体电路。在设计过程中,实现抢答功能的是通过编写程序的方法集成在AT89C51内部。接着将程序下载到硬件电路中,配合周边的时钟电路,复位电路等,制作出符合设计要求的抢答器。
17
科技职业学院信息技术系 电子信息工程技术专业毕业设计
第四章 软件设计
4.1 主程序系统结构图
数码显示模块
非法抢答模块 正确抢答模块 调整抢答时间 调整回答时间按键模块 系统初始化模块 图4-1软件系统结构图
4.2软件任务分析
软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。
软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印[8],输
18
科技职业学院信息技术系 电子信息工程技术专业毕业设计
出控制和通信等,另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。
软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。在各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。
各执行模块规划好后,就可以监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比较难了。
软件任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延误几十ms甚至几百ms也没关系,故通常将监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断(如掉电中断)。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。
4.3 程序流程图
在本设计中包括了以下八个主要的程序:主程序;非法抢答序;抢答时间调整程序;回答时间调整程序;倒计时程序;正常抢答处理程序;犯规处理程序;显示及发声程序
[9]
。主流程图如4-2所示。
19
科技职业学院信息技术系 电子信息工程技术专业毕业设计
初始化 显示FFF 开始键按下? Y 去抖动 加一键按下? Y Y 减一键按下? 调整抢 答时间 显示 犯规 非法抢 答处理 正常 抢答 显示抢答 号并倒计时 回答 时间 图4-2 程序设计流程图
4.4本章小结
本章是抢答器的软件设计,实现抢答功能主要是通过编写程序的方法集成在AT89C51内部。将程序下载到硬件电路中,实现抢答功能。
第五章 Proteus仿真系列组图
5.1系统仿真图
5.1.1复位图
20
科技职业学院信息技术系 电子信息工程技术专业毕业设计
图5-1 复位显示三个FFF
5.1.2设置计时时间
图 5-2计时时间为17秒
5.1.3非法抢答并显示座号
21