综合课程设计实验报告
班级:
姓名:
学号:2011146211
指导老师:
实验名称:
拨码开关输入数码管显示实验
实验要求:
1. 掌握数码管显示原理 2. 掌握拨码开关工作原理
3. 通过FPGA用拨码开关控制数码管显示
实验目标:
4位拨码开关分别对应4位数码管,拨动任意1位开关,对应的数码管将显示数字1,否则显示数字0。
实验设计软件
Quartus II
实验原理
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。
2.拨码开关模块
电路原理图:
拨码开关有8个引脚,每个引脚对应于数码管的一个LED灯,当拨码开关的一个引脚是高电平时,则对应的数码管一个LED灯亮,其他7个LED等不亮。通过此原理来实现数码管的LED灯亮暗情况从而实现数码管的数字显示。例如当第一个拨码接通时,此时输入信号为8'b10000000对应的数码管的输出信号为out=8'b11111110,此时相当于数码管a,b,c,d,e,f,g亮,7段数码管全部显示,显示的数字为8。
程序代码
module bomakaiguan(out,key_in,clk); assign p='b1111;
output[7:0] out=8'b11111110; input[7:0] key_in; input clk; reg[7:0] out;
always @(posedge clk) begin
case(key_in) 8'b10000000: out=8'b11111110;
8'b00000001: out=8'b01100000; 8'b00000010: out=8'b11011010; 8'b00000100: out=8'b11110010; 8'b00001000: out=8'b01100100; 8'b00010000: out=8'b10110110; 8'b00100000: out=8'b10111110; 8'b01000000: out=8'b11100000; endcase end endmodule