电路结构简图

需求

  1. 以拨码开关sw1到sw10,控制实验箱的数码管显示数字0到9
  2. 不可使用元件例化,建议使用多进程的方法实现需求

器件引脚说明

  1. 本工程使用 EL-SOPC3000 实验箱,使用的芯片是EP3C25F324C8

  2. 拨码开关

  3. 数码管的地址
    底板上共有16位数码管,16个数码管的段选由8位数据线D0-D7提供,D0-D7分别对应数码管位选的a-Dp;16位地址线中的高四位A12-A15通过一个LS138译出两个大片选,分别选中数码管和16X16点阵,其中数码管对应A15-A12为1011,点阵对应A15-A12为1010 。

  4. 数码管的位选
    由数码管的大片选通过两片LS138译出16个小片选以作为16位数码管的位选。两片LS138的地址为A3-A0。


器件编程前的注意事项

器件默认引脚属性会导致分配引脚不成功,请按以下步骤操作,设置引脚类型

代码与电路

--         +------------+                  +-----------+
--   A0 ***|            |                  |           |*** SEG7 *** a
--         |            |                  |           |
--   A1 ***|            |                  |           |*** SEG6 *** b
--         |            |                  |           |
--   A2 ***|            |*** transfer0 *** |           |*** SEG5 *** c
--         |            |                  |           |
--   A3 ***|            |*** transfer1 *** |           |*** SEG4 *** d
--         |            |                  |           |
--   A4 ***|            |*** transfer2 *** |           |*** SEG3 *** e
--         |            |                  |           |
--   A5 ***|            |*** transfer3 *** |           |*** SEG2 *** f
--         |            |                  |           |
--   A6 ***|            |                  |           |*** SEG1 *** g
--         |            |                  |           |
--   A7 ***|            |                  |           |*** SEG0 *** dp
--         |            |                  |           |
--   A8 ***|            |                  |           |
--         |            |                  |           |
--   A9 ***|            |                  |           |
--         +------------+                  +-----------+

结构体设计

  1. 编码器进程
 encoder : Process (A)BeginCase A IsWhen "0000000001" => transfer <= "0000";                                     --输出 0When "0000000010" => transfer <= "0001";                                      --输出 1When "0000000100" => transfer <= "0010";                                      --输出 2When "0000001000" => transfer <= "0011";                                      --输出 3When "0000010000" => transfer <= "0100";                                      --输出 4When "0000100000" => transfer <= "0101";                                      --输出 5When "0001000000" => transfer <= "0110";                                      --输出 6When "0010000000" => transfer <= "0111";                                      --输出 7When "0100000000" => transfer <= "1000";                                      --输出 8When "1000000000" => transfer <= "1001";                                      --输出 9When Others           =>  transfer <= "1010";                                       --用于数码管不显示数字End Case;End Process encoder;
  1. 译码器进程
 decoder : Process (transfer)BeginCase transfer IsWhen "0000" => SEG <= "11111100";                      -- 0When "0001" => SEG <= "01100000";                       -- 1When "0010" => SEG <= "11011010";                       -- 2When "0011" => SEG <= "11110010";                       -- 3When "0100" => SEG <= "01100110";                       -- 4When "0101" => SEG <= "10110110";                       -- 5When "0110" => SEG <= "10111110";                       -- 6When "0111" => SEG <= "11100000";                       -- 7When "1000" => SEG <= "11111110";                       -- 8When "1001" => SEG <= "11110110";                       -- 9When Others => SEG <= "00000000";                         -- 共阴数码管不显示End Case;End Process decoder;
  1. 数码管进程
 ShuMaGuan : Process (transfer)Begins   <= "1011";                 --选择数码管SEL <= "0000";                 --选择数码管的com0位End Process ShuMaGuan;

全工程下载

拨码开关控制数码管显示_VHDL编程

