完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 雾_盈 于 2016-8-30 09:35 编辑 六位四则运算计算器(4)数码管消零模块 雾盈 2016-8-27 一、写在之前 我之前已经发过一篇数码管文章,链接在上面。那一个数码管程序实现的功能是可以显示三位十进制数。 这一篇和上一篇不同的是,加入了数码管消零模块,并且去除了十六进制转十进制的部分。 我的计算器设计里将数码管部分分为两个小模块来写的:1)数码管消零模块。2)数码管显示模块。 本篇文章,将用两种写法来讲数码管消零。 二、功能 此数码管程序可以消去最高位之前无意义的零,直接显示数字的十六进制数值。 三、框图 四、思路及代码解释 第一步:为了消去没有数字数码管位上的零,首先要确定这一位数码管上到底有米有数字。 我们下面的这一段代码就是为了实现这一目的: 六位数码管可以显示一个24位的十六进制数,所以让每个数码管上的四位相或,(或,全为零时才为零)。然后,让一个六位寄存器去存放这六个相或的结果,下一步用。 第二步,确定最高位所在位,输出数码管显示开关,关掉最高位之前的数码管显示,即达到消零目的。 第三步,同样实现上一步的功能,只是写法不同了。 相或,取反。 举个例子:001234 消去前面两个零。 由第一步的程序可以得到: Bcd_r[5]=0, Bcd_r[4]=0, Bcd_r[3]= Bcd_r[2] = Bcd_r[1] = Bcd_r[0]=1 , 这样相或后{ }内结果为{0,0,1,1,1,1},再取反是使开关为1 时有效,即bcd_off=6’b110000 ; 达到目的。 下一篇讲数码管显示。 源代码如下:
smg.zip
(2.18 KB, 下载次数: 13
)
|
|
相关推荐
|
|
基本FPGA或者树莓派或者其它微处理器(尽量压缩成本且完成项目)DFB激光器稳频
1449 浏览 1 评论
2542 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1203 浏览 0 评论
3693 浏览 1 评论
3303 浏览 0 评论
2337 浏览 58 评论
6190 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-2 18:00 , Processed in 0.577396 second(s), Total 69, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号