六十进制计数器原程序

六十进制计数器原程序

ID:37549174

大小:22.50 KB

页数:9页

时间:2019-05-25

六十进制计数器原程序_第1页
六十进制计数器原程序_第2页
六十进制计数器原程序_第3页
六十进制计数器原程序_第4页
六十进制计数器原程序_第5页
资源描述:

《六十进制计数器原程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、六十进制计数器libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitycnt_60isport(clk:instd_logic;data_out:outstd_logic_vector(7downto0);w_out:outstd_logic_vector(3downto0);datain:instd_logic_vector(3downto0);key:instd_logic_vector(4downto2));enden

2、titycnt_60;architectureoneofcnt_60issignalq:integerrange0to49999999;signalcounter:integerrange0TO499999;signalcnt1:integerrange0to25000000;signalclr,clk_1hz:std_logic;signalbcd1:std_logic_vector(2downto0);signalbcd10:std_logic_vector(3downto0);signalbcd1wr,bcd10wr,cin,co:std_logic;signala0

3、,a1,a2:integer;typetable_arrayisarray(0to9)ofstd_logic_vector(0to7);signaltable:table_array:=("00000011","10011111","00100101","00001101","10011001","01001001","01000001","00011111","00000001","00001001");beginbcd1wr<=notkey(4);bcd10wr<=notkey(3);cin<=key(2);process(clk)--此进程作用是分出50MHz方波be

4、ginifclk'eventandclk='1'thenifcnt1=24999999thencnt1<=0;clk_1hz<=notclk_1hz;elsecnt1<=cnt1+1;endif;endif;endprocess;process(clk_1Hz,bcd1wr,datain)is--该进程是处理个位计数beginif(bcd1wr='1')thenbcd1<=datain(2downto0);elsif(clk_1Hz'eventandclk_1Hz='1')thenif(cin='1')thenif(bcd1=5)thenbcd1<="000";elsebc

5、d1<=bcd1+1;endif;endif;endif;endprocess;process(clk_1Hz,bcd10wr,datain)is--该进程是处理十位计数beginif(bcd10wr='1')thenbcd10<=datain;elsif(clk_1Hz'eventandclk_1Hz='1')thenif(cin='1'andbcd1=5)thenif(bcd10=9)thenbcd10<="0000";elsebcd10<=bcd10+1;endif;endif;endif;endprocess;process(bcd10,bcd1,cin)is--该

6、进程是处理进位输出的值beginif(cin='1'andbcd1=5andbcd10=9)thenco<='1';elseco<='0';endif;endprocess;process(bcd1,bcd10,cin)is--该进程是把计算结果送给数码管begina0<=conv_integer(bcd1);a1<=conv_integer(bcd10);a2<=conv_integer(co);endprocess;process(clk)is--该进程是显示部分beginifclk'eventandclk='1'thenif(counter<99999)thendat

7、a_out<=table(a0);w_out<="1110";counter<=counter+1;elsif(counter<199999)thendata_out<=table(a1);w_out<="1101";counter<=counter+1;elsif(counter<299999)thendata_out<=table(a2);w_out<="1011";counter<=counter+1;elsif(counter<399999)thendata_out<=table(0);w_out<="01

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。