您现在的位置是:主页 > news > wordpress环境要求/百度seo营销公司

wordpress环境要求/百度seo营销公司

admin2025/5/26 0:57:59news

简介wordpress环境要求,百度seo营销公司,上海十大网站排名,佛山网站建设费用文章目录一.任务要求二.设计思路三.代码实现一.任务要求 能够通过串口向FPGA芯片发送命令,以命令控制FPGA接收温度传感器数据,以及串口发送和数码管显示。该项目以前面学习的ds18b20温度传感器为例。 二.设计思路 ①温度传感器返回数据是二进制的形式…

wordpress环境要求,百度seo营销公司,上海十大网站排名,佛山网站建设费用文章目录一.任务要求二.设计思路三.代码实现一.任务要求 能够通过串口向FPGA芯片发送命令,以命令控制FPGA接收温度传感器数据,以及串口发送和数码管显示。该项目以前面学习的ds18b20温度传感器为例。 二.设计思路 ①温度传感器返回数据是二进制的形式…

文章目录

    • 一.任务要求
    • 二.设计思路
    • 三.代码实现

一.任务要求

能够通过串口向FPGA芯片发送命令,以命令控制FPGA接收温度传感器数据,以及串口发送和数码管显示。该项目以前面学习的ds18b20温度传感器为例。

二.设计思路

①温度传感器返回数据是二进制的形式,为了方便后续处理,我们需要先将数据转换为bcd码的形式。

BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。

在这里,我们采用的是8421BCD码,也就是采用4位二进制的前十组代码表示0~9。
方法是:将要转的二进制值向左移动,一旦表示一位十进制数的4位二进制的值大于4,就加上3。
具体如下:
在这里插入图片描述

②串口以ASCII的形式收发数据,所以我们需要两个模块用于ASCII码和16进制数据转换。
根据下表对串口输入数据进行操作:
在这里插入图片描述
ASCII转16进制数据(关键代码):
这部分用于将串口发送的数据转换成我们需要的16进制命令,而该命令以两个16进制数据组成,所以该模块需要一次输出连续处理的两个数据。

always@(posedge clk or negedge rst_n)beginif(!rst_n)begintmp <= 0;endelse if(din >= 8'h30 && din <= 8'h39)begin//0~9tmp <= din - 8'h30;endelse if(din >= 8'h41 && din <= 8'h46)begin//A~Ftmp <= din - 8'h37;endelse if(din >= 8'h61 && din <= 8'h66)begin//a~ftmp <= din - 8'h57;endend

16进制转ASCII(关键代码):

always@(posedge clk or negedge rst_n)beginif(!rst_n)begindata <= 0;endelse if(din_vld)begindata <= din + 8'h30;//16进制数与相应ASCII数相差8'h30endend

③命令解析,接收到串口发送的相关命令后,对数码管,串口发送以及温度采集的使能信号开启。
这里使用了一个帧结构,包含帧头,命令,帧尾。简单用一个状态机(含有三个状态,对应帧结构)
④设计一个控制模块,例化上述模块,对接收的串口数据进行转换,命令解析,温度传感器的数据进行转换,将各个使能信号传递给相应模块。

三.代码实现