这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » zxk236350893 的进程帖----数码管电子钟视频&工程

共8条 1/1 1 跳转至

zxk236350893 的进程帖----数码管电子钟视频&工程

高工
2012-09-03 15:47:28     打赏
2012年9月3号——申请开发板,发布进程帖 forum.eepw.com.cn/thread/220306/1/#1    
2012年9月22号——下单,等待PCB和原件到来      
2012年9月25号下午1点——PCB收到,核心板焊接完成 forum.eepw.com.cn/thread/220306/1/#2    
2012年9月27号——焊接完成 forum.eepw.com.cn/thread/220306/1/#3    
 流水灯&加减计数器 forum.eepw.com.cn/thread/220306/1/#3    
 数码管&电子钟 forum.eepw.com.cn/thread/220306/1/#6    
 拨码开关控制LED forum.eepw.com.cn/thread/220306/1/#11    
 数码管静态显示  forum.eepw.com.cn/thread/220306/1/#12    
       
       

艳照



因为封装错误,导致电位器要受点皮肉之苦了。



关键词: zxk236350893     进程     数码     电子钟     视频    

高工
2012-09-25 22:41:13     打赏
2楼
焊接过程总结
1、焊接前的检查:今天的一个重大失误,焊接前没有检查FPGA的引脚,结果完成后发现Pin50歪了,和Pin51短路,经过一番折腾啊,幸亏Pin49也是GND,避免一幕悲剧啊。
2、结合原理图(因为没有PCB图):在焊接U2时,Pin7和Pin8的桥接怎么都拉不开,准备拆芯片重焊了,突然想到原理图上是不是7、8就是连在一起的。。。。果然是连在一起的,避免了一场惨剧的发生,期待芯片没有烫坏。



高工
2012-10-05 22:46:05     打赏
3楼

视频:

视频地址:http://www.tudou.com/v/FlL8Hp4eCxY/&resourceId=109828786_05_11_99&bid=05/v.swf
分频器模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_unsigned.all;

ENTITY CLKDIV IS
PORT (
CLK :IN STD_LOGIC;
CLK_DIV :OUT STD_LOGIC
);
END ENTITY;

ARCHITECTURE ONE OF CLKDIV IS
SIGNAL COUNT : STD_LOGIC_VECTOR(22 DOWNTO 0);
SIGNAL CLK_DIV_TEMP : STD_LOGIC;
BEGIN
PROCESS(CLK)
BEGIN
IF(CLK'EVENT AND CLK='1')
THEN
IF(COUNT>= 2499999)
THEN
COUNT<=(OTHERS =>'0');
CLK_DIV_TEMP<=NOT CLK_DIV_TEMP;
ELSE
COUNT <= COUNT + 1;
END IF;
END IF;
END PROCESS;
CLK_DIV<=CLK_DIV_TEMP;
END ONE;



加减计数器模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY UP_DOWN_CNT8 IS
PORT (
CLK :IN STD_LOGIC;
EN :IN STD_LOGIC;
RESET :IN STD_LOGIC;
DATA :OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END ENTITY;


ARCHITECTURE ONE OF UP_DOWN_CNT8 IS
SIGNAL COUNT : STD_LOGIC_VECTOR(8 DOWNTO 0):="000000000";
SIGNAL L_D : STD_LOGIC :='0';
BEGIN
PROCESS(CLK,EN,RESET)
BEGIN
IF(RESET='0')THEN COUNT<="111111111";
ELSIF(EN='0')THEN
IF(CLK'EVENT AND CLK='1')
THEN
IF(COUNT<="11111111" AND COUNT>="00000000")THEN
IF( L_D='0')THEN
COUNT <= COUNT + 1;
END IF;
IF(L_D='1')THEN
COUNT <= COUNT - 1;
END IF;
ELSIF(L_D='0')
THEN L_D<=NOT L_D;
COUNT<="011111111";
ELSE L_D<=NOT L_D;
COUNT<="000000000";
END IF;
END IF;
END IF;

END PROCESS;
DATA<=COUNT(7 DOWNTO 0);
END ONE;

整体设计


 

高工
2012-10-06 16:17:50     打赏
4楼

哦,这样啊,我昨天,哦不,今天凌晨邮件给你了


高工
2012-10-06 18:08:16     打赏
5楼
由于代码比较多,就不再全部贴出来了,把视频和整个工程发上来共享一下
点击FPGADIY_02.zip下载工程
视频

高工
2012-10-16 11:54:54     打赏
6楼
晶振焊的Y2,对应的是clk2

高工
2012-10-16 21:25:42     打赏
7楼

代码很简单
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY LED_SW IS
 PORT(
   SW   :IN STD_LOGIC_VECTOR(7 DOWNTO 0);
   LED :OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
  );
end entity;

architecture one OF LED_SW IS
BEGIN
  LED<=SW;
END one;

拨码开关控制LED


高工
2012-10-16 22:24:30     打赏
8楼

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY SEG7 IS
PORT  (
  SW  :IN STD_LOGIC_VECTOR(3 DOWNTO 0);
  EN  :IN STD_LOGIC;
  SEG  :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  DIG  :OUT STD_LOGIC
  );
END ENTITY;

ARCHITECTURE ONE OF SEG7 IS
BEGIN
 PROCESS(SW)
 BEGIN
   
   CASE SW IS
    WHEN "1111" => SEG <= "11000000";--0
    WHEN "1110" => SEG <= "11111001";--1
    WHEN "1101" => SEG <= "10100100";--2
    WHEN "1100" => SEG <= "10110000";--3
    WHEN "1011" => SEG <= "10011001";--4
    WHEN "1010" => SEG <= "10010010";--5
    WHEN "1001" => SEG <= "10000010";--6
    WHEN "1000" => SEG <= "11111000";--7
    WHEN "0111" => SEG <= "10000000";--8
    WHEN "0110" => SEG <= "10010000";--9
    WHEN "0101" => SEG <= "11001000";--A
    WHEN "0100" => SEG <= "10000011";--B
    WHEN "0011" => SEG <= "11000110";--C
    WHEN "0010" => SEG <= "10100001";--D
    WHEN "0001" => SEG <= "10000110";--E
    WHEN "0000" => SEG <= "10001110";--F
    WHEN OTHERS => SEG <= "11111111";--
   END CASE;
 END PROCESS;         --enable
 DIG<=EN;
END ONE;


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]