FPGA片內(nèi)FIFO讀寫測試Verilog邏輯源碼Quartus工程文件+文檔說明,使用 FPGA 內(nèi)部的 FIFO 以及程序對該 FIFO 的數(shù)據(jù)讀寫操作。FPGA型號Cyclone4E系列中的EP4CE6F17C8,Quartus版本17.1。timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////module fifo_test( input clk, //50MHz時鐘 input rst_n //復位信號,低電平有效 );//-----------------------------------------------------------localparam W_IDLE = 1;localparam W_FIFO = 2; localparam R_IDLE = 1;localparam R_FIFO = 2; reg[2:0] write_state;reg[2:0] next_write_state;reg[2:0] read_state;reg[2:0] next_read_state;reg[15:0] w_data; //FIFO寫數(shù)據(jù)wire wr_en; //FIFO寫使能wire rd_en; //FIFO讀使能wire[15:0] r_data; //FIFO讀數(shù)據(jù)wire full; //FIFO滿信號 wire empty; //FIFO空信號 wire[8:0] rd_data_count; wire[8:0] wr_data_count; ///產(chǎn)生FIFO寫入的數(shù)據(jù)always@(posedge clk or negedge rst_n)begin if(rst_n == 1'b0) write_state <= W_IDLE; else write_state <= next_write_state;endalways@(*)begin case(write_state) W_IDLE: if(empty == 1'b1) //FIFO空, 開始寫FIFO next_write_state <= W_FIFO; else next_write_state <= W_IDLE; W_FIFO: if(full == 1'b1) //FIFO滿 next_write_state <= W_IDLE; else next_write_state <= W_FIFO; default: next_write_state <= W_IDLE; endcaseendassign wr_en = (next_write_state == W_FIFO) ? 1'b1 : 1'b0; always@(posedge clk or negedge rst_n)begin if(rst_n == 1'b0) w_data <= 16'd0; else if (wr_en == 1'b1) w_data <= w_data + 1'b1; else w_data <= 16'd0; end///產(chǎn)生FIFO讀的數(shù)據(jù)always@(posedge clk or negedge rst_n)begin if(rst_n == 1'b0) read_state <= R_IDLE; else read_state <= next_read_state;endalways@(*)begin case(read_state) R_IDLE: if(full == 1'b1) //FIFO滿, 開始讀FIFO next_read_state <= R_FIFO; else next_read_state <= R_IDLE; R_FIFO: if(empty == 1'b1)
上傳時間: 2021-12-19
上傳用戶:20125101110
STM32F103開發(fā)板 DHT11溫濕度DS18B20 氣體MQ-2光敏聲控雨滴傳感器實驗程序**--------------------------------------------------------------------------------------------------------** Created by: FiYu** Created date: 2015-12-12** Version: 1.0** Descriptions: DHT11溫濕度傳感器實驗 **--------------------------------------------------------------------------------------------------------** Modified by: FiYu** Modified date: ** Version: ** Descriptions: ** Rechecked by: **********************************************************************************************************/#include "stm32f10x.h"#include "delay.h"#include "dht11.h"#include "usart.h"DHT11_Data_TypeDef DHT11_Data;/************************************************************************************** * 描 述 : GPIO/USART1初始化配置 * 入 參 : 無 * 返回值 : 無 **************************************************************************************/void GPIO_Configuration(void){ GPIO_InitTypeDef GPIO_InitStructure; /* Enable the GPIO_LED Clock */ RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO , ENABLE); GPIO_DeInit(GPIOB); //將外設GPIOA寄存器重設為缺省值 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出 GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_DeInit(GPIOA); //將外設GPIOA寄存器重設為缺省值 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //推挽輸出 GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入 GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_SetBits(GPIOB , GPIO_Pin_9); //初始狀態(tài),熄滅指示燈LED1}/************************************************************************************** * 描 述 : 串口顯示實時溫濕度 * 入 參 : 無 * 返回值 : 無 **************************************************************************************/void DHT11_SCAN(void){ if( Read_DHT11(&DHT11_Data)==SUCCESS) { printf("\r\n讀取DHT11成功!\r\n\r\n濕度為%d.%d %RH ,溫度為 %d.%d℃ \r\n",\ DHT11_Data.humi_int,DHT11_Data.humi_deci,DHT11_Data.temp_int,DHT11_Data.temp_deci); //printf("\r\n 濕度:%d,溫度:%d \r\n" ,DHT11_Data.humi_int,DHT11_Data.temp_int); } else { printf("Read DHT11 ERROR!\r\n"); }}/************************************************************************************** * 描 述 : MAIN函數(shù) * 入 參 : 無 * 返回值 : 無 **************************************************************************************/int main(void){ SystemInit(); //設置系統(tǒng)時鐘72MHZ GPIO_Configuration(); USART1_Init(); //初始化配置TIM DHT11_GPIO_Config(); // 初始化溫濕度傳感器PB1引腳初始時為推挽輸出 GPIO_ResetBits(GPIOB , GPIO_Pin_9); delay_ms(500); while(1) { GPIO_SetBits(GPIOB , GPIO_Pin_9); DHT11_SCAN(); //實時顯示溫濕度 delay_ms(1500); } }
上傳時間: 2022-05-03
上傳用戶:得之我幸78
基于STC89C51單片機的智能電熱水器的控制器的設計,要達到的控制要求有:(1)用LCD1602液晶顯示水溫、設置上下限和定時時間,(2)水溫檢測顯示范圍為00~99℃,精度為±1℃。(3)溫度預設范圍為0~99℃,當檢測溫度低于預設溫度時,開始加熱;檢測溫度高于預設溫度時,停止加熱。(4)設置4個程序按鍵。分別問設置按鍵、加鍵、減鍵、確定。(5)可以紅外遙控,通過紅外一體接收探頭接收遙控器信號,執(zhí)行與主板按鍵同等功能。(6)有水位檢測功能,無水自動上水,無水不加熱。//外部中斷解碼程序_外部中斷0void intersvr1(void) interrupt 2 using 1{ TR0=1; Tc=TH0*256+TL0;//提取中斷時間間隔時長 TH0=0; TL0=0; //定時中斷重新置零 if((Tc>Imin)&&(Tc<Imax)) { m=0; f=1; return; } //找到啟始碼 if(f==1) { if(Tc>Inum1&&Tc<Inum3) { Im[m/8]=Im[m/8]>>1|0x80; m++; } if(Tc>Inum2&&Tc<Inum1) { Im[m/8]=Im[m/8]>>1; m++; //取碼 } if(m==32) { m=0; f=0; if(Im[2]==~Im[3]) { IrOK=1; TR0=0; } else IrOK=0; //取碼完成后判斷讀碼是否正確 } //準備讀下一碼 }}
標簽: 51單片機 智能熱水器 控制系統(tǒng)
上傳時間: 2022-05-14
上傳用戶:
PID-小車類-手機遙控十分mimi藍牙小車V2資料全部開源/**************************************************************************函數(shù)功能:增量PI控制器入口參數(shù):編碼器測量值,目標速度返回 值:電機PWM根據(jù)增量式離散PID公式 pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)]e(k)代表本次偏差 e(k-1)代表上一次的偏差 以此類推 pwm代表增量輸出在我們的速度控制閉環(huán)系統(tǒng)里面,只使用PI控制pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)**************************************************************************/int Speed_Incremental_PI (int Encoder,int Target){ static int Bias,Pwm,Last_bias; Bias=Encoder-Target; //計算偏差 Pwm+=Speed_Kp*(Bias-Last_bias)+Speed_Ki*Bias; //增量式PI控制器if(Pwm>500)Pwm=500;else if(Pwm<-500)Pwm=-500; Last_bias=Bias; //保存上一次偏差 return Pwm; //增量輸出}
上傳時間: 2022-06-01
上傳用戶:20125101110
應廣單片機 MINI-C編程指南.Mini-c總結文檔一、缺點:(一)函數(shù)不能帶參數(shù).解決方法:通過A或全局變量進行參數(shù)傳遞;(二)不能使用for循環(huán)解決方法:用while循環(huán)代替for循環(huán).(三)數(shù)組和指針功能弱化解決方法:① 使用rom查表② 使用ram查表(四)不支持全局變量定義同時進行初始化解決方法: 在初始化的時候記得對全局變量進行初始化. (五)Bit變量只支持寫入0,或1,不支持直接bit變量取反解決方法 :if(uBitFlag){ uBitFlag=0;}else{ uBitFlag=1; } 二、優(yōu)點:(一)函數(shù)不帶參數(shù),可以節(jié)省堆棧空間(二)支持ROM查表(三).delay時間非常準確,無需手工計算(四)支持bit變量,節(jié)省ram空間,支持字,字節(jié)拆分.(五)燒錄支持滾動碼寫入.(六)端口配置可以使用腳本(七) 代碼自動生成
標簽: 單片機
上傳時間: 2022-06-17
上傳用戶:
基于單片機的密碼鎖設計,內(nèi)含工程文件和源碼文件以及電路圖#include "config.h" void main(){ LCD_Initial(); //lcd初始化 init_sys(); //硬件系統(tǒng)初始化 setpsw(); //密碼設置 while(1) { time=3; //限定嘗試3次 while(1) { inputpsw(); //輸入密碼 checkpsw(); //密碼驗證 checksuper(); //驗證是否是超級密碼 if(error_flag==0) {right();break;} else if(time>1) error(); //允許2次嘗試錯誤 else {lock();break;} //3次錯誤,系統(tǒng)鎖定 } }}
上傳時間: 2022-07-17
上傳用戶:默默
000愉快的開始.mp4 33.6M2019-12-17 16:09 001我和Python的第一次親密接觸.mp4 29.4M2019-12-17 16:05 002用Python設計第一個游戲.mp4 51.3M2019-12-17 16:05 003小插曲之變量和字符串.mp4 90.9M2019-12-17 16:05 004改進我們的小游戲.mp4 115.9M2019-12-17 16:05 005閑聊之Python的數(shù)據(jù)類型.mp4 31.1M2019-12-17 16:05 006Pyhon之常用操作符.mp4 26.1M2019-12-17 16:05 007了不起的分支和循環(huán).mp4 30.6M2019-12-17 16:05 008了不起的分支和循環(huán)2.mp4 23.3M2019-12-17 16:05 009了不起的分支和循環(huán)3.mp4 23.5M2019-12-17 16:05 010列表:一個打了激素的數(shù)組.mp4 23.2M2019-12-17 16:05 011列表:一個打了激素的數(shù)組2.mp4 22.1M2019-12-17 16:05 012列表:一個打了激素的數(shù)組3.mp4 36.2M2019-12-17 16:05 013元組:戴上了枷鎖的列表.mp4 54.2M2019-12-17 16:05 014字符串:各種奇葩的內(nèi)置方法.mp4 142.5M2019-12-17 16:05 015字符串:格式化.mp4 115.1M2019-12-17 16:05 016序列!序列!.mp4 81.1M2019-12-17 16:05 017函數(shù):Python的樂高積木.mp4 25M2019-12-17 16:05 018函數(shù):靈活即強大.mp4 33.7M2019-12-17 16:05 019函數(shù):我的地盤聽我的.mp4 33.1M2019-12-17 16:05 020函數(shù):內(nèi)嵌函數(shù)和閉包.mp4 35.5M2019-12-17 16:05 021函數(shù):lambda表達式.mp4 28.9M2019-12-17 16:05 022函數(shù):遞歸是神馬.mp4 48.3M2019-12-17 16:05 023遞歸:這幫小兔崽子.mp4 39.5M2019-12-17 16:05 024遞歸:漢諾塔.mp4 28.8M2019-12-17 16:05 025字典:當索引不好用時.mp4 41.4M2019-12-17 16:05 026字典:當索引不好用時2.mp4 34.4M2019-12-17 16:05 027集合:在我的世界里,你就是唯一.mp4 19.4M2019-12-17 16:05 028文件:因為懂你,所以永恒.mp4 55.5M2019-12-17 16:05 029文件:一個任務.mp4 41.8M2019-12-17 16:05 030文件系統(tǒng):介紹一個高大上的東西.mp4 80.3M2019-12-17 16:05 031永久存儲:腌制一缸美味的泡菜.mp4 39.9M2019-12-17 16:05 032異常處理:你不可能總是對的.mp4 49M2019-12-17 16:05 033異常處理:你不可能總是對的2.mp4 34.9M2019-12-17 16:05 034豐富的else語句及簡潔的with語句.mp4 24M2019-12-17 16:05 035圖形用戶界面入門:EasyGui.mp4 73.5M2019-12-17 16:05 036類和對象:給大家介紹對象.mp4 30.2M2019-12-17 16:05 037類和對象:面向對象編程.mp4 28.8M2019-12-17 16:05 038類和對象:繼承.mp4 42.2M2019-12-17 16:05 039類和對象:拾遺.mp4 41.8M2019-12-17 16:05 040類和對象:一些相關的BIF.mp4 32.8M2019-12-17 16:05 041魔法方法:構造和析構.mp4 26.8M2019-12-17 16:05 042魔法方法:算術運算.mp4 30M2019-12-17 16:05 043魔法方法:算術運算2.mp4 31.8M2019-12-17 16:05 044魔法方法:簡單定制.mp4 78.9M2019-12-17 16:05 045魔法方法:屬性訪問.mp4 42.9M2019-12-17 16:05 046魔法方法:描述符(Property的原理).mp4 42.4M2019-12-17 16:05 047魔法方法:定制序列.mp4 23M2019-12-17 16:05 048魔法方法:迭代器.mp4 32.9M2019-12-17 16:05 049亂入:生成器.mp4 33.3M2019-12-17 16:05 050模塊:模塊就是程序.mp4 25.6M2019-12-17 16:05 051模塊:__name__='__main__'、搜索路徑和包.mp4 29.6M2019-12-17 16:05 052模塊:像個極客一樣去思考.mp4 63M2019-12-17 16:05 053論一只爬蟲的自我修養(yǎng).mp4 48.1M2019-12-17 16:05 054論一只爬蟲的自我修養(yǎng)2:實戰(zhàn).mp4 71.6M2019-12-17 16:05 055論一只爬蟲的自我修養(yǎng)3:隱藏.mp4 54.8M2019-12-17 16:05 056輪一只爬蟲的自我修養(yǎng)4:OOXX.mp4 94M2019-12-17 16:05 057論一只爬蟲的自我修養(yǎng)5:正則表達式.mp4 58.6M2019-12-17 16:05 058論一只爬蟲的自我修養(yǎng)6:正則表達式2.mp4 75.2M2019-12-17 16:05 059論一只爬蟲的自我修養(yǎng)7:正則表達式3.mp4 57.2M2019-12-17 16:05 060論一只爬蟲的自我修養(yǎng)8:正則表達式4.mp4 89.1M2019-12-17 16:05 061論一只爬蟲的自我修養(yǎng)9:異常處理.mp4 32.1M2019-12-17 16:05 062論一只爬蟲的自我修養(yǎng)10:安裝Scrapy.mp4 58.7M2019-12-17 16:05 063論一只爬蟲的自我修養(yǎng)11:Scrapy框架之初窺門徑.mp4 156.5M2019-12-17 16:05 064GUI的終極選擇:Tkinter.mp4 43.4M2019-12-17 16:05 065GUI的終極選擇:Tkinter2.mp4 60.1M2019-12-17 16:05 066GUI的終極選擇:Tkinter3.mp4 …………
上傳時間: 2013-04-15
上傳用戶:eeworm