单电梯微控器设计方案FPGA课程设计方案报告

发布 2021-11-11 12:39:28 阅读 2004

题目:单电梯微控器设计。

院系: 电子工程学院

专业班级: 微电子0901

学生姓名: 张宏伟

导师姓名: 黄海生

起止时间:2012/6/18至2012/6/29

年月日。fpga课程设计报告提纲。

1. 任务。

设计一个单电梯微控器,用fpga开发板的按键作为手动上下设置开关,led指示当前所在楼层,数码管显示当前电梯工作状态(上/下/停)。

2. 目的。

3. 使用环境 (软件/硬件环境,设备等)

4. fpga课程设计详细内容。

4.1 技术规范。

4.1.1 功能定义。

(1).异步复位,复位信号与时钟信号不同步。

(2).分频器把基准时钟(50hz)分成10hz,即0.1秒便于人眼观察,设计0.1-0.3秒钟电梯上升或下降一个楼层。

(3).用三个拨码开关设置选择楼层,三个开关可以实现7层楼的设计,拨001为楼层第1层,以后以此类推,最高可达111第7层。

(4).用led显示当前选中的楼层,选中某层时,当层的led亮,当电梯降至或升至所选楼层时led灯一直亮(采用独热码)

(5).使用数码管显示电梯状态,上升状态显示“u”,下降状态显示“d”,显示“s”为停止状态,停止时间用第二次输入为准。

(6).手动设置电梯工作状态,key1为上升,key2为下降状态。

(7).上电复位时电梯初始状态调为第一层。

(8).当电梯到第1时下降按键key2无效,当电梯到第7层时上升按键key1无效。

(9).电梯运行时可以选择要去的中间楼层,当电梯没有选择所要去的楼层时,上升/下降按键无效3

4.1.2 系统结构框图

总体设计可以分为以上几个模块,各模块的功能简要介绍:

模块:把基准时钟(50mhz)分成1hz输出。

模块:用于总的实现各种功能,各个模块的输入都有此模块进行分析输出。

模块:用于产生拨码开关的输入值,以方便知道所选择的楼层是多少。

模块:实现电梯的工作状态,上升/下降/停止。

模块:显示当前所在楼层,采用独热码,方便显示。

模块:用于改变楼层上升或下降到相邻楼层的时间,由于给的count给的为数较少,故只能实现0.1-0.3秒任意值,如果还想实现更长的时间则需要改变count的位数。

模块:把所有的模块连在一起。

4.1.3 应用范围

用于控制电梯的运作,可实现上/下/停止等功能。

4.1.4 引脚描述

输入输出信号描述。

4.2 设计方案。

把基准时钟进行分频,即50mhz分成1hz以便于现实,否则频率太大就会由于人眼的视觉暂留效应而无法分辨,而只能看到所选择的楼层亮,而其他楼层则不亮,分成10hz就会看见灯是一个一个亮的,led灯采用独热码便于观察,当电梯上电时进行复位,则电梯被复位至1层,此时1层灯一直亮着意味着此时电梯在一楼,当有上升按键按下同时选择所去楼层时电梯工作,电梯工作时,按按键无效,当电梯在第一层按下降按键无效,同理在第七层按上升按键无效,如果电梯上升数码管display显示u,下降时显示d,停止时显示s,当电梯到了所选楼层时,此楼层的灯一直亮着。

独热码编码:

共阳极数码管显示管脚图:

5.各个功能模块描述。

5.1。分频器模块:

功能:把系统时钟(50mhz)分成10hz便于人眼观察。

**:module div(clk,reset,fclk)。

input clk,reset。

output fclk。

reg fclk。

reg[25:0] count。

always@(posedge clk or negedge reset)

beginif(!reset)

begincount<=0。

fclk<=0。

endelse

beginif(count[25:0]==26'd2499999)

begincount<=0。

fclk<=~fclk。

endelse

begincount[25:0]<=count[25:0]+1'b1。

endend

endendmodule

模块功能**:

模块。功能:用于显示电梯的工作状态,s代表停止,u代表上升,d代表下降。

**:module decode(dec_in,display)。

input[1:0] dec_in。

output[6:0] display。

reg[6:0] display。

always@(dec_in)

begincase(dec_in)

2'd0: display[6:0]=7'b0010000。

2'd1: display[6:0]=7'b1000001。

2'd2: display[6:0]=7'b0100001。

default: display[6:0]=7'bx。

endcase

endendmodule

模块功能**:

模块。功能:用于显示要去的楼层,从第一楼开始直到第七楼。

**:module decode1(dec_in1,display1)。

input[2:0] dec_in1。

output[6:0] display1。

reg[6:0] display1。

always@(dec_in1)

begincase(dec_in1)

3'd0: display1[6:0]=7'b1000000。

3'd1: display1[6:0]=7'b1111001。

3'd2: display1[6:0]=7'b0100100。

3'd3: display1[6:0]=7'b0110000。

3'd4: display1[6:0]=7'b0011001。

3'd5: display1[6:0]=7'b0010010。

3'd6: display1[6:0]=7'b0000010。

3'd7: display1[6:0]=7'b1111000。

default:display1[6:0]=7'bx。

endcase

endendmodule

模块**:模块。

功能:用于显示当前楼层,电梯在哪层,哪层的灯亮。

**:module led(floor,light)。

input[2:0] floor。

output[6:0] light。

reg[6:0] light。

always@(floor)

begincase(floor)

3'd1: light[6:0]<=7'b0000_001。

3'd2: light[6:0]<=7'b0000_010。

3'd3: light[6:0]<=7'b0000_100。

3'd4: light[6:0]<=7'b0001_000。

3'd5: light[6:0]<=7'b0010_000。

3'd6: light[6:0]<=7'b0100_000。

3'd7: light[6:0]<=7'b1000_000。

default: light[6:0]<=7'bx。

endcase

endendmodule

功能**:模块。

功能:总体控制模块,用于控制电梯的工作,同时向各个模块输出对应的数值,以用于在各个模块中显示。

**:module elevator_state(fclk,reset,key1,key2,chose,count,floor,dec_in,dec_in1)。

input fclk,reset,key1,key2。

input[2:0] chose。

input[1:0] count。

output[2:0] floor。

高中化学微课设计方案微课设计方案

高中化学微课设计方案。今天学习了高中化学微课设计制作,能受启发。知道了微课的概念和特征,微课的类型,微课设计的要求 原则与流程以及制作方法。微课是一种全新的个性化的学习方式,它改变了我们传统的教育方式。我一定要加强学习和探索,尽快的掌握制作方法,并运用到教学中。所谓微课,就是一种小型的课堂教学,是把...

微课设计方案

作者信息。姓名。申小英。单位名称微课信息。微课名称选题意图内容出处适用对象。the legend of sea goddess 该阅读材料具备较强的趣味性和知识性。邯郸市荀子中学。课后阅读材料。中学三年级英语。一 知识技能。通过本课的学习使学生能够在理解的基础上编写并。表演话剧。在阅读中体会并初步掌...

微课设计方案

作者信息。姓名。徐银增。单位名称微课信息。微课名称选题意图。0的历史。请在此处说明为什么选择这个主题来做微课程 邯郸市丛台区实验小学。因为0表示什么都没有,为了引起学生对0的了解和兴趣。在此处注明选自哪本教材中的哪一部分或者其它出处 内容出处适用对象教学目标教学用途制作方式 可多选 冀教版一年级上册...