进阶项目(12)PS2键盘驱动程序设计讲解 |
您所在的位置:网站首页 › ps2接口需要驱动吗 › 进阶项目(12)PS2键盘驱动程序设计讲解 |
/**************************************************** * Engineer : 梦翼师兄 * QQ : 761664056 * The module function: 测试ps2_scan模块 *****************************************************/ 000 `timescale 1ns/1ps //定义时间单位和精度 001 002 module ps2_scan_tb; 003 //系统输入 004 reg clk;//系统输入时钟 005 reg rst_n;//系统复位 006 reg ps2_clk;//ps2的时钟 007 reg ps2_data_in;//ps2的数据 008 //系统输出 009 wire [7:0] ps2_data_out;//按键的通、断码 010 wire valid;//通、断码有效信号 011 012 initial begin 013 clk = 1; 014 rst_n = 0; 015 ps2_clk = 1; 016 ps2_data_in = 1; 017 #200.1 018 rst_n = 1; 019 //数字“1”的通码 020 ps2_data_in = 0;//起始位“0” 021 #60 022 ps2_clk = 0; 023 #120 024 ps2_clk = 1; 025 #60 026 ps2_data_in = 1;//“1” 027 #60 028 ps2_clk = 0; 029 #120 030 ps2_clk = 1; 031 #60 032 ps2_data_in = 0;//“0” 033 #60 034 ps2_clk = 0; 035 #120 036 ps2_clk = 1; 037 #60 038 ps2_data_in = 0;//“0” 039 #60 040 ps2_clk = 0; 041 #120 042 ps2_clk = 1; 043 #60 044 ps2_data_in = 1;//“1” 045 #60 046 ps2_clk = 0; 047 #120 048 ps2_clk = 1; 049 #60 050 ps2_data_in = 0;//“0” 051 #60 052 ps2_clk = 0; 053 #120 054 ps2_clk = 1; 055 #60 056 ps2_data_in = 1;//“1” 057 #60 058 ps2_clk = 0; 059 #120 060 ps2_clk = 1; 061 #60 062 ps2_data_in = 1;//“1” 063 #60 064 ps2_clk = 0; 065 #120 066 ps2_clk = 1; 067 #60 068 ps2_data_in = 0;//“0” 069 #60 070 ps2_clk = 0; 071 #120 072 ps2_clk = 1; 073 #60 074 ps2_data_in = 1;//奇偶校验位“1” 075 #60 076 ps2_clk = 0; 077 #120 078 ps2_clk = 1; 079 #60 080 ps2_data_in = 1;//停止位“1” 081 #60 082 ps2_clk = 0; 083 #120 084 ps2_clk = 1; 085 #2000 086 //断码中“f0” 087 ps2_data_in = 0;//起始位“0” 088 #60 089 ps2_clk = 0; 090 #120 091 ps2_clk = 1; 092 #60 093 ps2_data_in = 0;//“0” 094 #60 095 ps2_clk = 0; 096 #120 097 ps2_clk = 1; 098 #60 099 ps2_data_in = 0;//“0” 100 #60 101 ps2_clk = 0; 102 #120 103 ps2_clk = 1; 104 #60 105 ps2_data_in = 0;//“0” 106 #60 107 ps2_clk = 0; 108 #120 109 ps2_clk = 1; 110 #60 111 ps2_data_in = 0;//“0” 112 #60 113 ps2_clk = 0; 114 #120 115 ps2_clk = 1; 116 #60 117 ps2_data_in = 1;//“1” 118 #60 119 ps2_clk = 0; 120 #120 121 ps2_clk = 1; 122 #60 123 ps2_data_in = 1;//“1” 124 #60 125 ps2_clk = 0; 126 #120 127 ps2_clk = 1; 128 #60 129 ps2_data_in = 1;//“1” 130 #60 131 ps2_clk = 0; 132 #120 133 ps2_clk = 1; 134 #60 135 ps2_data_in = 1;//“1” 136 #60 137 ps2_clk = 0; 138 #120 139 ps2_clk = 1; 140 #60 141 ps2_data_in = 1;//奇偶校验位“1” 142 #60 143 ps2_clk = 0; 144 #120 145 ps2_clk = 1; 146 #60 147 ps2_data_in = 1;//停止位“1” 148 #60 149 ps2_clk = 0; 150 #120 151 ps2_clk = 1; 152 #2000 153 //数字“1”的通码 154 ps2_data_in = 0;//起始位“0” 155 #60 156 ps2_clk = 0; 157 #120 158 ps2_clk = 1; 159 #60 160 ps2_data_in = 1;//“1” 161 #60 162 ps2_clk = 0; 163 #120 164 ps2_clk = 1; 165 #60 166 ps2_data_in = 0;//“0” 167 #60 168 ps2_clk = 0; 169 #120 170 ps2_clk = 1; 171 #60 172 ps2_data_in = 0;//“0” 173 #60 174 ps2_clk = 0; 175 #120 176 ps2_clk = 1; 177 #60 178 ps2_data_in = 1;//“1” 179 #60 180 ps2_clk = 0; 181 #120 182 ps2_clk = 1; 183 #60 184 ps2_data_in = 0;//“0” 185 #60 186 ps2_clk = 0; 187 #120 188 ps2_clk = 1; 189 #60 190 ps2_data_in = 1;//“1” 191 #60 192 ps2_clk = 0; 193 #120 194 ps2_clk = 1; 195 #60 196 ps2_data_in = 1;//“1” 197 #60 198 ps2_clk = 0; 199 #120 200 ps2_clk = 1; 201 #60 202 ps2_data_in = 0;//“0” 203 #60 204 ps2_clk = 0; 205 #120 206 ps2_clk = 1; 207 #60 208 ps2_data_in = 1;//奇偶校验位“1” 209 #60 210 ps2_clk = 0; 211 #120 212 ps2_clk = 1; 213 #60 214 ps2_data_in = 1;//停止位“1” 215 #60 216 ps2_clk = 0; 217 #120 218 ps2_clk = 1; 219 end 220 221 always # 10 clk = ~clk;//50M的时钟 222 223 ps2_scan ps2_scan ( 224 .clk(clk), //系统输入时钟 225 .rst_n(rst_n),//系统复位 226 .ps2_data_in(ps2_data_in),//ps2的数据 227 .ps2_data_out(ps2_data_out),//按键的通、断码 228 .ps2_clk(ps2_clk),//ps2的时钟 229 .valid(valid)//通、断码有效信号 230 ); 231 232 endmodule |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |