展示设计课程设计实验报告

展示设计课程设计实验报告

北 华 航 天 工 业 学 院

《展示设计课程设计》

课程设计报告

报告题目:

作者所在系部: 材料工程系 作者所在专业: 工业设计 作者所在班级: 作 者 姓 名 : 指导教师姓名: 宓胜杰、宋红毅 完 成 时 间 : 20xx- 06

目 录

一、设计任务和技术要求 ……………………… 二、进度计划表………………………………… 三、课程设计总结报告正文……………… ……

1.……………………………………………… 2.……………………………………….… 3.………………………………………… 4.………………………………………… 5.………………………………………… 6.………………………………………… 7.…………………………………………

四、主要参考文献……………………………… 五、作品提交…………………………………… 六、指导教师成绩评定表………………………

课程设计任务书

三、课程设计总结报告总结正文

四、主要参考文献

五、指导教师成绩评定表


第二篇:综合课程设计实验报告


姓名 xxx

学号 xxx

指导老师 xxx

完成日期 xxx

实验名称:

矩阵键盘控制数码管显示

实验要求:

1. 掌握数码管显示原理

2. 掌握矩阵键盘开关工作原理

3. 通过FPGA用矩阵键盘控制数码管显示

实验设计软件

实验设计内容

分析矩阵开关电路图与数码管显示电路图,构建矩阵键盘控制思想,计算数码管显示数字代码。通过在软件中编写相应的控制程序,在FPGA的控制下,使4*4的矩阵键盘依次按下之后,数码管依次显示0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,初始状态显示0。并将程序下载进实物FPGA当中,实现真实功能。

实验原理分析

1.数码管显示模块

电路原理图:

如图所示,数码管中a,b,c,d,e,f,g,dp分别由一个引脚引出,给对应的引脚高电平,则对应引脚的LED点亮,故我们在程序中可以设定一个8位的二进制数reg【7:0】 h,每一位

对应一个相应的引脚输出,那么我们就可以通过对x的赋值,控制对应 的8个LED亮灭的状态进行数字显示。例如,如果我们显示数字2,则在数码管中,a、b、d、e、g亮,c、f、dp不亮,则显示的是数字2,即h=’b11011010代表显示数字2.

数字显示代码如下:

0:h='b11111100;

1:h='b01100000;

2: h='b11011010;

3:h='b11110010;

4:h='b01100110;

5:h='b10110110;

6:h='b10111110;

7:h='b11100000;

8:h='b11111110;

9:h='b11110110;

A:h='b11101110;

B:h='b11111111;

C:h='b10011100;

D:h='b11111101;

E:h='b10011110;

F:h='b10001110

另外我们只需要选中图中第一个数码管,故图中LED/SEG12此引脚我们只需给它一个高电平选中即可,其他片选端给低电平不选中。即我们在程序中定义一个片选控制字 wire[3:0] c=’b1000;

2.矩阵键盘开关模块

电路原理图:

分析:

矩阵键盘如图所示,从图中可以得知,矩阵键盘共8个引脚,4个输入,4个输出。因为我们要将矩阵键盘连接到FPGA当中,由FPGA主控芯片控制键盘的输入,故矩阵键盘的输入便是FPGA的输出,而矩阵键盘的输出便是FPGA的输入。

在此设计当中,我采用快速扫描的方法对矩阵键盘进行控制。

如图,当我们按下第一排第一列开关时,由图可知,如果我们通过FPGA给BT_IN1一个低电平,则电路导通,那么BT_OUT1输出一个低电平给FPGA。那么我们就可以通过对IN,OUT这两组输入输出对4*4的矩阵开关进行选择。比如:矩阵输入我定义一个reg 【3:0】 b,矩阵输出定义一个wire【3:0】f,那么b=‘b0111,f=’b0111则选中的是第一行第一列的开关,依次类推,当b=‘b1110,f=’b1110时,我们选中的开关就是第4排第4列的键盘开关。

据此原理,我们可以通过FPGA主控程序,每来一个时钟,给键盘的输入BT_IN(FPGA的输出)某一个引脚为低电平,其他为高电平选中某行,然后当我们按下开关电路导通,矩阵键盘便会有一个输出BT_OUT的某一个变为低电平,而其他仍然为高电平传送给FPGA,那么此时我通过FPGA的查询,查询到这个矩阵键盘的输出状态,我们便选中了某列,以此来控制矩阵键盘的某行某列。

3.矩阵键盘与数码管联调

通过FPGA主控芯片,将数码管对应引脚与键盘开关对应引脚连接起来,当按下第一排第一列时,数码管显示0,第一排第二列时,数码管显示1,依次类推,当按下第四排第四列时数码管显示F。

实验结果展示:

此图为按下第1行第3列开关时显示数字3.

附录

程序:

module kmc(clk,f,c,b,h); input clk,f;

output c,b,h; wire[3:0] c; wire[3:0] f;

reg[7:0] h='b11111100; reg[3:0] b='b0111; assign c='b1000; always @(posedge clk) begin

b=~b;

b=b>>1;

b=~b;

if(b=='b1111) b='b0111;

if(b=='b0111&&f=='b0111) h='b11111100;

if(b=='b0111&&f=='b1011) h='b01100000;

if(b=='b0111&&f=='b1101) h='b11011010;

if(b=='b0111&&f=='b1110) h='b11110010;

if(b=='b1011&&f=='b0111) h='b01100110;

if(b=='b1011&&f=='b1011) h='b10110110;

if(b=='b1011&&f=='b1101) h='b10111110;

if(b=='b1011&&f=='b1110) h='b11100000;

if(b=='b1101&&f=='b0111) h='b11111110;

if(b=='b1101&&f=='b1011) h='b11110110;

if(b=='b1101&&f=='b1101) h='b11101110;

if(b=='b1101&&f=='b1110) h='b11111111;

if(b=='b1110&&f=='b0111) h='b10011100;

if(b=='b1110&&f=='b1011) h='b11111101;

if(b=='b1110&&f=='b1101) h='b10011110;

if(b=='b1110&&f=='b1110) h='b10001110;

end

endmodule

管脚分配:

h【7】—119

h【1】—123

b【3】—182

c【3】—174

f【3】—183 h【6】—122 h【0】—124 b【2】—180 c【2】—169 f【2】—181 h【5】—121 h【4】—125 b【1】—178 b【0】—176 c【1】—168 c【0】—127 f【1】—179 f【0】—177 h【3】—126 h【2】—120

标签:

相关文章