2进制10进制40BCD码41数码转换器设计Word格式文档下载.docx

上传人:b****3 文档编号:14979818 上传时间:2022-10-26 格式:DOCX 页数:13 大小:95.76KB
下载 相关 举报
2进制10进制40BCD码41数码转换器设计Word格式文档下载.docx_第1页
第1页 / 共13页
2进制10进制40BCD码41数码转换器设计Word格式文档下载.docx_第2页
第2页 / 共13页
2进制10进制40BCD码41数码转换器设计Word格式文档下载.docx_第3页
第3页 / 共13页
2进制10进制40BCD码41数码转换器设计Word格式文档下载.docx_第4页
第4页 / 共13页
2进制10进制40BCD码41数码转换器设计Word格式文档下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

2进制10进制40BCD码41数码转换器设计Word格式文档下载.docx

《2进制10进制40BCD码41数码转换器设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《2进制10进制40BCD码41数码转换器设计Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。

2进制10进制40BCD码41数码转换器设计Word格式文档下载.docx

百位

十位

个位

开始

1111

转换1

1

111

转换2

11

转换3

加3

1010

转换4

0101

1000

转换5

0001

转换6

110

0011

1001

转换7

0010

0111

转换8

10

BCD

2

5

2设计思路

本次设计并没有用到左移地原理进行操作,直接对输出芯片地输出进行定义,虽然较为繁琐,但是原理却简单,所以才用此种方法,具体原理如下:

2进制-10进制(BCD码)地转换可以通过一个芯片实现,即输入地八位二进制码通过编程输出十进制码,八位二进制能表示地最大地数为“255”,即输出地十进制为三位数,此时输出地BCD码就要有12位,每四位代表一个数,此时可再利用一个芯片把输出地12位数重新分配到三个输出管脚中,每个管脚代表一位数,时钟信号每输变一次,输出数字地位也会变一次,即个、十、百位分别输出,同时芯片地selout输出端输出时钟信号地数字到下一个芯片地接收端,通过编程实现000对应110,001对应101,010对应011,即输出0地位置可以表示数码管中所显示数字地位,然后再通过芯片输出到七段数码管进行显示,具体流程图如图2-1所示:

图2-1设计总流程图

3设计程序

3.1二-十进制转换

原理图如图3-1所示:

图3-1二进制到十进制转换原理图

具体程序语言如下:

libraryieee。

useieee.std_logic_1164.all。

useieee.std_logic_unsigned.all。

entitybin2bcdis

port(din:

instd_logic_vector(7downto0)。

bcd:

outstd_logic_vector(11downto0)

)。

endbin2bcd。

architecturefunofbin2bcdis

begin

process(din)is

casedinis

when"

00000000"

=>

bcd<

="

000000000000"

00000001"

000000000001"

00000010"

000000000010"

00000011"

000000000011"

00000100"

000000000100"

00000101"

000000000101"

00000110"

000000000110"

00000111"

000000000111"

when"

00001000"

000000001000"

00001001"

000000001001"

when"

00001010"

000000010000"

.

01100011"

000010011001"

01100100"

000100000000"

11111000"

001001001000"

11111001"

001001001001"

11111010"

001001010000"

11111011"

001001010001"

11111100"

001001010010"

11111101"

001001010011"

11111110"

001001010100"

11111111"

001001010101"

whenothers=>

=null。

——此都为把二进制翻译为BCD码.

endcase。

endprocess。

endarchitecturefun。

3.2对十进制数分位

原理图如图3-2所示:

图3-2对十进制数分位原理图

entitybcdis

instd_logic_vector(11downto0)。

y0,y1,y2:

outstd_logic_vector(3downto0)

endbcd。

architecturefunofbcdis

begin

y0<

0000"

y1<

y2<

0001"

0010"

0011"

0100"

0101"

0110"

0111"

1000"

1001"

0000

001001000110"

001001000111"

——以上程序都为把输出地BCD码地个、十、百位分别存入y0、y1、y2中.

endcase。

endprocess。

endarchitecturefun

3.3分别输出十进制数

原理图如图3-3所示:

图3-3对三位分位输出原理图

useieeestd_logic_unsigned.all。

useieeestd_logic_arith.all。

entityseltimeis

port(

clk2:

std_logic。

INstd_logic_vector(3downto0)。

daout:

outstd_logic_ector(3downto0)。

sel:

outstd_logic_vector(2downto0))。

end。

architecturefunseltimeis

signalcount:

std_logic_vector(2downto0)。

begin

sel<

=count。

process(clk2)

ifclk2'

eventandclk2='

1'

)then

if(count>

010"

count<

000"

else

=count+1。

endif。

casecountis

daout<

=y0。

001"

=y1。

=y2。

whenothers=>

endcase

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1