数电课程设计--简易两位数计数器(5)

2019-08-30 13:47

西北工业大学 电子信息学院 08021103班

再接收到下一个数据后清零

reg ps2_state_r; //键盘当前状态,ps2_state_r=1表示有键被按下

reg[7:0] ps2_asci;

always @ (posedge clk2 or negedge rst_n) begin //接收数据的相应处理,这里只对1byte的键值进行处理 if(!rst_n) begin key_f0 <= 1'b0; ps2_state_r <= 1'b0; end

else if(num==4'd10) begin//刚传送完一个字节数据 if(temp_data == 8'hf0) key_f0 <= 1'b1; else begin

if(!key_f0) begin //说明有键按下 ps2_state_r <= 1'b1;

ps2_byte_r <= temp_data; //锁存当前键值

end else begin

ps2_state_r <= 1'b0; key_f0 <= 1'b0;

- 21 -

西北工业大学 电子信息学院 08021103班

end end end end

//接收数据的相应ASCII码 reg[3:0] data;

always @ (ps2_byte_r) begin

case (ps2_byte_r) //键值转换为ASCII码 8'h70:

begin

ps2_asci

8'b1100_0000;data<=4'b0000;end //0 8'h69:

begin

ps2_asci

8'b1111_1001;data<=4'b0001;end //1 8'h72:

begin

ps2_asci

8'b1010_0100;data<=4'b0010;end //2 8'h7A:

begin

ps2_asci

8'b1011_0000;data<=4'b0011;end //3 8'h6B:

begin

ps2_asci

8'b1001_1001;data<=4'b0100;end //4 8'h73:

begin

ps2_asci

8'b1001_0010;data<=4'b0101;end //5

- 22 -

<=

<=

<=

<=

<=

<=

西北工业大学 电子信息学院 08021103班

8'h74: begin ps2_asci 8'b1000_0010;data<=4'b0110;end //6 8'h6C:

begin

ps2_asci

8'b1111_1000;data<=4'b0111;end //7 8'h75:

begin

ps2_asci

8'b1000_0000;data<=4'b1000;end //8 8'h7D:

begin

ps2_asci

8'b1001_0000;data<=4'b1001;end //9 8'h79: begin data<=4'b1010;end//''+'' 8'h7B: begin data<=4'b1011;end//''-'' 8'h7C: begin data<=4'b1100;end//''*'' 8'h4A: begin data<=4'b1101;end//''/'' 8'h5A: begin data<=4'b1110;end//''='' /*

//数字小键盘的键码 8'h70 //0 8'h69 //1 8'h72 //2 8'h7A //3 8'h6B //4 8'h73 //5 8'h74 //6

- 23 -

<=

<=

<=

<=

西北工业大学 电子信息学院 08021103班

8'h6C //7 8'h75 //8 8'h7D //9 8'h71 //小数点 8'h5A //回车 8'h79 //加 8'h7B //减 8'h7C //乘 8'h4A //除 8'h77 //numlock键 8'h66 //删除键 */

default: ; endcase end

assign ps2_byte = ps2_asci; assign ps2_state = ps2_state_r; reg[5:0] i; reg[31:0] rsm_db;

- 24 -

西北工业大学 电子信息学院 08021103班

always@(negedge ps2_state or negedge rst_n )begin if(!rst_n) begin

rsm_db<=32'b11111111_11111111_11111111_11111111; end else begin case(i)

0:begin rsm_db[31:24]<=ps2_byte;i<=i+1;end

1:begin rsm_db[23:16]<=ps2_byte;i<=i+1;end

2:begin i<=i+1; end

- 25 -


数电课程设计--简易两位数计数器(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:线路铁塔基础作业指导书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: