首页 分享 BUPT数电实验 电子宠物孵化器

BUPT数电实验 电子宠物孵化器

来源:萌宠菠菠乐园 时间:2024-11-01 04:05

引脚设置(以上)

allcode顶层模块

module allcode(sw7,sw0,BTN0,clk,row,red,green,LD0,LD2,cat,bin);

input sw7,sw0,BTN0;

input clk;

output reg [7:0]row;

output [7:0] green,red;

output LD0,LD2;

output [7:0] cat; // 数码管的位选信号

output [6:0] bin; // 数码管的段选信号

reg startreg;

wire clkout;

wire temp;

reg rst;

reg [3:0] random = 4'b0011;

reg [4:0] pic = 5'b00000;

reg [4:0] freezecount=5'b00000;

reg [4:0] count=5'b00000;

initial begin

row=8'b11111110;

startreg = 0;

count = 0;

count = 0;

end

always @(posedge clk)begin

case (row)

8'b11111110:row<=8'b11111101;

8'b11111101:row<=8'b11111011;

8'b11111011:row<=8'b11110111;

8'b11110111:row<=8'b11101111;

8'b11101111:row<=8'b11011111;

8'b11011111:row<=8'b10111111;

8'b10111111:row<=8'b01111111;

8'b01111111:row<=8'b11111110;

endcase

end

always @(posedge clkout) begin

if (startreg) begin // 当孵化启动

if (temp) begin

