项目接口需求及设计说明文档(模板)
2021-12-15 21:01:35 532KB
本设计三相交流电机正反转控制器功能是实现对三相交流电机的正反转控制,但不能实现调速。见附件下载其原理图/BOM/设计说明等。三相交流电机正反转控制器优点是控制方便,成本低,工作可靠,控制电压范围广、没有发热现象。三相交流电机正反转控制器实物截图: 三相交流电机正反转控制器电路板供电电压由继电器额定工作电压决定,比如,继电器是24V的,板子供电电压就是24V。输入控制信号电压3.3V~30V之间。输入信号经过光耦信号隔离,光耦信号通过控制晶体管控制继电器吸合与断开,继电器输出的是开关量,可控制小功率的三相交流异步电动机的启动停止和正反转 。三相交流电机正反转控制器接口截图:
2021-12-14 23:03:26 3.63MB 继电器 信号隔离 交流电机 电路方案
1
Jetson_Camera_Module_Hardware_Design_Guide nvidia Jetson 相机模组硬件开发设计说明
2021-12-14 12:07:22 622KB Jetson_Camera_Mo
机械原理课程设计干粉压片机设计说明,pdf格式
2021-12-05 16:22:40 558KB 机械原理 课程设计 干粉压片机
1
FPGA控制PS2键盘verilog设计Quartus9.1工程源码+设计说明文件,可以做为你的学习设计参考。 1. 这个实例通过开发板上面的PS/2接口接收键盘输入的数据,在LCD上面显示出来; 2. 工程在project文件夹里面,打开工程; 3. 源文件在rtl文件夹里面; module top(clk_in, data, lcd_e, lcd_rs, lcd_rw, led, ps2ck, ps2dk); input clk_in; output [7:0] data; output lcd_e; output lcd_rs; output lcd_rw; output [7:0] led; inout ps2ck; inout ps2dk; wire XLXN_4; wire XLXN_5; wire XLXN_6; reg clk; assign rst = 1'b1; always@(posedge clk_in) clk <= ~clk; div_256 XLXI_1 (.mclk(clk), .reset(rst), .clk(XLXN_6)); div16 XLXI_2 (.clk(clk), .rst(rst), .clk_16(XLXN_5)); lcd XLXI_3 (.clk(XLXN_5), .data_in(led[7:0]), .rst(XLXN_4), .data(data[7:0]), .lcd_e(lcd_e), .lcd_rs(lcd_rs), .lcd_rw(lcd_rw)); ps2_keyboard_interface XLXI_4 (.clk(XLXN_6), .reset(rst), .rx_read(), .tx_data(), .tx_write(), .rx_ascii(led[7:0]), .rx_data_ready(), .rx_extended(), .rx_released(XLXN_4), .rx_scan_code(), .rx_shift_key_on(), .tx_error_no_keyboard_ack(), .tx_write_ack_o(), .ps2_clk(ps2ck), .ps2_data(ps2dk)); endmodule
16位乘法器芯片verilog设计实验Quartus9.1工程源码+设计说明文件,可以做为的学习实验设计参考。 module mux16( clk,rst_n, start,ain,bin,yout,done ); input clk; //芯片的时钟信号。 input rst_n; //低电平复位、清零信号。定义为0表示芯片复位;定义为1表示复位信号无效。 input start; //芯片使能信号。定义为0表示信号无效;定义为1表示芯片读入输入管脚得乘数和被乘数,并将乘积复位清零。 input[15:0] ain; //输入a(被乘数),其数据位宽为16bit. input[15:0] bin; //输入b(乘数),其数据位宽为16bit. output[31:0] yout; //乘积输出,其数据位宽为32bit. output done; //芯片输出标志信号。定义为1表示乘法运算完成. reg[15:0] areg; //乘数a寄存器 reg[15:0] breg; //乘数b寄存器 reg[31:0] yout_r; //乘积寄存器 reg done_r; reg[4:0] i; //移位次数寄存器 always@(posedge clk) begin if(!rst_n) begin areg <= 16'h0000; breg <= 16'h0000; done_r <= 1'b0; yout_r <= 32'h00000000; i <= 5'd0; end else if(start) //启动运算 begin if(i < 5'd21) i <= i+1'b1; if(i == 5'd0) begin //锁存乘数、被乘数 areg <= ain; breg 5'd0 && i < 5'd16) begin if(areg[i-1]) yout_r = {1'b0,yout[30:15]+breg,yout_r[14:1]}; //累加并移位 else yout_r >1; //移位不累加 end else if(i == 5'd16 && areg[15]) yout_r[31:16] <= yout_r[31:16]+breg; //累加不移位 else if(i == 5'd18) done_r <= 1'b1; //乘完成标志位置位 else if(i == 5'd20) done_r <= 1'b0; //乘完成标志位清除 end else i <= 5'd0; end assign done = done_r; assign yout = yout_r;
FPGA 读写SRAM存储verilog设计实验Quartus9.1工程源码+设计说明文件,可以做为你的学习设计参考。 module sram_test( clk,rst_n,led, sram_addr,sram_wr_n,sram_data ); input clk; // 50MHz input rst_n; //低电平复位 output led; // LED1 // FPGA与SRAM外部接口 output[17:0] sram_addr; // SRAM地址总线 output sram_wr_n; // SRAM写选通 inout[15:0] sram_data; // SRAM数据总线 //------------------------------------------------------- reg[25:0] delay; //延时计数器 always @ (posedge clk or negedge rst_n) if(!rst_n) delay <= 26'd0; else delay <= delay+1; //不断计数,周期约为1.28s //------------------------------------------------------- reg[15:0] wr_data; // SRAM写入数据总线 reg[15:0] rd_data; // SRAM读出数据 reg[17:0] addr_r; // SRAM地址总线 wire sram_wr_req; // SRAM写请求信号 wire sram_rd_req; // SRAM读请求信号 reg led_r; // LED寄存器 assign sram_wr_req = (delay == 26'd9999); //产生写请求信号 assign sram_rd_req = (delay == 26'd19999); //产生读请求信号 always @ (posedge clk or negedge rst_n) if(!rst_n) wr_data <= 16'd0; else if(delay == 26'd29999) wr_data <= wr_data+1'b1; //写入数据每1.28s自增1 always @ (posedge clk or negedge rst_n) if(!rst_n) addr_r <= 18'd0; else if(delay == 26'd29999) addr_r <= addr_r+1'b1; //写入地址每1.28s自增1 always @ (posedge clk or negedge rst_n) if(!rst_n) led_r <= 1'b0; else if(delay == 26'd20099) begin //每1.28s比较一次同一地址写入和读出的数据 if(wr_data == rd_data) led_r <= 1'b1; //写入和读出数据一致,LED点亮 else led_r <= 1'b0; //写入和读出数据不同,LED熄灭 end assign led = led_r; //------------------------------------------------------- `define DELAY_80NS (cnt==3'd7) reg[2:0] cnt; //延时计数器 always @ (posedge clk or negedge rst_n) if(!rst_n) cnt <= 3'd0; else if(cstate == IDLE) cnt <= 3'd0; else cnt <= cnt+1'b1; //------------------------------------ parameter IDLE = 4'd0, WRT0 = 4'd1, WRT1 = 4'd2, REA0 = 4'd3, REA1 = 4'd4; reg[3:0] cstate,nstate; always @ (posedge clk or negedge rst_n) if(!rst_n) cstate <= IDLE; else cstate <= nstate; always @ (cstate or sram_wr_req or sram_rd_req or cnt) case (cstate) IDLE: if(sram_wr_req) nstate <= WRT0
FPGA设计时分秒进位数字时钟verilog实验Quartus9.1工程源码+设计说明文件 /* 本实验实现一个能显示小时,分钟,秒的数字时钟。 */ module clock(clk,rst,dataout,en); input clk,rst; output[7:0] dataout; reg[7:0] dataout; output[7:0] en; reg[7:0] en; reg[3:0] dataout_buf[7:0]; reg[25:0] cnt; reg[15:0] cnt_scan; reg[3:0] dataout_code; wire[5:0] cal; //各级进位标志 assign cal[0]=(dataout_buf[0]==9)?1:0; assign cal[1]=(cal[0]&&dataout_buf[1]==5)?1:0; assign cal[2]=(cal[1]&&dataout_buf[3]==9)?1:0; assign cal[3]=(cal[2]&&dataout_buf[4]==5)?1:0; assign cal[4]=(cal[3]&&dataout_buf[6]==9)?1:0; assign cal[5]=(cal[3]&&dataout_buf[6]==2&&dataout_buf[7]==1)?1:0; always@(posedge clk or negedge rst) begin if(!rst) begin cnt_scan<=0; en<=8'b1111_1110; end else begin cnt_scan<=cnt_scan+1; if(cnt_scan==16'hffff) begin en[7:1]<=en[6:0]; en[0]<=en[7]; end end end always@(*) begin case(en) 8'b1111_1110: dataout_code=dataout_buf[0]; 8'b1111_1101: dataout_code=dataout_buf[1]; 8'b1111_1011: dataout_code=dataout_buf[2]; 8'b1111_0111: dataout_code=dataout_buf[3]; 8'b1110_1111: dataout_code=dataout_buf[4]; 8'b1101_1111: dataout_code=dataout_buf[5]; 8'b1011_1111: dataout_code=dataout_buf[6]; 8'b0111_1111: dataout_code=dataout_buf[7]; default: dataout_code=dataout_buf[0]; endcase end always@(posedge clk or negedge rst) begin if(!rst) cnt<=0; else if(cnt!=40000000) cnt<=cnt+1; else cnt<=0; end always@(posedge clk or negedge rst) //实现计数和进位的功能 begin if(!rst) begin dataout_buf[0]<=0; dataout_buf[1]<=0; dataout_buf[2]<=15; dataout_buf[3]<=0; dataout_buf[4]<=0; dataout_buf[5]<=15; dataout_buf[6]<=2; dataout_buf[7]<=1; end else begin if(cnt==26'd40000000) begin if(!cal[0]) dataout_buf[0]<=dataout_buf[0]+1; else begin dataout_buf[0]
基于FIFO的串口发送器+串口自收发通信verilog设计实验Quartus9.1工程源码+设计说明文件,可以做为你的学习设计实验参考。 module uartfifo( clk,rst_n, rs232_tx ); input clk; // 25MHz主时钟 input rst_n; //低电平复位信号 output rs232_tx; //RS232发送数据信号 wire[7:0] wrf_din; //数据写入缓存FIFO输入数据总线 wire wrf_wrreq; //数据写入缓存FIFO数据输入请求,高有效 wire[7:0] tx_data; //串口待发送数据 wire tx_start; //串口发送数据启动标志位,高有效 wire fifo232_rdreq; //FIFO读请求信号,高有效 wire fifo_empty; //FIFO空标志位,高有效 assign tx_start = ~fifo_empty; //fifo有数据即启动串口模块发送数据 //例化232发送数据产生模块 datagene uut_datagene( .clk(clk), .rst_n(rst_n), .wrf_din(wrf_din), .wrf_wrreq(wrf_wrreq) ); //例化FIFO fifo232 fifo232_inst ( .clock(clk), .data(wrf_din), .rdreq(fifo232_rdreq), .wrreq(wrf_wrreq), .empty(fifo_empty), .q(tx_data) ); //例化串口发送模块 uart_ctrl uut_uartfifo( .clk(clk), .rst_n(rst_n), .tx_data(tx_data), .tx_start(tx_start), .fifo232_rdreq(fifo232_rdreq), .rs232_tx(rs232_tx) ); endmodule
STM32 PDA 的全套源代码、电路图、电路板及元器件清单的完整打包。 主要功能有:USB、SD卡、MP3、重力感应、电子书、电子相框、收音机、触摸画板等。图形化人机界面。 为提高响应,全部采用直接裸核编程,不采用其它任何嵌入操作系统!是了解功能实现技术的好帮手和编程学习的好参照。
2021-11-30 14:40:34 5.76MB ARM PDA MP3 触摸控制
1