基于verilog的fpga的电子密码锁的设计内容摘要:
T_R2。 reg clk2。 reg [7:0] passed。 reg [7:0] alarmed。 /*输入与输出的声明部分,其中, clk0 为输入的时钟信号, resetb 为密码舒服的输入信号,key 为输入命令, 需注意的时, key 并不是总在表示密码,也表示密码的间隔,如当输入 4 位密码后需要一个确认“ enter”信号, 当密码输入错误时,需要取消“ cancel”信号,这些信号之间在设计中通过有限状态转换机实现。 */ parameter PASSWORD=1639。 b0001000100010001。 //盛放密码的参数 reg [15:0] password。 //输入数值盛放寄存器 //输入的数字编码 always @( posedge clk1 ) begin //检测线路的下降沿 RXBuf1 = one1。 one = ~(RXBuf1 amp。 ( ~one1 ))。 // RXFall1=RXFall。 end //消除多重按键 always @( posedge clk1 ) begin //检测线路的下降沿 RXBuf0 = zero1。 zero = ~(RXBuf0 amp。 ( ~zero1 ))。 // RXFall1=RXFall。 end //消除多重按键 always @( posedge clk1 ) begin //检测线路的下降沿 RXBuf2 = two1。 two = ~(RXBuf2 amp。 ( ~two1 ))。 // RXFall1=RXFall。 end //消除多重按 always @( posedge clk1 ) begin //检测线路的下降沿 RXBuf3 = three1。 three = ~(RXBuf3 amp。 ( ~three1 ))。 // RXFall1=RXFall。 end //消除多重按键 always @( posedge clk1 ) begin //检测线路的下降沿 RXBuf4 = four1。 four = ~(RXBuf4 amp。 ( ~four1 ))。 // RXFall1=RXFall。 end //消除多重按键 reg [2:0]main_state。 //主状态 reg [2:0]next_state。 //下一个状态 //主有限状态转换机的三个状态: waits、 pass、 alarm parameter waits=339。 b001, pass=339。 b010, alarm=339。 b100。 reg [2:0]sub_state。 reg [2:0]next_sub_state。 //主有限状态转换机的三个状态: first、 second、 third、 fourth、 finish。 parameter first=339。 b000, second=339。 b001, third=339。 b010, fourth=339。 b011, finish=339。 b100。 //通过计时寄存器 reg [7:0]pass_count。 //警报计时寄存器 reg [10:0] alarm_count。 //尝试次数寄存器 reg [1:0]try_count。 //输入状态寄存器: error 和 correct reg error。 reg correct。 //以上为中间状态的一些寄存器和一些所用到的参数 //主机状态机部分 always @(posedge clk0) begin CNT_R2 = CNT_R2 + 139。 b1。 if(CNT_R2 4000000) begin clk1 = 1。 end else begin clk1 = 0。 end end always@(main_state or correct or error) begin case(main_state) waits: if(correct==1) //由 waits 转换到 pass 的条件 next_state=pass。 else if(error==1amp。 amp。 try_count==1) next_state=alarm。 //由 waits 转换到 alarm 的条件 else next_state=waits。 pass: if(pass_count[7]==1)//由 pass 转换到 waits 的条件 next_state=waits。 else next_state=pass。 alarm: if(alarm_count[10]==1)// 由 alarm 转换到 waits 的条件 next_state=waits。 else next_state=alarm。 waits next_state=waits。 endcase end //状态转换 always@(posedge clk1 or negedge resetb) begin if(!resetb) main_state=waits。 else main_state=next_state。 end //输出控制部分 always@(posedge clk1 or negedge resetb) begin if(!reset。基于verilog的fpga的电子密码锁的设计
相关推荐
tdxPl:buffer std_logic_vector(3 downto 0)。 倒计时显示东西方向人行道所亮灯剩余时间。 tnbh:BUFFER STD_LOGIC_VECTOR(6 DOWNTO 4)。 tnbl:BUFFER STD_LOGIC_VECTOR(3 downto 0)。 倒计时显示南北方向所亮灯剩余时间。 tnbph:buffer std_logic_vector(8
124=d=254。 when 125=d=254。 when 126=d=255。 when 127=d=255。 when others=null。 end case。 end if。 其中,时钟信号 clk,复位信号 clr, 8位二进制输出信号端口 d。 程序设计流程图如下图所示: 输 出 赋 值 0NYNY计 数 器 是否 为 1 2 7。 复 位 信 号是 否 为 0。 查 表 输
then coin=0011。 next_state=state3。 elsif datain=10 then coin=0100。 next_state=state4。 elsif datain=00 then act10=39。 139。 act5=39。 039。 coin=0000。 next_state=idle。 end if。 when state3= if datain=01
Click() If = True Then = False End If = 9600,N,8,1 = 1 = True = 0 End Sub Private Sub Command2_Click() Call CommPortClose intCommFlag = 0 End Sub Call FileSendManager(0) intCommFlag = 1 End If
算接触强度时运转初期(未经跑合)的齿向载荷分布系数,由齿向载荷分布图可查得。 参照濮良贵《机械设计》表 104 HWK —— 计算接触强度时跑合影响系数 ; 0FK —— 计算弯曲强度时运转初期(未经跑合)的齿向载荷分布系数,由齿向载荷分布图可查得 ; KFW—— 计算弯曲强度时的跑合影响系数; KHe—— 与均载系数有关的系数; KFe—— 与均载荷系数有关的系数。 则可得 KHβ 、