if (pic < 5'b00101) begin // 当pic小于5时,每次增加1

pic <= pic + 1;

end else if (pic == 5'b00101) begin // 当pic等于5时,直接跳到12

pic <= 5'b01100;

end else if (pic > 5'b00101 && pic < 5'b01101) begin // 当pic大于5且小于13时,增加到13

pic <= 5'b01101;

end else if (pic == 5'b01101) begin // 当pic等于13时,随机选择14, 15, 16, 或 17

pic <= 5'b01110 + random[1:0];

end

// 注意: 如果pic大于等于14,保持不变

end else begin

if (freezecount == 5'b00011) begin

pic <= pic + 5'b00110;

end else begin

pic <= pic;

end

end

end else begin

pic <= 5'b00000; // 如果孵化没有启动,重置pic为0

end

end

// LFSR更新逻辑保持不变

always @(posedge clk) begin

if (startreg) begin

random <= {random[2:0], random[3] ^ random[2]}; // 线性反馈移位寄存器逻辑

end else begin

random <= 4'b0011; // 复位时重设为初始值

end

end

always@(posedge clk)begin

if(BTN0)

startreg<=1;

if(pic==5'b10001 || pic==5'b10000 || pic==5'b01111 || pic==5'b01110 ||pic==5'b00110||pic==5'b00111||pic==5'b01000||pic==5'b01001||pic==5'b01010||pic==5'b01011)

startreg<=0;

end

always@(posedge clk)begin

if(pic<=5'd00000)

rst<=1;

else

rst<=0;

end

//计时器

always@(posedge clkout)begin

if (startreg)begin

count<=count+1;

end

else begin

count<=count;

end

end

//冷冻计时器

always@(posedge clkout)begin

if(~temp)begin//温度不合适

if(startreg)begin//开始计时时

freezecount<=freezecount+1;//冷冻计时+1

end

else begin//没有开始计时时

freezecount<=0;//冷冻计时归零

end

end

else begin

freezecount<=0;//温度合适,冷冻计时归零

end

end

temp u1(.sw7(sw7),.sw0(sw0), .clk(clk), .temp(temp), .LD0(LD0), .LD2(LD2));

counter u3(.temp(temp), .clk(clk), .startreg(startreg), .clkout(clkout));

showpic u5(.clk(clk),.pic(pic), .sw7(sw7), .row(row), .red(red), .green(green));

numcnt u6(.sw7(sw7),.startreg(startreg),.clk(clk), .BTN0(BTN0), .rst(rst),.cat(cat),.bin(bin));

endmodule

 八位数码管显示模块

// 顶层模块,实现数字计数器和数码管显示的功能

module numcnt (

input sw7,

input startreg,

input clk, // 时钟信号

input BTN0, // 按钮信号

input rst, // 复位信号

output reg[7:0] cat, // 数码管的位选信号

output reg[6:0] bin // 数码管的段选信号

);

reg pause; // 暂停标志位

reg [3:0] cnt1; // 个位计数器

reg [3:0] cnt2; // 十位计数器

reg [9:0] counter; // 计数器

reg [2:0] select; // 位选控制信号

reg [3:0] number; // 数码管的数字

reg BTN0_d_1; // 按钮信号消抖前一状态

reg BTN0_d; // 消抖后的按钮信号

// 主时钟边沿触发的逻辑

always @(posedge clk) begin//时钟上升沿开始动作

if (rst)

begin//复位有效则

cnt1 <= 0;

cnt2 <= 0;

counter <= 0;

pause <= 0;//个位十位,总计数器,暂停都赋值为0

end else begin//复位无效

if (startreg) begin//BTN0消抖前为0且消抖后为1开始动作

pause <= 0; // 暂停/继续控制pause反

end

else begin

pause<=1;

end

if (pause)

begin

cnt1<=cnt1;

cnt2<=cnt2;

end

else

begin//暂停键没有按下

if (counter == 10'd999)

begin

counter <= 0;//计数器到100复位到0

if (cnt1 == 4'b1001) //检测个位数是否为9

begin

cnt1 <= 0;//是9的话将各位复为零,检测十位数是否为0,是0进一,不是0复位0

if (cnt2 == 0)

cnt2 <= cnt2 + 1;

else cnt2 <= 0;

end

else

begin

cnt1 <= cnt1 + 1;//个位不是9就进一

end

end

else

begin

counter <= counter + 1;//执行完以上总计数器加一

end

end

BTN0_d_1 <= BTN0_d;

end

end

// 段选和位选控制逻辑

always @(posedge clk) begin

if(sw7)begin

if (rst) begin

number <= 0; // 数码管数字复位

end else begin

if (select == 3'b000) begin

select <= 3'd1; // 切换到十位

number <= cnt2; // 数码管显示十位数字

end else begin

select = 3'd0; // 切换到个位

number <= cnt1; // 数码管显示个位数字

end//一直在个位和十位之间选择,当选择个位时,将位选信号赋值为十位,将个位的数值赋值给段选信号,十位时相反

end

end else begin

number <=4'b1010;

end

end

reg r_key_1;

reg r_key_2;

//消抖模块

always @(negedge clk) begin

r_key_2 <= r_key_1;

r_key_1 <= BTN0;

if (r_key_1 == ~r_key_2 ==clk ) begin

BTN0_d <= r_key_1 ; // 按钮信号消抖

end

end

// 数码管段选位选模块

// 位选控制逻辑

always @(posedge clk, posedge rst) begin

if (rst)

begin//复位信号有效

cat <= 8'b1111_1111; // 位选复位,一位都不选

end

else //复位信号无效,实现位选

begin

case(select)//位选8选1

3'b000: cat <= 8'b1111_1110;

3'b001: cat <= 8'b1111_1101;

3'b010: cat <= 8'b1111_1011;

3'b011: cat <= 8'b1111_0111;

3'b100: cat <= 8'b1110_1111;

3'b101: cat <= 8'b1101_1111;

3'b110: cat <= 8'b1011_1111;

3'b111: cat <= 8'b0111_1111;

endcase

// 根据数码管数字选择段选信号

case(number)

4'b0000: bin <= 7'b1111110;

4'b0001: bin <= 7'b0110000;

4'b0010: bin <= 7'b1101101;

4'b0011: bin <= 7'b1111001;

4'b0100: bin <= 7'b0110011;

4'b0101: bin <= 7'b1011011;

4'b0110: bin <= 7'b1011111;

4'b0111: bin <= 7'b1110000;

4'b1000: bin <= 7'b1111111;

4'b1001: bin <= 7'b1111011;

4'b1010: bin <= 7'b0000000;

default: bin <= 7'b0000000;

endcase

end

end

endmodule

// 按钮消抖模块

counter计数模块

module counter (temp, clk, startreg, clkout);

input temp;

input clk;

input startreg;

output reg clkout;

reg [10:0] timer; // 输出以便于观察

wire startreg;

initial begin

clkout = 1'b0;

timer = 0;

end

always @(posedge clk) begin

if (timer >= 10'd999) // 更快的重置条件//修改2,499改为了999

timer <= 0;

else

timer <= timer + 1;

end

always @(posedge clk) begin

if (timer >= 10'd999)//修改3,499改为了999

clkout <= ~clkout;

end

endmodule

showpic显示图像的模块

module showpic (clk,pic,sw7,row,red,green);

input clk;

input [4:0]pic;

input sw7;

input [7:0]row;

output reg [7:0] red;

output reg [7:0] green;

always@(*)

begin

if(sw7)begin

case(pic)

5'b00000://0

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1011:begin red<=8'b0001_1000;green<=8'b0001_1000;end

8'b1111_0111:begin red<=8'b0011_1100;green<=8'b0011_1100;end

8'b1110_1111:begin red<=8'b0011_1100;green<=8'b0011_1100;end

8'b1101_1111:begin red<=8'b0001_1000;green<=8'b0001_1000;end

8'b1011_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b0111_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

endcase

end

5'b00001://1

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1011:begin red<=8'b0001_1100;green<=8'b0001_1100;end

8'b1111_0111:begin red<=8'b0011_1110;green<=8'b0011_1110;end

8'b1110_1111:begin red<=8'b0011_1110;green<=8'b0011_1110;end

8'b1101_1111:begin red<=8'b0001_1100;green<=8'b0001_1100;end

8'b1011_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b0111_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

endcase

end

5'b00010://2

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1011:begin red<=8'b0011_1100;green<=8'b0011_1100;end

8'b1111_0111:begin red<=8'b0111_1110;green<=8'b0111_1110;end

8'b1110_1111:begin red<=8'b0111_1110;green<=8'b0111_1110;end

8'b1101_1111:begin red<=8'b0011_1100;green<=8'b0011_1100;end

8'b1011_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b0111_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

endcase

end

5'b00011://3

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0011_1100;green<=8'b0011_1100;end

8'b1111_1011:begin red<=8'b0111_1110;green<=8'b0111_1110;end

8'b1111_0111:begin red<=8'b0111_1110;green<=8'b0111_1110;end

8'b1110_1111:begin red<=8'b0111_1110;green<=8'b0111_1110;end

8'b1101_1111:begin red<=8'b0111_1110;green<=8'b0111_1110;end

8'b1011_1111:begin red<=8'b0011_1100;green<=8'b0011_1100;end

8'b0111_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

endcase

end

5'b00100://4

begin

case(row)

8'b1111_1110:begin red<=8'b0011_1100;green<=8'b0011_1100;end

8'b1111_1101:begin red<=8'b0111_1110;green<=8'b0111_1110;end

8'b1111_1011:begin red<=8'b1111_1111;green<=8'b1111_1111;end

8'b1111_0111:begin red<=8'b1111_1111;green<=8'b1111_1111;end

8'b1110_1111:begin red<=8'b1111_1111;green<=8'b1111_1111;end

8'b1101_1111:begin red<=8'b1111_1111;green<=8'b1111_1111;end

8'b1011_1111:begin red<=8'b0111_1110;green<=8'b0111_1110;end

8'b0111_1111:begin red<=8'b0011_1100;green<=8'b0011_1100;end

endcase

end

5'b00101://5

begin

case(row)

8'b1111_1110:begin red<=8'b1111_1111;green<=8'b1111_1111;end

8'b1111_1101:begin red<=8'b1111_1111;green<=8'b1111_1111;end

8'b1111_1011:begin red<=8'b1111_1111;green<=8'b1111_1111;end

8'b1111_0111:begin red<=8'b1111_1111;green<=8'b1111_1111;end

8'b1110_1111:begin red<=8'b1111_1111;green<=8'b1111_1111;end

8'b1101_1111:begin red<=8'b1111_1111;green<=8'b1111_1111;end

8'b1011_1111:begin red<=8'b1111_1111;green<=8'b1111_1111;end

8'b0111_1111:begin red<=8'b1111_1111;green<=8'b1111_1111;end

endcase

end

5'b00110://6

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1011:begin red<=8'b0000_0000;green<=8'b0001_1000;end

8'b1111_0111:begin red<=8'b0000_0000;green<=8'b0011_1100;end

8'b1110_1111:begin red<=8'b0000_0000;green<=8'b0011_1100;end

8'b1101_1111:begin red<=8'b0000_0000;green<=8'b0001_1000;end

8'b1011_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b0111_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

endcase

end

5'b00111://7

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1011:begin red<=8'b0000_0000;green<=8'b0001_1100;end

8'b1111_0111:begin red<=8'b0000_0000;green<=8'b0011_1110;end

8'b1110_1111:begin red<=8'b0000_0000;green<=8'b0011_1110;end

8'b1101_1111:begin red<=8'b0000_0000;green<=8'b0001_1100;end

8'b1011_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b0111_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

endcase

end

5'b01000://8

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1011:begin red<=8'b0000_0000;green<=8'b0011_1100;end

8'b1111_0111:begin red<=8'b0000_0000;green<=8'b0111_1110;end

8'b1110_1111:begin red<=8'b0000_0000;green<=8'b0111_1110;end

8'b1101_1111:begin red<=8'b0000_0000;green<=8'b0011_1100;end

8'b1011_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b0111_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

endcase

end

5'b01001://9

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0000_0000;green<=8'b0011_1100;end

8'b1111_1011:begin red<=8'b0000_0000;green<=8'b0111_1110;end

8'b1111_0111:begin red<=8'b0000_0000;green<=8'b0111_1110;end

8'b1110_1111:begin red<=8'b0000_0000;green<=8'b0111_1110;end

8'b1101_1111:begin red<=8'b0000_0000;green<=8'b0111_1110;end

8'b1011_1111:begin red<=8'b0000_0000;green<=8'b0011_1100;end

8'b0111_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

endcase

end

5'b01010://10

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0011_1100;end

8'b1111_1101:begin red<=8'b0000_0000;green<=8'b0111_1110;end

8'b1111_1011:begin red<=8'b0000_0000;green<=8'b1111_1111;end

8'b1111_0111:begin red<=8'b0000_0000;green<=8'b1111_1111;end

8'b1110_1111:begin red<=8'b0000_0000;green<=8'b1111_1111;end

8'b1101_1111:begin red<=8'b0000_0000;green<=8'b1111_1111;end

8'b1011_1111:begin red<=8'b0000_0000;green<=8'b0111_1110;end

8'b0111_1111:begin red<=8'b0000_0000;green<=8'b0011_1100;end

endcase

end

5'b01011://11

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b1111_1111;end

8'b1111_1101:begin red<=8'b0000_0000;green<=8'b1111_1111;end

8'b1111_1011:begin red<=8'b0000_0000;green<=8'b1111_1111;end

8'b1111_0111:begin red<=8'b0000_0000;green<=8'b1111_1111;end

8'b1110_1111:begin red<=8'b0000_0000;green<=8'b1111_1111;end

8'b1101_1111:begin red<=8'b0000_0000;green<=8'b1111_1111;end

8'b1011_1111:begin red<=8'b0000_0000;green<=8'b1111_1111;end

8'b0111_1111:begin red<=8'b0000_0000;green<=8'b1111_1111;end

endcase

end

5'b01100://12

begin

case(row)

8'b1111_1110:begin red<=8'b1100_0011;green<=8'b1100_0011;end

8'b1111_1101:begin red<=8'b1110_0011;green<=8'b1110_0011;end

8'b1111_1011:begin red<=8'b1111_0001;green<=8'b1111_0001;end

8'b1111_0111:begin red<=8'b1110_0011;green<=8'b1110_0011;end

8'b1110_1111:begin red<=8'b1100_0111;green<=8'b1100_0111;end

8'b1101_1111:begin red<=8'b1110_0111;green<=8'b1110_0111;end

8'b1011_1111:begin red<=8'b1111_0111;green<=8'b1111_0111;end

8'b0111_1111:begin red<=8'b1111_1011;green<=8'b1111_1011;end

endcase

end

5'b01101://13

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0000_0001;green<=8'b0000_0001;end

8'b1111_1011:begin red<=8'b1000_0001;green<=8'b1000_0001;end

8'b1111_0111:begin red<=8'b1100_0011;green<=8'b1100_0011;end

8'b1110_1111:begin red<=8'b1000_0011;green<=8'b1000_0011;end

8'b1101_1111:begin red<=8'b1100_0111;green<=8'b1100_0111;end

8'b1011_1111:begin red<=8'b1110_0111;green<=8'b1110_0111;end

8'b0111_1111:begin red<=8'b1111_0011;green<=8'b1111_0011;end

endcase

end

5'b01110://14

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0011_1000;green<=8'b0000_0000;end

8'b1111_1011:begin red<=8'b0100_0100;green<=8'b0000_0000;end

8'b1111_0111:begin red<=8'b0101_1010;green<=8'b0000_0000;end

8'b1110_1111:begin red<=8'b0100_1010;green<=8'b0000_0000;end

8'b1101_1111:begin red<=8'b0011_0010;green<=8'b0000_0000;end

8'b1011_1111:begin red<=8'b1100_0100;green<=8'b0000_0000;end

8'b0111_1111:begin red<=8'b0011_1000;green<=8'b0000_0000;end

endcase

end

//begin

//case(row)

//8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

//8'b1111_1101:begin red<=8'b0110_0110;green<=8'b0000_0000;end

//8'b1111_1011:begin red<=8'b1110_0111;green<=8'b0000_0000;end

//8'b1111_0111:begin red<=8'b1111_1111;green<=8'b0000_0000;end

//8'b1110_1111:begin red<=8'b1111_1111;green<=8'b0000_0000;end

//8'b1101_1111:begin red<=8'b0111_1110;green<=8'b0000_0000;end

//8'b1011_1111:begin red<=8'b0011_1100;green<=8'b0000_0000;end

//8'b0111_1111:begin red<=8'b0001_1000;green<=8'b0000_0000;end

//endcase

//end

5'b01111://15

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1011:begin red<=8'b0110_0000;green<=8'b0110_0000;end

8'b1111_0111:begin red<=8'b1111_1100;green<=8'b1111_1100;end

8'b1110_1111:begin red<=8'b0011_1111;green<=8'b0011_1111;end

8'b1101_1111:begin red<=8'b0011_1110;green<=8'b0011_1110;end

8'b1011_1111:begin red<=8'b0001_1100;green<=8'b0001_1100;end

8'b0111_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

endcase

end

5'b10000://16

begin

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1011:begin red<=8'b0000_0000;green<=8'b0001_1000;end

8'b1111_0111:begin red<=8'b0000_0000;green<=8'b0011_1100;end

8'b1110_1111:begin red<=8'b0000_0000;green<=8'b0111_1110;end

8'b1101_1111:begin red<=8'b0000_0000;green<=8'b0111_1110;end

8'b1011_1111:begin red<=8'b0000_0000;green<=8'b0010_0100;end

8'b0111_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

endcase

end

5'b10001://17

begin

case(row)

8'b1111_1110:begin red<=8'b1110_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0110_0000;green<=8'b0000_0000;end

8'b1111_1011:begin red<=8'b1110_0000;green<=8'b0000_0000;end

8'b1111_0111:begin red<=8'b0011_0000;green<=8'b0000_0000;end

8'b1110_1111:begin red<=8'b0011_0001;green<=8'b0000_0000;end

8'b1101_1111:begin red<=8'b0011_0011;green<=8'b0000_0000;end

8'b1011_1111:begin red<=8'b0011_1110;green<=8'b0000_0000;end

8'b0111_1111:begin red<=8'b0001_1100;green<=8'b0000_0000;end

endcase

end

endcase

end

else begin//空白

case(row)

8'b1111_1110:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1101:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_1011:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1111_0111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1110_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1101_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b1011_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

8'b0111_1111:begin red<=8'b0000_0000;green<=8'b0000_0000;end

endcase

end

end

endmodule

温度模块

module temp(sw7,sw0,clk,temp,LD0,LD2);

input sw7;

input sw0;

input clk;

output reg temp;

output reg LD0;

output reg LD2;

always@(posedge clk)begin

if(sw7)begin//控制显示

if(sw0)begin

temp<=1;

LD0<=0;

LD2<=1;

end

else begin

temp<=0;

LD0<=1;

LD2<=0;

end

end

else begin

LD0<=0;

LD2<=0;

end

end

endmodule

相关知识

Grumbach孵化器
【电商信息图】宠物电商:悄然兴起的新宠儿 网经社 电子商务研究中心 电商门户 互联网+智库
从宠物社区到宠物上门,这次“好狗狗”要做狗狗网红孵化器
在家里制作一个鸟蛋孵化器并完成蛋的孵化
搭建线上线下赋能矩阵,联合利华U创孵化器携天猫与新国货“共舞”
【电子宠物表】
动物电子体温计厂家
2021年创业孵化器行业市场调研前景分析.pdf
宠物爬虫大棚养殖育苗专用优质电子数显湿度计深圳生产厂家 直销
如何用ARDUINO制作一个鸟蛋孵化器

网址: BUPT数电实验 电子宠物孵化器 https://www.mcbbbk.com/newsview509972.html

所属分类:萌宠日常
上一篇: 《柯学宠物模拟器》卟卟芭咕
下一篇: 宠物对话翻译器2024官方下载

推荐分享