题目:单电梯微控器设计。
院系: 电子工程学院
专业班级: 微电子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的了解和兴趣。在此处注明选自哪本教材中的哪一部分或者其它出处 内容出处适用对象教学目标教学用途制作方式 可多选 冀教版一年级上册...