导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[gbc9566]谁能帮我修改下数字时钟的程序啊



No.94711
作者:gbc9566
邮件:gbc956@163.com
ID:55452
登陆:1次
文章数:1篇
最后登陆IP:58.49.148.135
最后登陆:2006/6/19 18:40:22
注册:2006/6/15 18:51:38
财富:105
发帖时间:2006/6/15 18:59:24
发贴者IP:58.49.245.100
标题:gbc9566:谁能帮我修改下数字时钟的程序啊
摘要:No.94711谁能帮我修改下数字时钟的程序啊 请大家帮我改下这个数字时钟的程序,总共有3个错误和6个警告,但是我费了好大的劲就上不知道错在那里,请高手不赐教。小弟在此先谢谢大家了啊!


LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.std_logic_arith.all;
ENTITY CK20 IS
PORT(CLK,SETH,SETM,SETS,RST: IN STD_LOGIC;  
     SECOND: OUT STD_LOGIC;
     LMIN,HMIN,LHOUR,HHOUR,LSEC,HSEC: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END CK20;

ARCHITECTURE CLOCK OF CK20 IS
SIGNAL CLK1,CLK2:STD_LOGIC;
SIGNAL LMIN1,HMIN1,LHOUR1,HHOUR1,LSEC1,HSEC1: STD_LOGIC_VECTOR(3 DOWNTO 0); 
SIGNAL  DISPLAYOUT: STD_LOGIC_VECTOR(3 DOWNTO 0); 
SIGNAL DBUS: STD_LOGIC_VECTOR(7 DOWNTO 0);


FUNCTION DISPLAY(SIGNAL A: STD_LOGIC_VECTOR(0 to 3))
RETURN STD_LOGIC_VECTOR IS                       --产生显示的子程序
 
     BEGIN
     CASE A IS
  when "0001" =>   DISPLAYOUT   <= "0001";
  when "0010" =>   DISPLAYOUT   <= "0010";
  when "0011" =>   DISPLAYOUT   <= "0011";
  when "0100" =>   DISPLAYOUT   <= "0100";
  when "0101" =>   DISPLAYOUT   <= "0101";
  when "0110" =>   DISPLAYOUT   <= "0110";
  when "0111" =>   DISPLAYOUT   <= "0111";
  when "1000" =>   DISPLAYOUT   <= "1000";
  when "1001" =>   DISPLAYOUT   <= "1001";
  when "1010" =>   DISPLAYOUT   <= "1010"; 
  when "1011" =>   DISPLAYOUT   <= "1011";
  when "1100" =>   DISPLAYOUT   <= "1100";
  when "1101" =>   DISPLAYOUT   <= "1101";
  when "1110" =>   DISPLAYOUT   <= "1110";
  when "1111" =>   DISPLAYOUT   <= "1111";
  when others =>   DISPLAYOUT   <= "0000";
    END CASE;
    RETURN DISPLAYOUT;
END FUNCTION DISPLAY;

             

             

BEGIN
SECOND  <=CLK1;
LSEC  <=DISPLAY(LSEC1);   --秒种的个位
HSEC  <=DISPLAY(HSEC1);   --秒种的十位
LMIN  <=DISPLAY(LMIN1);   --分钟的个位
HMIN  <=DISPLAY(HMIN1);   --分钟的十位
LHOUR  <=DISPLAY(LHOUR1);   --小时的个位
HHOUR  <=DISPLAY(HHOUR1);   --小时的十位


P1:PROCESS(CLK,RST)                 --CLK1产生一秒的时钟的块语句
   CONSTANT N:INTEGER:=32768;
   VARIABLE COUNT: INTEGER:=0;
   BEGIN
   IF RST='1' THEN
   COUNT:=0;
   CLK1  <='1';
   COUNT:=COUNT+1;
   ELSIF RISING_EDGE(CLK)THEN
     IF(COUNT  <N/2) THEN
       CLK1  <='1';
       COUNT:=COUNT+1;
     ELSIF(COUNT  <N)THEN
       CLK1  <='0';
       COUNT:=COUNT+1;  
     END IF;
   END IF;
END PROCESS;

P2:PROCESS(CLK1,RST)               --CLK2产生一分钟的时钟的块语句
   CONSTANT M:INTEGER:=60;
   VARIABLE CON: INTEGER:=0;
   BEGIN
   IF RST='1' THEN
   CON:=0;
   CLK2  <='1';
   CON:=CON+1;
   ELSIF RISING_EDGE(CLK1)THEN
     IF(CON  <M/2) THEN
       CLK2  <='1';
       CON:=CON+1;
     ELSIF(CON  <M)THEN
       CLK2  <='0';
       CON:=CON+1;  
     END IF;
   END IF;
END PROCESS;

P3:PROCESS(RST,SETH,SETM,SETS)                  --复位和置数
   BEGIN
   IF RST='1' THEN
      LSEC1  <=" ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:31毫秒 最大:7276毫秒 查询6次