1、 课 程 设 计 报 告 设计题目:民航客机客舱服务请求系统 II (时序电路设计) 姓名:孙健 学号: 2011084040015 教师:王振松 日期 2013.6.29 摘 要 本设计实现的是民航客机客舱服务请求系统的功能。 该设计采用主从结构,监控机构置于空乘人员处,乘客有请求按下位于座位上方请求按钮后, 根据优先等级, 在显示器上显示乘客的位置,并点亮相应座位的指示灯。 采用模块设计思想,分为 3 个主要功能模块:请求显示模块,译码显示模块,以及请求模块, 共同工作完成本电路的功能实现。 本论文阐述了如何利用数字电路的思想。 关键词: 民航客机客舱服务请求系统,模块设计,主从结构, 时
2、序 电路 1.课程设计任务及要求 1.1 设计任务 设计一个 180 人的名航客机客舱服务请求系统。 民航客机的乘客服务请求系统包括:每个座位上方设置的服务请求按钮和指示灯、机舱尾部设置的服务请求指示装置 (如 LED 灯阵列 )以及相应的控制电路 。 乘客有服务请求时,按下座位上方的请求按钮,指示灯会变亮, 按钮为 轻触式按键 (按下释放后会自动弹起 );设置头等舱、商务舱以及经济舱,对于每种舱位均设置一个数码显示装置来显示最先发起服务请求的座位号(即显示的请求以时间作为优先级排序) 会按优先级依次显示座位号 ;客服人员完成 服务后,再按一次服务请求按钮来确认服务已完成,相应的指示灯熄灭 。
3、 1.2 设计要求 1.写出该 时序 逻辑电路的分析和设计方法; 2.使用某种 HDL语言(如 Verilog HDL)设计并进行仿真。 3.完成设计报告。设计报告应包含设计过程中所包含的文档要求 具体包括: ( 1)使用 Quartus建立工程; ( 2) Quartus工程设计; ( 3)设置编译选项并编译硬件系统; ( 4)进行仿真观察输入输出状况 2.系统设计 2.1 方案论证 数字逻辑电路控制方案 数字逻辑电路控制系统主要由各种逻辑元件构成,包括计数器、触发器以及各种门电路,硬件设计思路非常简单,造价低廉,元件少,体积小, 稳定性好 , 可靠性和性价比都很高。 缺点在于功能实现后电路
4、结构复杂,维护起来比较困难。 在本设计中,采用数字逻辑电路控制系统 ,与单片机相比,该电路具有价格低,元件少,体积小, 稳定性好 , 可靠性高 的特点。因此,在本设计上采用数字逻辑电路方案。 其中运用优先级解码器实现小规模逻辑门电路, 7 段字形译码器 74LS47D 和实现译码显示模块主要功能。 使用 Quartus作为设计软件,用 verilog语言的编程方法描述电路的逻辑结构。 2.2 系统设计 2.2.1 结构框图及说明 本次课设的题目是客舱呼叫系统,有三个 客舱 ,分别编号为 1、 2、 3,其优先级依次降低。即当一号 客舱 有信号输出的时候即使其他 客舱 有信号输出系统也不会响应。
5、当二号 客舱 有信号输出时, 3 号 客舱 有信号输出系统不响应其信号。此过程为组合电路,有 if 语句完成其功能。 当病房没有信号时,动态数码管和双色点阵显示 0。有信号输出时,动态数码管和双色点阵显示输出的病房号 。 由于分为三种舱位进行优先级分配 ,在这里,暂取三输入来演示,外加多路选择器便可扩展为所要求端口数。 方案中,进行信号保持的模块可以利用多种方案来实现,例如用 D触发器、 74373 八 D 锁存器等;闪烁灯选通电路通过 6 个与门和一个或非门,加上时间脉冲来实现;计数扫描部分配合 三 路输入则可完成本设计中最关键的选通部分,选通之后进入优先编码器进行优先编码实现病房优先级别的
6、高低,最后译码显示。 2.2.2 工作原理 民航客机客舱服务请求系统分为 几个 功能模块:呼叫显示模块,译码显示模块 ,呼叫模块 , 信号保持单元 。 这些模块共同工作完成本电路的功能实现。其中运用了优先编码器来实现优先选择模块主要功能,运用 7 段字形译码器 74LS47D 和共阴极七段数码管来实现译码显示模块主要功能。 信号呼叫由呼叫显示模块的各个呼叫开关发出并使对应的座位指示灯亮起。接着,信号传到优先选择模块, 将高等级 先传到 的乘客的信号选择出来,并传到呼叫模块与译码显示模块。 译码显示模块通过可编程器件与 74LS47D 将信号变换成对应的乘客座位号,并由七段数码管显示出来。当该乘
7、客服务完毕后,断开其对应的呼叫开关,此时该系统将显示下一名乘客座位号。当所有的乘客都已经获得服务后,该系统将自动复位 三路输入 用三个触发器进行信号保持 选通 优先编码 译码 显示呼叫的座位号 闪烁灯选通电路 闪烁灯 时间脉冲 计数扫描 三个客舱灯 将数码管熄灭,整个系统恢复待机状态。 优先编码模块 : 由于只有 1-5 个拨吗开关,所以实际是 5-3 优先编码,当然由于有复位功能的要求,所以要求 5-3 优先编码模块要有复位开关 R。要求 T1 优先级最高 1-5 依次次之。 则真知表如下图。 R T1 T2 T3 T4 T5 C1 C2 C3 1 x x x x x 0 0 0 0 0 0
8、 0 0 0 0 0 0 0 1 x x x x 0 0 1 0 0 1 x x x 0 1 0 0 0 0 1 x x 0 1 1 0 0 0 0 1 x 1 0 0 输出信号为 C1,C2,C3,值为 000-101 显示六种状态,数值为 0-5,分别表示:置 0 态(无优先状态), T1 优先态, T2 优先态, T3 优先态, T4 优先态, T5 优先态。 动态晶体管控制电路。 首先必须知道动态晶体管的工作方式,八个动态晶体管公用一组数选输入口,所以在要求所有的晶体管同时工作,这就要求通过位选输入信号端,要有很高的频率来不断地选择这八个动态数码管。当位选信号分别为 000-111 时
9、,选中数码管 DS8A-DS1A。 为此我们急需要一个八位的计数器重复不断的输出 000-111 的信号。在位选的同时,数选输出相应 的数字信号。 这又需要对动态数码管进行编译,通过 C 的六状态写出动态数码管的 7位数选信号,真知表见下图。 动态数码管数选信号编译: 动态数码管位选信号编译 W SS2 SS1 SS0 选中数码管 000 0 0 0 DS8A 001 0 0 1 DS7A 010 0 1 0 DS6A 011 0 1 1 DS5A 100 1 0 0 DS4A 101 1 0 1 DS3A 110 1 1 0 DS2A 111 1 1 1 DS1A 这里的 W 信号为八进制计
10、数器提供的,由于这八个数不断变化,所以选中的数码管也不断变化,当变化速度足够快时,看起来就是一起工作的了。 信号灯控制模块。 这一部分很简单,只要 C1C2C3 的六种不同组合的译出 6 组五位不同的高电平即可,即 3-5译码器。真值表如下图: 信号灯控制信号编译 : C1 C2 C3 E1 E2 E3 E4 E5 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 C1 C2 C2 Qa Qb Qc Qd Qe Qf
11、Qj 显示 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 2 0 1 1 1 1 1 1 0 0 1 3 1 0 0 0 1 1 0 0 1 1 4 1 0 1 1 0 1 1 0 1 1 5 双色点阵控制模块 首先要了解双色点阵的工作原理,由于设计的要求只使用双的点阵的红色点部分(或绿色点)。红(绿)灯亮要求这一点所在的这一行必须是低电平,而其所在的列为高电平。如果要产生图形的话需要不停地轮换的给予 1-8 行低电平信号,在适时的情况下给予某列高电平。这跟动态数码管的位选有些相似,不过这次要求的是八个信号, R
12、OW1-8,需要由八位的计数器的输出信号 这个信号同时将对下面的双色点阵显示提供输入扫描信号。 双色矩阵 ROW 信号编译: 随着 8 进制计数器的输出信号 W 的变化 ,双色点阵依次选中 ROW1-ROW8,并提供低电平 。 与此同时如果对列施以相应的高电平信号的话,就可以产生想要的图形。 看下图,对 LIN 信号的编译即可产生 0 5。 双色矩阵 LIN 信号编译: 当 C=000,显示图象“ 0” 当 C=001,显示图象“ 1” W R1 R2 R3 R4 R5 R6 R7 R8 000 0 1 1 1 1 1 1 1 001 1 0 1 1 1 1 1 1 010 1 1 0 1 1
13、 1 1 1 011 1 1 1 0 1 1 1 1 100 1 1 1 1 0 1 1 1 101 1 1 1 1 1 0 1 1 110 1 1 1 1 1 1 0 1 111 1 1 1 1 1 1 1 0 W L1 L2 L3 L4 L5 L6 L7 L8 000 0 0 1 1 1 1 0 0 001 0 1 0 0 0 0 1 0 010 0 1 0 0 0 0 1 0 011 0 1 0 0 0 0 1 0 100 0 1 0 0 0 0 1 0 101 0 1 0 0 0 0 1 0 110 0 1 0 0 0 0 1 0 111 0 0 1 1 1 1 0 0 W L1 L2
14、 L3 L4 L5 L6 L7 L8 000 0 0 0 0 1 0 0 0 001 0 0 0 1 1 0 0 0 010 0 0 1 0 1 0 0 0 011 0 0 0 0 1 0 0 0 100 0. 0 0 0 1 0 0 0 当 C=010, 显示图象“ 2 ” 当 C=011,显示图象“ 3” 当 C=100,显示图象“ 4” 101 0 0 0 0 1 0 0 0 110 0 0 0 0 1 0 0 0 111 0 0 1 1 1 1 0 0 W L1 L2 L3 L4 L5 L6 L7 L8 000 0 0 1 1 1 0 0 0 001 0 1 0 0 0 1 0 0 0
15、10 0 0 0 0 0 1 0 0 011 0 0 0 0 0 1 0 0 100 0 0 0 0 1 0 0 0 101 0 0 0 1 0 0 0 0 110 0 0 1 0 0 0 0 0 111 0 1 1 1 1 1 1 0 W L1 L2 L3 L4 L5 L6 L7 L8 000 0 0 1 1 1 1 1 0 001 0 0 0 0 0 0 1 0 010 0 0 0 0 0 0 1 0 011 0 0 1 1 1 1 1 0 100 0 0 1 1 1 1 1 0 101 0 0 0 0 0 0 1 0 110 0 0 1 1 1 1 1 0 111 0 0 0 0 0 0
16、 0 0 W L1 L2 L3 L4 L5 L6 L7 L8 000 0 1 0 0 0 1 0 0 001 0 1 0 0 0 1 0 0 010 0 1 0 0 0 1 0 0 011 0 1 0 0 0 1 0 0 100 0 1 0 0 0 1 0 0 101 0 1 1 1 1 1 1 1 当 C=101,显示图象“ 5 译码显示模块 此模块由两小模块构成,即译码模块与数码管显示模块。 先由译码模块将优先编码器输出的二进制编码转换成座位病床号所对应的 BCD码,再将该 BCD 码输入到七段字形译码器( 74LS47D)并由七段阴极数码管显示座位号数字。其流程图如下: 110 0 0
17、0 0 0 1 0 0 111 0 0 0 0 0 1 0 0 W L1 L2 L3 L4 L5 L6 L7 L8 000 0 0 0 1 0 0 0 0 001 0 0 0 1 1 1 1 0 010 0 0 0 1 0 0 0 0 011 0 0 0 1 1 1 0 0 100 0 0 0 0 0 0 1 0 101 0 0 0 0 0 0 1 0 110 0 1 0 0 0 0 1 0 111 0 0 1 1 1 1 0 0 译码器编译成对应的 bcd 码 七段字形译码器 七段数码显示器 三位二进制码 座位号 bcd数码管显示模块 通过译码模块处理后的信号成为了与乘客座位相对应的 BCD 码,数码管显示模块由七段字形译码器( 74LS47D),共阴极七段数码管,以及一些逻辑非门和限流电阻组成。将输入的 BCD 码以十进制数字的形式在七段数码管上,将正确的呼叫座位号显示出来。 测试模块如下图所示: