




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、EDA技術(shù)基礎(chǔ)基于矩陣鍵盤的加法器并用數(shù)碼管顯示綜合實(shí)驗(yàn)2009112020202王婷電子信息科學(xué)與技術(shù)物理與電子科學(xué)學(xué)院0902班2011622電工電子中心2009年5月繪制基于矩陣鍵盤的加法器并用數(shù)碼管顯示一任務(wù)解析用Verilog語言編寫矩陣鍵盤驅(qū)動(dòng)程序,實(shí)現(xiàn)“09,+,=”輸入,數(shù)碼管顯示“加數(shù)”,按“+”鍵后再顯示“被加數(shù)”,按“=”鍵后顯示結(jié)果“和”。二實(shí)驗(yàn)方案鍵盤的識(shí)別有兩種編程方法:方法一:module keyboard(clk,clr,keyv,C,L,k1);/輸入行線3:0Linput clk,clr; /輸出掃描列線3:0C;input 3:0L; /輸出鍵值3:0ke
2、yv。output3:0C;output k1;output 3:0keyv;reg 1:0scan;reg 3:0C;reg k1;always (posedge clk or negedge clr)begin/clk大概1000HZ if(!clr) scan=0; else begin scan=scan+2'h1; case(scan) 2'H0:C=4'b1110;/列 2'H1:C=4'b1101; 2'H2:C=4'b1011; 2'H3:C=4'b0111; endcase endendreg 3:0ke
3、yv;always (negedge clk or negedge clr)begin if(!clr) begin keyv=0;k1=0;end else begin case(L) 4'HE:begin keyv=2'H0,scan;k1=1;end 4'HD:begin keyv=2'H1,scan;k1=1;end 4'HB:begin keyv=2'H2,scan;k1=1;end 4'H7:begin keyv=2'H3,scan;k1=1;end default:k1=0;endcase end endendmod
4、ule840951+62=73方法二:module key_recognize(clk,reset,row,col,key_value,key_flag);/50MHz clk,復(fù)位,行,列,鍵值input clk,reset; input 3:0row;output 3:0col;output 3:0key_value;output key_flag;reg 3:0col;reg 3:0key_value;reg 5:0count;/delay_20msreg 2:0state;/狀態(tài)標(biāo)志reg key_flag;/按鍵標(biāo)志位reg clk_500khz;/500KHZ時(shí)鐘信號(hào)reg 3:0
5、col_reg;/寄存掃描列值reg 3:0row_reg;/寄存掃描行值always (posedge clk or negedge reset) if(!reset) begin clk_500khz<=0; count<=0; end else beginif(count>=50) begin clk_500khz<=clk_500khz;count<=0;endelse count<=count+1; endalways (posedge clk_500khz or negedge reset)if(!reset) begin col<=4
6、39;b0000;state<=0;endelse begin case (state)0:begin col3:0<=4'b0000;key_flag<=1'b0;if(row3:0!=4'b1111) begin state<=1;col3:0<=4'b1110;end /有鍵按下,掃描第一行else state<=0; end1:beginif(row3:0!=4'b1111) begin state<=5;end/判斷是否是第一行else begin state<=2;col3:0<=4
7、9;b1101;end/掃描第二行 end 2:beginif(row3:0!=4'b1111) begin state<=5;end/判斷是否是第二行else begin state<=3;col3:0<=4'b1011;end/掃描第三行 end3:beginif(row3:0!=4'b1111) begin state<=5;end/判斷是否是第三一行else begin state<=4;col3:0<=4'b0111;end/掃描第四行 end4:beginif(row3:0!=4'b1111) begin
8、state<=5;end/判斷是否掃描第一行else state<=0; end5:beginif(row3:0!=4'b1111) begincol_reg<=col;row_reg<=row;/保存掃描列、行值state<=5;key_flag<=1'b1;/有鍵按下 endelse begin state<=0;end end endcase endalways (clk_500khz or col_reg or row_reg) begin if(key_flag=1'b1)begincase(col_reg,row_r
9、eg)8'b1110_1110:key_value<=0;8'b1110_1101:key_value<=1;8'b1110_1011:key_value<=2;8'b1110_0111:key_value<=3;8'b1101_1110:key_value<=4;8'b1101_1101:key_value<=5;8'b1101_1011:key_value<=6;8'b1101_0111:key_value<=7;8'b1011_1110:key_value<=8;
10、8'b1011_1101:key_value<=9;8'b1011_1011:key_value<=10;8'b1011_0111:key_value<=11;8'b0111_1110:key_value<=12;8'b0111_1101:key_value<=13;8'b0111_1011:key_value<=14;8'b0111_0111:key_value<=15;endcaseendendendmodule32107654=+98三重難點(diǎn)解析原理框圖:從上圖及以上兩種按鍵識(shí)別程序可以看出
11、,必須設(shè)置一個(gè)按鍵標(biāo)志位以獲取有效按鍵。各模塊功能分析:(1)自由分頻電路:module div_clk(clki,f,clko);input clki;input 25:0f;output clko;reg 25:0cnt;reg clko;always (posedge clki) begin if(cnt >= 26'D25_000_000) begin cnt=0; clko=!clko; end else cnt=cnt+f;endendmodule在本實(shí)驗(yàn)中,各模塊所需頻率各不相同且有一定要求,故采用自由分頻方便又易懂?!痉诸l原理】時(shí)鐘為(例如50M),累加器為N b
12、its,在時(shí)鐘驅(qū)動(dòng)下,累加器逐次和D不斷累加,累加器溢出周期變換得到累加器溢出的頻率當(dāng)時(shí),實(shí)現(xiàn)整數(shù)倍分頻。當(dāng)時(shí),實(shí)現(xiàn)0.1倍分頻。(2)通用數(shù)碼管驅(qū)動(dòng)程序:module seg8_disp(clk,d0,d1,d2,d3,d4,d5,d6,d7,dp,a,b,c,d,e,f,g,sel);input clk;input 3:0d0,d1,d2,d3,d4,d5,d6,d7;output dp,a,b,c,d,e,f,g;output 2:0sel;reg 2:0scan;reg 3:0in;reg 7:0x;always (posedge clk)begin scan=scan+3'H
13、1; case(scan) 3'H0: in=d0; 3'H1: in=d1; 3'H2: in=d2; 3'H3: in=d3; 3'H4: in=d4; 3'H5: in=d5; 3'H6: in=d6; 3'H7: in=d7; endcaseendassign sel=scan;assign dp,a,b,c,d,e,f,g = (in=4'H0)? 8'b01111110 : (in=4'H1)? 8'b00110000 : (in=4'H2)? 8'b01101101 :
14、 (in=4'H3)? 8'b01111001 : (in=4'H4)? 8'b00110011 : (in=4'H5)? 8'b01011011 : (in=4'H6)? 8'b01011111 : (in=4'H7)? 8'b01110000 : (in=4'H8)? 8'b01111111 : (in=4'H9)? 8'b01111011 : (in=4'HA)? 8'b00110001 : (in=4'HB)? 8'b00001001 : 8&
15、#39;b10000000;endmodule(3)狀態(tài)機(jī)控制的循環(huán):module state(clr,clk,key_flag,keyv,AA,BB,CC,DD,Sum);input clr,clk,key_flag;input 3:0keyv;output 3:0AA,BB,CC,DD,Sum;reg 2:0s;reg 3:0AA,BB,CC,DD,Sum;always (posedge clk or negedge clr) beginif(!clr)begin AA=4'HC;BB=4'HC;Sum=0;s=0;endelse begin case (s) 3'
16、H0 : begin AA=4'HC;BB=4'HC;CC=4'HC;DD=4'HC;s=1;end 3'H1 : begin if(key_flag) begin BB=4'HC;CC=4'HC;DD=4'HC;Sum=4'HC;AA=keyv;s=2;end end 3'H2 : begin if(key_flag)&&(keyv=4'HA) s=3; end 3'H3 : begin if(key_flag)&&(keyv!=4'HA) s=4;BB=4
17、'HA ;end 3'H4 : begin if(key_flag) begin CC=keyv;s=5;end end 3'H5 : begin if(key_flag)&&(keyv=4'HB) begin DD=4'HB;Sum=AA+CC;s=6; end end 3'H6 : begin if(key_flag)&&(keyv!=4'HB) s=1; end default : begin s=1; endendcase endendendmodule(4)頂層調(diào)用模塊:module add_to
18、p(clk,clr,row,col,a,b,c,d,e,f,g,sel);input clk,clr;input 3:0row;output 3:0col;output 2:0sel;output a,b,c,d,e,f,g;wire 2:0s;reg 3:0qq,A0,B0,C0,D0,Sum;reg 3:0q;wire cko0,cko1;wire key_flag;wire 2:0sel;div_clk clkA(.clki(clk),.f(26'D10000),.clko(cko0);key_recognize recognize(.clk(cko0),.reset(clr),
19、.row(row),.col(col),.key_value(q),.key_flag(key_flag);/或者用 keyboard recognize(.clk(cko0),.clr(clr),.L(row),.keyv(q),.C(col),.k1(key_flag);div_clk clkB(.clki(clk),.f(26'D2000),.clko(cko1);state cycle(.clr(clr),.clk(cko1),.key_flag(key_flag),.keyv(q),.AA(A0),.BB(B0),.CC(C0),.DD(D0),.Sum(Sum);div_clk clkC(.clki(clk),.f(26'D300),.clko(cko2);seg8_disp display(.clk(cko2),.sel(sel),.d0(Sum),.d1(D0),.d2(C0),.d3(B0),.d4(A0),.d5(12),.d6(12),.d7(12),.a(a),.b(b),.c(c),.d(d),.e(e),.f(f),.g(g);endmodule四硬件資源及引腳
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 試訓(xùn)隊(duì)員合同協(xié)議書
- 2025年藥物檢測(cè)設(shè)備項(xiàng)目發(fā)展計(jì)劃
- 網(wǎng)紅美食區(qū)域代理加盟合同及特色配料研發(fā)供應(yīng)協(xié)議
- 網(wǎng)上商店經(jīng)營(yíng)風(fēng)險(xiǎn)管理與責(zé)任協(xié)議
- 土地承包經(jīng)營(yíng)權(quán)流轉(zhuǎn)與農(nóng)業(yè)循環(huán)經(jīng)濟(jì)項(xiàng)目合作協(xié)議
- 醫(yī)用麻醉設(shè)備全面檢修與保養(yǎng)合同
- 快遞末端網(wǎng)點(diǎn)承包經(jīng)營(yíng)與快遞成本控制協(xié)議
- 跨境網(wǎng)絡(luò)游戲版號(hào)申請(qǐng)代理服務(wù)合同
- 農(nóng)村留守兒童勞動(dòng)教育扶持協(xié)議
- 抖音平臺(tái)短視頻內(nèi)容創(chuàng)作者收益分配與權(quán)益保障協(xié)議
- 微生物實(shí)驗(yàn)室病原微生物評(píng)估報(bào)告
- 陜旅版五年級(jí)英語上冊(cè)句型詞匯知識(shí)點(diǎn)總結(jié)
- 漢字構(gòu)字的基本原理和識(shí)字教學(xué)模式分析
- RouterOS介紹
- 綜采工作面液壓支架壓死救活技術(shù)研究
- 十字軸鍛造成型工藝及模具設(shè)計(jì)畢業(yè)論文
- 主體結(jié)構(gòu)監(jiān)理實(shí)施細(xì)則范本
- 控制性詳細(xì)規(guī)劃 - 寧波市規(guī)劃局
- 保潔員工考勤表
- JGJ8-2016建筑變形測(cè)量規(guī)范
- 《MSDS培訓(xùn)資料》PPT課件.ppt
評(píng)論
0/150
提交評(píng)論