综合系统设计题目.docx
《综合系统设计题目.docx》由会员分享,可在线阅读,更多相关《综合系统设计题目.docx(23页珍藏版)》请在冰豆网上搜索。
综合系统设计题目
综合系统设计题目
题目一:
智能时控开关设计
主要内容:
利用单片机中的定时器、IO接口、中断系统等资源,设计一智能时控开关系统,能根据时刻信息或倒计时信息对多路开关进行控制。
基本要求:
(1)系统含24小时时钟,用数码管可显示小时、分钟及秒时间信息。
(2)可通过按键对时钟进行校准,可对定时时刻或倒计时时间进行设置。
(3)定时时间到时,用发光二极管闪烁及蜂鸣器发声提示。
人工干预后停止闪烁及发声,并用发光管指示开关状态。
提高部分:
(4)可对多路(3~5路)开关进行定时控制。
(5)可对每路按多个时间顺序设置开关控制。
(如:
8:
00开,12:
00关,14:
00开,16:
00关)。
(6)尝试为系统设置语音提示功能。
题目二:
交通信号灯模拟系统设计
主要内容:
利用单片机中的定时器、IO接口、中断系统等资源,设计一个十字路口交通信号灯的控制模拟系统。
基本要求:
(1)利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭。
(2)可通过按键对红绿灯点亮和熄灭时间进行调整及设置。
(3)能对红绿灯点亮和熄灭时间进行倒计时时间显示。
提高部分:
(4)可进行紧急或特殊情况的人工处理控制。
(5)有内部24小时钟,可根据时间表对对红绿灯点亮和熄灭时间进行自动调整。
(如高峰期:
7:
30-8:
30,17:
00-18:
30或夜间时段红绿灯主次干道时长比等)。
(6)可根据交通流量自动调整对红绿灯点亮和熄灭时间。
题目三:
智能温度采集与控制系统的设计
主要内容:
利用单片机中的定时器、IO接口、中断系统等资源,设计一个数字温度计,要求能在数码管上显示两位温度数值(假设温度变化范围为0°~50°),且当温度每变化1度时立即更新显示。
基本要求:
(1)系统能通过I/O接口线对加热装置进行控制,并通过A/D转换电路采集该装置温度信息。
(2)具内部24小时时钟,可利用两位LED数码管即时显示采集的温度值。
(3)当温度每变化1度时应立即更新显示。
提高部分:
(4)设计温度控制功能,对加热装置的某个温度值进行控制。
(5)设计温度控制功能,对加热装置的某个温度范围进行控制。
题目四:
乒乓球游戏模拟器设计
主要内容:
利用单片机中的定时器、IO接口、中断系统等资源,设计一个乒乓球游戏模拟器,在仿真环境下进行模拟乒乓球比赛。
用8个LED发光管的来回滚动显示模拟打乒乓球时乒乓球在两边球台上的来回运动。
比赛双方各用1个按钮来模拟发球与接球,即发球方按动其控制的按钮,球从发球方一侧向对方运动(LED发光管从发球方到对方逐个点亮,滚动显示)。
当球运动至接球方时,接球方立即按动其控制的按钮,“击球”使球“弹回”发球方一侧。
如此周而复始,直至在规定的击球时间内有一方未能完成击球动作,从而对方得一分;然后继续比赛。
基本要求:
(1)记分。
比赛双方各用3位八段管记录得分,其中1位记录盘分(大比分,如3:
2),2位记录局分(小比分,如09:
05),盘分局分初始值均可预先设定。
(2)十一分制。
7局4胜,两球轮换发球,在一局比赛中,先得11分的一方为胜方。
比赛结束八段管显示胜负局数,按键后重新开始。
(3)发球方的初始状态为:
靠近己方的第1个LED闪烁发光,表示发球权的归属。
(4)球以1LED/0.5s的速度移动。
在球到达前按下按钮无效(不起回球作用);在球到达后的0.5s内按下按钮有效(回球),否则失球(失分),本回合结束,刷新比分。
*设计提示:
球到达接球方后,立即读接球方的按钮状态,若未按则有效(若已按下则无效),然后不断读按钮状态,直到按下代表“击球”动作。
提高部分:
(5)在一局比赛中,先得11分的一方为胜方,10平后,先多得2分的一方为胜方。
(6)可改变球移动速度,即每个LED点亮时间分别为0.5s、0.4S,0.3s、0.2s。
(7)可改变允许击球时间0.5s、0.4S、0.3s、0.2s。
(8)球移动速度取决于击球时间,即球移动速度(每个LED点亮时间)在0.2~0.5s内可变,具体取决于球到达接球方后击球所花的时间0~0.5s,如花的时间短则回球后球移动速度快,反之回球后移动速度慢,如下表所示。
球移动速度与击球时间对应表
球到达至击球时间/s
0~0.2
0.2~0.3
0.3~0.4
0.4~0.5
球移动速度(灯点亮时间)/s
0.2
0.3
0.4
0.5
(9)比赛开始前双方争发球权。
开始时刻8个LED发光管的第4个或第5个(中间位置)闪烁,按键或拔动开关产生1个随机数(0、1),0向左方向,1则向右方向滚动,得分方获发球权,
题目五:
设计并制作4路LED定时显示控制电路
主要内容:
利用单片机中的定时器、IO接口、中断系统等资源,设计一个4路LED定时显示控制电路。
基本要求:
(1)单片机系统设计。
包括实时时钟的显示与调整,显示屏的驱动、键盘接口驱动电路等外围硬件的设计及其软件编程。
(2)4路LED定时时间设置与存贮。
(3)4路LED定时时间的控制。
通过比较当前时间和已存贮的4路LED定时时间,完成对4路LED的驱动显示。
提高部分:
(4)在对4路LED定时时刻启动显示的基础上,完成对4路LED定时时段的控制。
题目六:
模拟电梯设计
主要内容:
利用单片机中的定时器、IO接口、中断系统等资源,用键盘、按钮、八段数码管和LED模拟电梯工作过程。
楼层设为8层,键盘数字键1~8用来键入希望停的楼层,8个LED显示希望停的楼层,八段数码管指示电梯当前所在楼层,按扭用来启、停电梯。
电梯正常运行时以每2秒1层的速度上升或下降。
基本要求:
(1)运行按钮。
设当前电梯停在某层(八段码显示相应楼层,8个LED全灭)。
键入1~8数字键,如键入的数字与当前电梯停层相同,则不发生任何动作;若不同则相应楼层的LED亮。
如再按运行键,则电梯自动判别上升或下降(在运行过程中八段码显示楼层变化)一直到达希望停的楼层(八段码显示该楼层,相应LED灭);
(2)动态增加新的停靠楼层。
设当前电梯正在上升或下降运行(此时八段码显示楼层变化,LED指示希望抵达的楼层),若键入新的希望停的楼层数字(相应的LED亮),则对同方向(上升或下降)未到的楼层能停,对其他情况则先停原希望停的楼层,然后按运行键后继续进行。
如下几例:
a)设电梯当前在2层,向上运行,LED指示希望在6层停,此时若键入4,则电梯将在4层停;若再按运行键,则继续运行至6层停。
b)同上情况,若键入的不是4而是8,则电梯将先停在6层;再按运行键,运行至8层停。
c)同上情况,若键入的不是4或8,而是1,则电梯先停在6层;再按运行键,运行至1层停。
。
提高部分:
(3)直达按钮。
若按此按钮,电梯按直达方式运行,即对运行期间新键入的停靠楼层(即使是同方向未到楼层)不作停靠,直达终点楼层。
(4)急停按钮。
电梯运行中,若按此按钮,则电梯立即停在将要到达的楼层。
(5)断电待修按钮。
按下该按钮电梯不能工作,再按一下才能重新工作。
附1论文形式
(1)设计过程:
系统分析及总体目标设计(含功能、使用规范)
总体方案确定
硬件设计、软件设计
系统组成及修改调试
实验设计报告
(2)设计报告要求:
必须独立完成,格式符合要求,文字(不含图形、程序)不少于3000字,图形绘制规范。
设计报告的格式如下:
1、封面
2、内容提要
3、目录
4、正文
(1)所作题目的意义、本人所做的工作及系统的主要功能;
(2)硬件电路设计及描述;
(3)软件设计流程及描述;
(4)源程序代码(要有注释);
5、心得体会
6、参考文献
(3)论文形式示例
智能风扇设计报告
谭宇何莹姚瑶
(武汉大学电子信息学院430072)
摘要:
系统以单片机与FPGA为核心,利用移相斩波法,使用光耦和可控硅,通过对220V交流电的相位跟踪来调节可控硅的导通角,实现对电压有效值的连续调节,从而实现风扇转速在0-600转的连续精确可调,并能控制风扇实现普通风、自然风、睡眠风三种智能功能,同时测出对应时刻的风扇转速,并且还带有红外遥控功能。
整个系统结构简单,功能全面,达到了风扇转速的智能化控制的指标。
关键字:
0引言
1方案比较与论证1.1题目任务要求及相关指标的分析1.2方案的比较与选择
2系统总体设计方案及实现方框图
3理论分析与计算
4主要功能电路的设计
5系统软件的设计
6测试数据与分析
7结论
8参考文献
附2乒乓球游戏模拟器设计
1)基本要求
用8个LED发光管的来回滚动显示模拟打乒乓球时乒乓球在两边球台上的来回运动。
比赛双方用按按钮(双方各用1个按钮)的方法来模拟发球与接球,即发球方按动其控制的按钮,球从发球方一侧向对方运动(LED发光管从发球方到对方逐个点亮,滚动显示)。
当球运动至接球方时,接球方立即按动其控制的按钮,“击球”使球“弹回”发球方一侧。
如此周而复始,直至在规定的击球时间内有一方未能完成击球动作,从而对方得一分;然后继续比赛。
比赛规则可参照一般的乒乓球比赛规则。
比赛规则制订:
(1)十一分制(两球轮换发球)二十一分制(五球轮换发球)。
可用一位开关设定。
(2)发球方的初始状态为:
靠近已方的第1个LED闪烁发光,表示发球权的归属。
应根据规则由系统自动设定初始状态。
一般要求可自行定义首次开局由左方先行发球。
(3)失球后(未完成击球动作)应在八段码显示得失分数,并判断是否换发球,以继续比赛。
(4)由开始时刻对规则的设定,当计满最高分时,(十一分、二十一分)结束当前局比赛,并熄灭所有LED发光管,(当前局结束标志)按键重新开始交换发球权,回到规则
(2)。
(5)设定3局2胜或5局3胜制,比赛结束八段码显示胜负局数,按键后可重新开始。
设计要求:
(1)球以每0.5s滚过1个LED的速度移动。
(2)回球需在球到达后的0.5s内进行(按下按钮),否则按失球计。
(3)球未到达提前按下按钮不起回球作用。
(4)用6个八段码为双方记分(每方3个八段码,十进制计数,初始值0:
0)。
2)设计提示
球到达接球方后,立即读接球方的按钮状态,若未按则有效(若已按下则无效),然后不断读此按钮状态,直到按下代表“击球”动作。
3)进一步设计要求
(1)通过拨动开关改变球移动速度,即每个LED管点亮时间分别为0.5s、0.4S,0.3s、0.2s。
(2)通过拨动开关改变允许击球时间0.3s、0.2s、0.1s。
(3)球移动速度取决于击球时间,即球移动速度(每个LED点亮时间)在0.2~0.5s内可变,具体取决于球到达接球方后击球所花的时间0~0.5s,如花的时间短则回球后球移动速度快,反之回球后移动速度慢,如表1所示。
表1球移动速度与击球时间对应表
球到达至击球时间/s
0~0.2
0.2~0.3
0.3~0.4
0.4~0.5
球移动速度(灯点亮时间)/s
0.2
0.3
0.4
0.5
(4)发球权由争球决定,开始时刻8个LED发光管的第4个或第5个(中间位置)闪烁,按键或拔动开关产生1个随机数(0、1),0则向左方向,1则向右方向滚动争球比赛开始,得分方获发球权,正式比赛开始。
一、乒乓球比赛程序的数据设计
为叙述简单起见,将比赛双方称为A和B
(1)确定每局的比赛分数
即确定11分一局还是21分一局,这可定义一个称为V1的变量,它的内容为11或21,表示一局比赛的分数,其数值用一个称为K1的拨动开关决定,可定义为当K1为“0”时,V1=11;K1为“1”时,V1=21。
(2)确定每方的发球次数
按照乒乓球比赛规定,若采用11分一局的赛制,每方发球次数为2;若采用21分一局的赛制,每方发球次数为5。
故再定义一个称为V2的变量,它的内容为2或5,表示每方的发球次数,其数值同样由上述的K1开关所确定,可定义为当K1为“0”时,V2=2;K1为“1”时,V2=5。
(3)确定每盘的获胜局数
这也是定义一个称为V3的变量,其内容为2或3,分别表示“3局2胜”或“5局3胜”,其数值用一个称为K2的拨动开关决定,可定义为当K2为“0”时,V3=2;K2为“1”时,V3=3。
(4)确定发球方
这可定义一个称为V4的逻辑变量,其内容为“0”或“1”,可规定为当V4=“0”时由A发球;而当V4=“1”时由B发球。
若希望改变发球方,只要对V4变量执行“取反”操作即可。
以下讲述“在比赛中如何确定发球方?
”的处理方法,这只要为比赛双方分别定义两个“发球计数器”(用符号CA和CB表示),每赛完一分,先执行“将当前发球方的发球计数器的内容加1”的操作,再进行“当前发球方的发球计数器的内容是否小于变量V2?
”的判断,若成立就维持当前发球方的发球权,否则就执行“将当前发球方的发球计数器清除为0”的动作后,再改变发球方。
由于乒乓球比赛中有一个“轮换发球”的规定,即若比赛双方所获得的分数均不小于10(或20)分后,每赛完一分,就交换一次发球权,故只要当有这个条件,就要执行“将上述V2变量的数值设置为1”的动作。
(5)比赛分数统计
这只要为比赛双方分别定义两个“赛分计数器”(用符号FA和FB表示),比赛中谁获得了赛分,就执行“将与其对应的赛分计数器加1”的动作。
(6)确定获胜局
每获得一个赛分,都应进行“是否赛完了一局?
”的判断,其处理过程如下(设想A获得了赛分),若“(FA)-(FB)不小于2”和“(FA)不小于(V2)”这两个条件都成立,那么A就得到了一个“获胜局”。
(7)确定获胜方
每得到一个“获胜局”,都要进行“确定获胜方”的判断,为此应为比赛双方分别定义两个“局计数器”(用符号JA和JB表示),比赛中谁得到了一个获胜局,就执行“将与其对应的局计数器加1”的动作,再进行如下的判断(设想A得到了获胜局),若有“(JA)不小于(V3)”的条件成立,那么A就是“获胜方”,否则执行“开始下一局比赛”的动作。
二、系统的软件设计思路
任何软件的设计首先都应该对模型进行抽象使用形式化语言对任务进行描述。
对于具体到本实验的设计:
最需要描述和处理的事件就是击球动作(即按键的响应),比赛双方任何一人按下键都是一个击球动作,需要判断是发球还是击球,是提前击球是滞后击球还是准确击球,这是本实验把乒乓球游戏抽象为系统模型的一个关键点。
是否准确击球具体实现方法为:
若有键按下则先判断A还是B击球(按下按键),再根据球所在位置(即当前LED的显示值)就可以判断击球准确还是失球。
比如说现在A按键击球,而同时LED当前显示值为01H(即LED1点亮,代表当前处于A的有效击球时间),则判A正确击球,反之若LED点亮处于其他任何状态都判A失球B得分;同样B的有效击球时间应为LED显示值为80H的时间段内,其他时间段B有击球动作都判B失分。
本实验另一个设计要点就是LED的显示部分,球移动的动作抽象到系统模型即为LED的逐个点亮,而具体设计程序时,需要设计一个LED显示的子程序,再用不同的亮灯数值通过调用LED显示子程序刷新LED显示即可完成。
另外定时中断在本实验中也占有相当大的比重,LED逐个点亮的时间间隔,击球是否在规定时间内完成,这些都需要使用定时器来产生所需要的时间标度。
本实验实现难点就在于程序编写过程中逻辑判断多且繁杂,为克服这一难点,对整个程序将用到的判断在程序开始统一设定标志位,这样既让程序显得简洁易懂又降低了程序的编写难度,例如:
FZHIEQU20H.0;20H.0标志分制:
0为11分制;1为21分制
FQIUEQU20H.1;20H.1标志发球权:
0为A发球;1为B发球
其中各标志位的命名则由程序员的习惯而定。
当程序实现功能较为复杂时,各子程序模块化的设计就显得尤为重要了。
一个程序如果在模块化设计方面做得好,不仅使程序变得整洁易读,而且易于程序员修改与交流。
本实验设计的程序主要包括主程序,键盘扫描子程序,判分子程序,显示子程序,中断服务子程序等五个大的模块。
其中主程序主要初始化系统状态;键盘扫描子程序查询键盘返回键值并等待中断;显示子程序刷新LED和数码管的显示;定时中断服务子程序主要影响多个标志位。
1主程序
主程序在整个程序开始执行和乒乓球游戏重新开始时被执行,实现系统的初始化,使软硬件各部分处于预定状态,其中对8279的初始化是相对比较复杂的一个部分,8279初始化具体代码如下:
MOVDPTR,#COM8279;8279控制口地址
MOVA,#0D3H
LOOP:
MOVXA,@DPTR
JBACC.7,LOOP;8279清零
MOVA,#34H;20分频
MOVX@DPTR,A
MOVA,#10H;8字符显示,右进,编码扫描,2键锁定
MOVX@DPTR,A;8279初始化
2键盘查询程序
键盘查询程序应包含键盘扫描子程序和键值判断子程序,对于实验开发系统AEDK5196ET,键盘管理可以使用8255或专用的键盘管理芯片8279来实现,在本文设计中,采用8255管理键盘,其中设计一个2行*8列的键盘,2根行线接在PB0和PB1上,8根列线接在PA0~PA7上,并将8255的片选信号CS接在编号为8700H的译码输出端.(具体代码可参考实验指导书)
有了键盘扫描子程序,就可以设计键值判断程序调用键盘扫描程序后判断键值以转向不同的处理子程序.
3定时中断服务子程序
89C51系统提供两个定时器,本文采用定时器0提供10ms的定时时间多次调用以产生10mS~0.5S或者更长的时间标度作为LED发光管移动的间隔时间。
每次定时器溢出中断后程序PC被硬件设为000BH,这时可在程序开头位置写一条转移指令如
“ORG000BH
LJMPTOSEV”
即可在定时中断后转向自己编写的中断服务程序.
4判分处理子程序
在本实验中,判分程序是比较麻烦也比较容易出错的模块,在判分程序中,必须根据按键或是定时中断服务程序所设立的标志位来判断A和B的得失分和局比分情况,以及根据AB得分和总的局比分刷新LED和数码管的显示数据。
具体来说,A提前击球或滞后击球(到A击球时间内A未击球也归于滞后击球),则B得分,此时应判断在B得分数加1后是否到最高分,是最高分则刷新局比分重新开始游戏。
5显示子程序
LED的显示在本实验中主要模拟球的滚动,实现方法和原理都很简单,首先在硬件连线上将8个LED的接口连到PO0~PO7,再将作为输出锁存器的74273片选信号CS连到地址译码端口8000H,这样只需向地址为8000H的外部I/O端口送数据即实现了LED的显示了。
附3模拟电梯设计
基本要求:
用键盘、按钮、八段码和LED模拟电梯工作过程。
楼层设为8层,键盘数字键1-8用来键入希望停的楼层,8个LED显示希望停的楼层,八段码指示电梯当前所在楼层,按扭用来启、停电梯。
电梯正常运行时以每2秒1层的速度上升或下降。
要求“电梯”能按以下方式运行:
(1)设当前电梯停在某层(八段码显示相应楼层,8个LED全灭)。
键入1-8数字键,如键入的数字与当前电梯停层同,则不发生任何动作;若不同则相应楼层的LED亮。
如再按运行键,则电梯自动判别上升或下降(在运行过程中八段码显示楼层变化)一直到达希望停的楼层(八段码显示该楼层,相应LED灭);
(2)设当前电梯正在上升或下降运行(此时八段码显示楼层变化,LED指示希望抵达的楼层),若键入新的希望停的楼层数字(相应的LED亮),则对同方向(上升或下降)未到的楼层能停,对其他情况则先停原希望停的楼层,然后按运行键后继续进行)。
如下几例:
a)设电梯当前在2层,向上运行,LED指示希望在6层停,此时若键入4,则电梯将在4层停;若再按运行键,则继续运行至6层停。
b)同上情况,若键入的不是4而是8,则电梯将先停在6层;再按运行键,运行至8层停。
c)同上情况,若键入的不是4(或8),而是1,则电梯先停在6层;再按运行键,运行至1层停。
进一步设计要求:
除运行按钮外,再设计几个按钮,模拟更多的电梯运行功能,如:
1.直达按钮若按此按钮,电梯按直达方式运行,即对运行期间新键入的停靠楼层(即使是同方向未到楼层)亦不停,直达终点楼层。
2.急停按钮电梯运行中,若按此按钮,则电梯立即停在将要到达的楼层。
3.断电待修按钮按下该钮电梯不能工作,再按一下才能重新工作。
其他功能按钮(由设计者自由发挥)。
电梯状态的介绍
1)当电梯主体由低楼层向高楼层运动时,称为上升状态。
2)当电梯主体由高楼层向低楼层运动时,称为下降状态。
3)当电梯主体到达了某个乘客所希望到达的楼层(以下简称目标楼层)后,在系统中仍然有使用它的请求存在,称为暂停状态。
4)当电梯主体到达目标楼层后,在系统再也没有使用它的请求存在,称为停止状态。
5)当乘客进入电梯主体后,使用梯内控制器向系统发送到达其它楼层的请求时,称为楼层请求发送状态。
6)当电梯正在运行时,产生了停电条件,此时称为停电状态。
当电梯主体在进行状态转换时,将遵守以下的运行规则:
1)上升状态能变为暂停状态,转变条件为电梯主体到达了目标楼层。
2)上升状态能变为停电状态,转变条件为电梯上升时遇到了停电条件。
3)下降状态能变为暂停状态,转变条件为电梯主体到达了目标楼层。
4)下降状态能变为停电状态,转变条件为电梯下降时遇到了停电条件。
5)暂停状态能变为上升状态,转变条件为以下两个条件中的任意一个成立。
键盘的管理策略的探讨及选择
方案一:
实验装置上有一个2*8的键盘,它的2根行线接在8255A并行I/O接口的PB0和PB1上,8根列线接在PA0~PA7上,使用行扫描法管理该键盘的子程序。
方案二:
采用实验装置上的8279来管理键盘。
由于方案一可以满足设计需求。
所以选择方案一来管理键盘。
系统设计的主要难点
⑴该系统模拟真实电梯的运行,有生活经验可知电梯有楼层数字显示,内部面板按钮用以楼层请求且按下后相应的键亮(此处用LED模拟),上升下降显示(该系统不模拟电梯外部等待按键请求),所需控制的东西较多,实现起来逻辑需清晰。
⑵在基本要求及实现的功能⑵中可知在电梯运行过程中有键按下后如何判断先满足哪个请求
系统的硬件设计思路
该实验在ADEK5196实验箱上实现电路设计。
采用8255控制键盘查询,8279控制的8段数码管(HL6,HL7)显示来表示当前电梯所在层,LED控制楼层亮灯情况,串行口扩展并行输出接口的8段数码管(HL5)显示电梯运行状态“U”或“P”
实验连线任务为:
(具体电路可参照单片机实验指导书)
LED控制部分:
DL1~DL8接74LS273的PO0~PO7,其设备选择端“CS”接编号为8100H的译码器输出。
8255控制键盘查询部分:
实验装置上有一个2*8的键盘,它的2根行线接在8255A并行I/O接口的PB0和PB1上,8根列线接在PA0~PA7上,“CS”接编号为8700H的译码器输出.该部分只需将十个跳帽都跳至8255处即可。
采用8279控制数码管显示:
实验装置上该部分已连好所以无需连线。
串行口扩展并行输出接口部分:
将74LS164移位寄存器的INDATA连到8031的RXD,CLK连到TXD。
系统的软件设计思路
一