拨码开关控制数码管的数字显示_VHDL编程相关推荐

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

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

  2. EGO1—实现拨码开关控制数码管显示数值

    使用软件: Vivado 开发板: EGO1采用Xilinx Artix-7系列XC7A35T-1CSG324C FPGA 实现功能 16个拨码开关,每两个控制一个数码管的数值变化 开发板配置 七段数 ...

  3. Proteus:单片机锁存器控制数码管亮灭

    题目概述: 单片机锁存器控制数码管亮灭. 编程: #include <reg51.h> sbit dula=P1^0; sbit wela=P1^1; void main() { whil ...

  4. 在c语言如何对拨码开关编程,拨码开关控制实验

    拨码开关控制实验 一.实验目的 1.了解ICETEK-F2812-A评估板在TMS320F2812DSP外部扩展存储空间上的扩展. 2.了解ICETEK-F2812-A评估板上拨码开关扩展原理. 3. ...

  5. 一个按键控制数码管的开和关_基于FPGA的数字电路实验3:点亮数码管

    今天我们任务是通过小脚丫板载的两个数码管来显示字符,所以首先我们要了解一下数码管的基本工作原理,接下来再研究怎么通过捣鼓小脚丫把数码管给点亮,并且显示出有效信息. 小脚丫板载的数码管是7段数码管(如果 ...

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

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

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

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

  8. led交通灯c语言程序设计,单片机控制的交通灯C语言编程.doc

    单片机控制的交通灯C语言编程 单片机控制的交通灯 红灯停,绿灯行,黄灯闪烁提示行人红绿灯即将切换.四个方向各有一个红.黄.绿显示和两个数码管. 东西道为人行道(20秒),南北道为车行道(60秒),黄灯 ...

  9. 一个按键控制数码管的开和关_三菱PLC数码管显示及按键控制实验

    三菱PLC数码管显示及按键控制实验 日常工程中,有时需要显示一个温度或是一个计数,或是修改一个按键值,使用触屏是一个不错的选择,但有时不想那么复杂,可以使用数码管吗?当然可以,风哥来分享一款自己设计的 ...

  10. 单片机按键控制数码管c语言程序,基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文).doc...

    基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文) 物理与电子工程学院2014级课程设计 PAGE IV 物理与电子工程学院 <单片机原理与接口技术> 课程设计报告书 ...

最新文章

  1. mysql 5.7和8.0区别_前沿观察 | MySQL性能基准测试对比:5.7 VS 8.0
  2. 数据结构-----AVL树的旋转操作
  3. c++中运算符重载(加号运算,左移运算,前置后置++运算符,赋值运算,关系运算,函数运算)
  4. jdk1.8对synchronized锁的优化
  5. 要来了!国内安卓统一推送标准将于3月开启测试
  6. PLinux设计初步设想
  7. 前端使用js压缩图片上传
  8. US1M-ASEMI小电流贴片快恢复二极管
  9. linux解压文件并命名,linux命名压缩解压文件
  10. 站长说说之SEO流量翻倍增长的秘密
  11. java爬取网页上qq号,邮箱号等
  12. 心血来潮用vb写-音标发音小程序
  13. 如何利用Python教你如何爬取高德地图!非常全面啊!
  14. 【小程序】视图与逻辑
  15. LinearLayout布局添加下划线
  16. js实现两张图片来回切换
  17. ERP项目过度开发,等同上了“贼船”!
  18. jdbc连接MySQL数据库(完整文件+详细说明)
  19. 奇瑞新能源销量回升,iCar或延续辉煌
  20. 令人耳目一新的20款英文手写字体

热门文章

  1. Redis与Mysql双写一致性方案解析
  2. 使用ImageIO.write上传二维码文件时候,提示系统找不到指定路径
  3. [笔记]使用API函数 GetACP 获取Windows系统当前代码页
  4. debian软raid
  5. c#的IList,IEnumerable和IEnumerator
  6. 20190825 On Java8 第十二章 集合
  7. WEB前端开发规范文档+CSS命名规范
  8. Statement、PreparedStatement、CallableStatement的区别
  9. c#基础系列2---深入理解 String
  10. 超大数据量操作 java程序优化[转载]