2871|8

927

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

从51转到cpld好象难度不大,这是我的第一个作品 [复制链接]

-- 闪动的led加数码管显示,还同学到数组使用,就先用一大堆IF,用case可能会稍好一点,但我还没有学会。

library ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;
USE ieee.std_logic_unsigned.ALL;

ENTITY My_Led IS
        GENERIC(n:INteger:=20000000);
        PORT
        (
                clk:IN std_logic;        --系统时钟
                dua:OUT std_logic_vector(7 DOWNTO 0);-- 数码管段
                wei:OUT std_logic_vector(3 DOWNTO 0);-- 数码管位
                d2,d3:OUT std_logic--两个led交替闪动
        );
END My_Led;

ARCHITECTURE behave OF My_Led IS
SIGNAL tmp:std_logic;
SIGNAL cnt:INteger RANGE 0 to n;
SIGNAL nub:INteger RANGE 0 to 10;
BEGIN
        PROCESS(clk) -- 这里是系统时钟相当于51的定时器
        BEGIN
                wei<="0111";
                IF risINg_edge(clk) THEN
                        IF cnt>=n THEN
                                tmp<=not tmp;
                                cnt<=0;
                                nub<=nub + 1;
                                IF nub=10 THEN
                                        nub<=0;
                                END IF;
                               
                                IF nub= 0 THEN
                                                dua<="00000011";
                                ELSIF nub=1 THEN
                                                dua<="10011111";
                                ELSIF nub=2 THEN
                                        dua<="00100101";
                                ELSIF nub=3 THEN
                                        dua<="00001101";
                                ELSIF nub=4 THEN
                                        dua<="10011001";
                                ELSIF nub=5 THEN
                                        dua<="01001001";
                                ELSIF nub=6 THEN
                                        dua<="01000001";
                                ELSIF nub=7 THEN
                                        dua<="00011111";
                                ELSIF nub=8 THEN
                                        dua<="00000001";
                                ELSIF nub=9 THEN
                                        dua<="00001001";                       
                                END IF;
                        ELSE
                                cnt<=cnt + 1;
                        END IF;
                        d2<=tmp;
                        d3<=not tmp;
                END IF;
                               
        END PROCESS;
END ARCHITECTURE;
此帖出自51单片机论坛

最新回复

ltd
很好  详情 回复 发表于 2015-3-9 10:24

赞赏

1

查看全部赞赏

点赞 关注
 

回复
举报

1412

帖子

15

TA的资源

版主

沙发
 
易学难精吧。。。。。
此帖出自51单片机论坛
 
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 
 

回复

109

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
楼主厉害啊,你可以用HDL做一些算法,比如二进制码转BCD码之类的.
此帖出自51单片机论坛
 
 
 

回复

2700

帖子

0

TA的资源

五彩晶圆(初级)

4
 
可以用verilog吧,跟c比较像
此帖出自51单片机论坛
 
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
 
 

回复

315

帖子

8

TA的资源

一粒金砂(中级)

5
 
这些东西易学难精啊,GM尚未成功,同时尚需努力啊!
此帖出自51单片机论坛
 
个人签名给生活一个梦想,给奋斗一个方向!---淘宝搜索逸嵌电子工作室
 
 

回复

927

帖子

0

TA的资源

纯净的硅(中级)

6
 
谢谢各位,易学难精的道理我知道,能学到什么水平这要看综合能力。
目前我的水平就象刚学会了26个字母就觉得自己已经学会了英语一样,想把英语学精,谈何容易,作为中国人,汉语水平还是很水的。
此帖出自51单片机论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

7
 
加油!
此帖出自51单片机论坛
 
 
 

回复

173

帖子

0

TA的资源

纯净的硅(初级)

8
 
什么叫“精”?世界一流?
能精的很少,许许多多的爱好者可能永远都达不到精,不能因此而废。
能使用、能处理问题就好。
别被“精”吓着了!
此帖出自51单片机论坛
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

9
 
很好
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表