![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FPGA
梦灵-影
这个作者很懒,什么都没留下…
展开
-
FPGA(10)dht11驱动(单总线)与单总线协议总结
总结: 通过一个星期的单总线协议(NEC协议,ds18b20协议,dht11协议)的学习,FPGA正式入门,在单总线学习中,知道FSM(有限状态机)的构造,能够独立自主构造。在单总线红外驱动解码(NEC协议)只是对输入数据的解码,串行数据,转到并行数据,也知道怎样把数据同步到主机时钟,生成上升和下降沿的标志,通过上升或者下降沿标志进行计数,进而判断高低电平,我想这是未来写通信驱动的必备环节。当然,初学者可以画波形图进行编写,现在,感觉FPGA已经入门了,无需波形图,只...原创 2022-02-26 13:09:00 · 1491 阅读 · 0 评论 -
FPGA(8)红外接收(NEC协议)
协议波形代码module hongwai(sys_clk,sys_rst,data1_in,data8_out,repeat_en);//输入信号 input wire sys_clk,sys_rst; input wire data1_in;//输出信号 output reg [7:0] data8_out; output reg repeat_en;//状态机(以及转换条件)...原创 2022-02-24 17:12:13 · 290 阅读 · 0 评论 -
FPGA(7)DAC(DDS)
module dds_ctrl(sys_clk,sys_rst,wave_sel,A_word,F_word,P_word,data_out); input wire sys_clk,sys_rst; input wire [3:0] wave_sel; input wire [10:0] F_word; input wire [11:0] P_word; input wire [7:0] A_wo..原创 2022-02-24 17:03:46 · 378 阅读 · 0 评论 -
FPGA(6)电压测量(ADC)
module adc8_5v(sys_clk,sys_rst,data8_in,data16_out,adc_clkout,sign,data_medium_out); input wire sys_clk,sys_rst; input wire [7:0] data8_in;output [7:0] data_medium_out; output wire adc_clkout; output wire ..原创 2022-02-24 17:01:30 · 1712 阅读 · 1 评论 -
FPGA(5) UART_drive代码
主要思想还是时间并行,以及大计数周期的概念。module rs232_diver_RX(sys_clk,sys_rst,RX,data_RX1,data_flag); input sys_clk,sys_rst;//系统时钟,系统复位 input RX; //数据接受 output data_RX1; output data_flag; reg [7:0] data_RX1;//表示接受的数据(总线) reg [原创 2022-01-20 00:25:17 · 387 阅读 · 0 评论 -
FPGA(5)设置“大时钟”,驱动数码管(显示任意值,任意编码)
6位数码管扫描程序原理:就是设置持续时间间隔很长的计数器,这里共计8位数,然后将传来的数据整合转换成BCD码,然后就是每次工作在计数器为特定值工作,例如,这里当计数器为0是,进行数据处理,和数据编码,(由于我们设置的计数器时间间隔2ms或者可以更短),相对于原本时钟,占有时间很多,而数据转换,数据编码,大概最多不超过10个时钟,明显就是不会影响下个计数器的的值,这也就为下面,当有个计数器改变,输出响应的位信号,和段编码。module seg_dynamic(sys_clk,sys_rst,d..原创 2022-01-17 19:32:21 · 284 阅读 · 0 评论 -
FPGA(4)移位寄存器的编写方法(HC595驱动)
module seg_HC595_diver(sys_clk,sys_rst,seg,sel,stcp_reg,shcp_pose,ds,oe); input sys_clk,sys_rst; input wire [7:0] seg;//段选 input wire [5:0] sel;//位选 output stcp_reg,shcp_pose,ds,oe; reg shcp_pose;//.原创 2022-01-16 22:38:05 · 860 阅读 · 0 评论 -
FPGA学习(3)如何规划时间计数(例如用蜂鸣器演奏音乐)
代码:module beep(sys_clk,sys_rst,beep,key_in); input sys_clk,sys_rst; input key_in; output reg beep; //声音输出 wire key_flag; //按键脉冲 reg key_flagout; //按键电平parameter Time500ms=25'd24_999_999;parameter原创 2022-01-15 21:40:12 · 426 阅读 · 0 评论 -
FPGA学习(2)-按键消抖
原理对于机器开关,有抖动,在一般单片机设置时,直接检测后,如果监测到按键,然后延时,在检测,这是利用了单片机的系统结构,顺序执行。而对于FPGA,思路:(假设按键按下表示低电平),高电平时,计数值一直为0,当检测到低电平,开始计数,在此期间,如果有任何高点平,重新计数,所以在低电平稳定时,计数开始直到最大,这也表示按键稳定,而且一定消抖了,然后给一脉冲标志,表示按键按下了,但是,为了防止一直按着按键计数会自动清零,所以前面加个判断,在低电平前提下,达到最大值,计数器不变了。同时为了满足输出产生个脉冲原创 2022-01-12 22:49:22 · 329 阅读 · 0 评论