完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 本帖最后由 Nancyfans 于 2019-8-9 16:53 编辑 线上线下培训课程推荐 课程名称:FPGA周六班,快速入门FPGA 课程链接:http://url.elecfans.com/u/97edd21e88 一、 功能描述 在同一个遥控电路中通常要使用实现不同的遥控功能或区分不同的机器类型, 这样就要求信号按一定的编码传送,编码则会由编码芯片或电路完成。对应于编码芯片通常会有相配对的解码芯片或包含解码模块的应用芯片。在实际的产品设计或业余电子制作中,编码芯片并一定能完成我们要求的功能,这时我们就需要了解所使用的编码芯片到底是如何编码的。只有知道编码方式,我们才可以使用单片机或数字电路去定制解码方案。下面介绍本次案例的编码方式: 引导码+地址码+数据码+数据反码 1.引导码:9ms(低电平)+4.5ms(高电平) 2.地址码:16位地址码 3.数据码:8位数据码 4.数据反码:8位数据反码 数据“0”=0.56ms高+0.56ms低 数据“1”=0.56ms高+1.68ms低 本案例实现了将上述编码格式的红外发送数据进行接收和解码,并将收到的数据显示到七段译码器上。 二、 平台效果图 三、 实现过程 首先根据所需要的功能,列出工程顶层的输入输出信号列表。
我们可以把工程划分成两个模块,分别是红外接收解码模块和数码管显示模块。 1.红外接收解码模块 ir_din在没有红外信号时默认为高,之后当有红外信号时,通过设计一个状态机几个状态,分别为初始状态监测9ms的头码,然后是监测4.5ms的引导码状态,然后进入数据读取状态,当数据读取完毕或者没有红外信号输入时回到初始状态。在数据读取状态通过判断,当遇到一个上升沿时,计数之前的低电平时间为0.56ms还是1.68ms来确定数据为“0”还是“1”。当数据读取完毕时,红外解码数据有效指示信号拉高并将红外解码数据传输给数码管模块。 以此本模块实现了将接收到的红外信号进行对应的解码,并将数据传输给数码管模块功能。 本模块信号列表如下:
2.数码管模块 本模块实现了将时钟数据或者闹钟数据显示到七段译码器上的功能。 七段译码器引脚图:
根据七段译码器的型号共阴极或者共阳极,给予信号0或1点亮对应的led灯,一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选(a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即;共阳数码管的字符编码为11000000。 在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。 本模块采用6个七段译码器显示闹钟小时分钟秒位,使用一个计数器不停计数0-5,每个数字代表一个七段译码器,在对应的七段译码器给予对应的字符编码,以此达到扫描数码管显示数据的功能。 信号列表如下:
代码资料链接:http://pan.baidu.com/s/1jH8PpLc ` |
|||
相关推荐 |
|||
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
1367 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1046 浏览 0 评论
2442 浏览 1 评论
2146 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2408 浏览 0 评论
1893 浏览 50 评论
6018 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 18:41 , Processed in 0.660481 second(s), Total 43, Slave 32 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号