使用软件: Vivado
开发板: EGO1采用Xilinx Artix-7系列XC7A35T-1CSG324C FPGA

实现功能

16个拨码开关,每两个控制一个数码管的数值变化

开发板配置

七段数码管

数码管为共阴极数码管,即公共极输入低电平。共阴极由三极管驱动,FPGA需要提供正向信号。同时段选端连接高电平,数码管上的对应位置才可以被点亮。因此,FPGA 输出有效的片选信号和段选信号都应该是高电平

管脚约束

A0~DP0控制DN0_K1 — DN0_K4的数码管的段选
A1~DP1控制DN1_K1—DN1_K4的数码管的段选

代码

verilog代码

module v_smg_1(input clk,input rst,input[15:0] sw, //开关output[7:0] seg,//段选,高有效output[7:0] seg1,output[7:0] an //位选,低有效
);reg[18:0] divclk_cnt = 0;//分频计数器reg divclk = 0;//分频后的时钟reg[7:0] seg=0;//段码reg[7:0] seg1=0;reg[7:0] an=8'b00000001;//位码reg[3:0] disp_dat=0;//要显示的数据reg[2:0] disp_bit=0;//要显示的位parameter maxcnt = 50000;// 周期:50000*2/100Malways@(posedge clk)beginif(divclk_cnt==maxcnt)begindivclk=~divclk;divclk_cnt=0;endelsebegindivclk_cnt=divclk_cnt+1'b1;endendalways@(posedge divclk) beginif(disp_bit >= 7)disp_bit=0;elsedisp_bit=disp_bit+1'b1;case (disp_bit)3'b000 :begindisp_dat=sw[1:0];an=8'b00000001;//显示第一个数码管,高电平有效end3'b001 :begindisp_dat=sw[3:2];an=8'b00000010;//显示第二个数码管,低电平有效end3'b010 :begindisp_dat=sw[5:4];an=8'b00000100;//显示第三个数码管,低电平有效end3'b011 :begindisp_dat=sw[7:6];an=8'b00001000;//显示第四个数码管,低电平有效end3'b100 :begindisp_dat=sw[9:8];an=8'b00010000;//显示第五个数码管,低电平有效end3'b101 :begindisp_dat=sw[11:10];an=8'b00100000;//显示第六个数码管,低电平有效end3'b110 :begindisp_dat=sw[13:12];an=8'b01000000;//显示第七个数码管,低电平有效end3'b111 :begindisp_dat=sw[15:14];an=8'b10000000;//显示第八个数码管,低电平有效enddefault:begindisp_dat=0;an=8'b00000000;endendcaseendalways@(disp_dat)beginif(an > 8'b00001000) begincase (disp_dat)//显示0—F4'h0 : seg = 8'hfc;4'h1 : seg = 8'h60;4'h2 : seg = 8'hda;4'h3 : seg = 8'hf2;4'h4 : seg = 8'h66;4'h5 : seg = 8'hb6;4'h6 : seg = 8'hbe;4'h7 : seg = 8'he0;4'h8 : seg = 8'hfe;4'h9 : seg = 8'hf6;4'ha : seg = 8'hee;4'hb : seg = 8'h3e;4'hc : seg = 8'h9c;4'hd : seg = 8'h7a;4'he : seg = 8'h9e;4'hf : seg = 8'h8e;endcaseendelse begincase (disp_dat)//显示0-F4'h0 : seg1 = 8'hfc;4'h1 : seg1 = 8'h60;4'h2 : seg1 = 8'hda;4'h3 : seg1 = 8'hf2;4'h4 : seg1 = 8'h66;4'h5 : seg1 = 8'hb6;4'h6 : seg1 = 8'hbe;4'h7 : seg1 = 8'he0;4'h8 : seg1 = 8'hfe;4'h9 : seg1 = 8'hf6;4'ha : seg1 = 8'hee;4'hb : seg1 = 8'h3e;4'hc : seg1 = 8'h9c;4'hd : seg1 = 8'h7a;4'he : seg1 = 8'h9e;4'hf : seg1 = 8'h8e;endcaseendend
endmodule

约束文件

## clk
set_property PACKAGE_PIN P17 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
## switch
set_property PACKAGE_PIN P5 [get_ports {sw[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[1]}]
set_property PACKAGE_PIN P4 [get_ports {sw[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[0]}]
set_property PACKAGE_PIN P3 [get_ports {sw[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[3]}]
set_property PACKAGE_PIN P2 [get_ports {sw[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[2]}]
set_property PACKAGE_PIN R2 [get_ports {sw[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[5]}]
set_property PACKAGE_PIN M4 [get_ports {sw[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[4]}]
set_property PACKAGE_PIN N4 [get_ports {sw[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[7]}]
set_property PACKAGE_PIN R1 [get_ports {sw[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[6]}]
set_property PACKAGE_PIN U3 [get_ports {sw[9]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[9]}]
set_property PACKAGE_PIN U2 [get_ports {sw[8]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[8]}]
set_property PACKAGE_PIN V2 [get_ports {sw[11]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[11]}]
set_property PACKAGE_PIN V5 [get_ports {sw[10]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[10]}]
set_property PACKAGE_PIN V4 [get_ports {sw[13]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[13]}]
set_property PACKAGE_PIN R3 [get_ports {sw[12]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[12]}]
set_property PACKAGE_PIN T3 [get_ports {sw[15]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[15]}]
set_property PACKAGE_PIN T5 [get_ports {sw[14]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw[14]}]##smg位码
set_property PACKAGE_PIN G2 [get_ports an[7]]
set_property IOSTANDARD LVCMOS33 [get_ports an[7]]
set_property PACKAGE_PIN C2 [get_ports an[6]]
set_property IOSTANDARD LVCMOS33 [get_ports an[6]]
set_property PACKAGE_PIN C1 [get_ports an[5]]
set_property IOSTANDARD LVCMOS33 [get_ports an[5]]
set_property PACKAGE_PIN H1 [get_ports an[4]]
set_property IOSTANDARD LVCMOS33 [get_ports an[4]]
set_property PACKAGE_PIN G1 [get_ports an[3]]
set_property IOSTANDARD LVCMOS33 [get_ports an[3]]
set_property PACKAGE_PIN F1 [get_ports an[2]]
set_property IOSTANDARD LVCMOS33 [get_ports an[2]]
set_property PACKAGE_PIN E1 [get_ports an[1]]
set_property IOSTANDARD LVCMOS33 [get_ports an[1]]
set_property PACKAGE_PIN G6 [get_ports an[0]]
set_property IOSTANDARD LVCMOS33 [get_ports an[0]]## 段码
set_property PACKAGE_PIN B4 [get_ports {seg[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[7]}]
set_property PACKAGE_PIN A4 [get_ports {seg[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[6]}]
set_property PACKAGE_PIN A3 [get_ports {seg[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[5]}]
set_property PACKAGE_PIN B1 [get_ports {seg[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[4]}]
set_property PACKAGE_PIN A1 [get_ports {seg[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[3]}]
set_property PACKAGE_PIN B3 [get_ports {seg[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[2]}]
set_property PACKAGE_PIN B2 [get_ports {seg[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[1]}]
set_property PACKAGE_PIN D5 [get_ports {seg[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg[0]}]# 段码2
set_property PACKAGE_PIN D4 [get_ports {seg1[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg1[7]}]
set_property PACKAGE_PIN E3 [get_ports {seg1[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg1[6]}]
set_property PACKAGE_PIN D3 [get_ports {seg1[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg1[5]}]
set_property PACKAGE_PIN F4 [get_ports {seg1[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg1[4]}]
set_property PACKAGE_PIN F3 [get_ports {seg1[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg1[3]}]
set_property PACKAGE_PIN E2 [get_ports {seg1[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg1[2]}]
set_property PACKAGE_PIN D2 [get_ports {seg1[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg1[1]}]
set_property PACKAGE_PIN H2 [get_ports {seg1[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {seg1[0]}]

结果

EGO1—实现拨码开关控制数码管显示数值相关推荐

  1. Verilog实现拨码开关控制数码管显示——FPGA

    通过一个简单的3-8译码器的设计,掌握组合逻辑电路的设计方法. 掌握拨码开关和数码管的使用. 掌握组合逻辑电路的静态测试方法. 原理及内容: 原理: 根据38译码原理将5bit的编码后四位解码为0~f ...

  2. 4*4矩阵按键控制数码管显示0-F

    4*4矩阵按键原理图如下: 根据原理图,汇编程序代码如下: 4*4矩阵按键控制数码管显示0-F.刚学单片机汇编,是根据单片机C语言思路来写的,写的不好,如果发现有错误或会导致程序跑飞的,麻烦帮我指出, ...

  3. 应广单片机PFS123按键中断控制数码管显示例程

    目录 应广单片机PFS123按键中断控制数码管显示视频 led数码管图片 应广单片机PFS123按键中断控制数码管显示代码 应广科技网址,开发工具,PMS123规格书:http://www.padau ...

  4. 驱动 - 数码管显示数值

    SPI总线 SPI 是串行外设接口(Serial Peripheral Interface)的缩写. 是 Motorola 公司推出的一种同步串行接口技术,是一种 高速的,全双工,同步的通信总线. S ...

  5. 51单片机按键控制数码管显示0-9

    实验题目:使用51单片机设计两个按键控制数码管显示0-9,当K1按下减1,当K2按下加1. 理解程序可参考我的另外两个文章; 51单片机数码管显示0-9_学习笔记吧的博客-CSDN博客 51单片机独立 ...

  6. c语言控制数码管显示时间,单片机 控制 数码管显示

    常见LED数码管 LED数码管(LED Segment Displays)简介 数码管也称LED数码管,是由多个发光二极管封装在一起的"8"字型的器件. 按发光二极管单元连接方式可 ...

  7. 单个按键控制数码管显示数字(2)

    一.主要功能 单个按键控制数码管显示数字 二.代码实现 代码如下: #include <reg52.h> sbit ADDR0=P1^0; sbit ADDR1=P1^1; sbit AD ...

  8. 零基础无实物一步一步学PLCS7-1200仿真(八)-按键控制数码管显示

    项目要求:按照项目的功能完成按键控制数码管的技术显示. 项目目的:学习比较指令.数学函数指令和加减计数指令和数码管的显示原理. 项目功能:数码管可以显示两位数00-99,然后可通过四个按键完成数码管的 ...

  9. 串口控制74HC164C语言,51单片机74HC164串口控制数码管显示

    一般数码管需要接7个脚才能显示,如果用单片机本身的I/O口,虽然可以但是浪费宝贵的i/O口资源.本例用移位寄存器74HC164作为数码管驱动进行控制. 74HC164特性   是一种8位串转并口的控制 ...

最新文章

  1. 麒麟芯片AI首席科学家,解读AI芯片如何让手机更智能
  2. CreateThread创建线程函数详细讲解
  3. mac搭建appium环境之设置chromdriver
  4. ESP8266和MQTT
  5. 1058 A+B in Hogwarts (20 分)_7行代码AC
  6. win10创建c语言文件,c – 如何在Windows中创建扩展(自定义)文件属性?
  7. 编程之美——数字哑谜
  8. React Hooks 梳理
  9. 如何使用Tuxera NTFS for Mac将FAT 32U盘转换为NTFS格式
  10. axure图表组件。echarts。 axure !important 二维码logo嵌入axure汉化美化定制。图表背景透明
  11. 第一章 绪论 1.2 时域采样定理及其应用
  12. (53条消息)MySQL在Windows上的安装流程
  13. 软考中级软件设计师基础整理(1.计算机组成与体系结构)
  14. php数据迁移脚本,Laravel中数据迁移与数据填充的详细步骤
  15. ubuntu 回到根目录,回到上一级 常用指令
  16. 串口转无线网模块:WizFi630 快速入门指导
  17. Integer 用 == 比较时 127 相等 128 不相等
  18. 你可能不了解的《唐诗三百首》
  19. curl命令 – 文件传输工具
  20. 【git】使用git链接远程gitee仓库并提交

热门文章

  1. matlab输入字符串函数,MATLAB字符串函数
  2. [朝花夕拾][19H2]Win10.0.18363.2158微调-养老专用
  3. Linux 网络编程作业
  4. 2015062701 - 没落
  5. 学习笔记17--定位系统之卫星定位技术
  6. 创业者如何选择服务器?
  7. 不同编码各语言所占字节数及符号所占字节数
  8. iOS 需求 下载mp3歌曲网络卡顿(断点续传)
  9. 技术培训 | Git,你真的会用么?
  10. 移动VMware虚拟机