freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于fpga的鍵盤輸入及顯示電路(參考版)

2024-11-05 15:21本頁面
  

【正文】 致謝 本 畢業(yè)設(shè)計(jì) 論文是在 吳正平老師 的悉心指導(dǎo)下完成的。大學(xué)生即將面臨的是就業(yè)問題,文憑只是企業(yè)招聘員工的一個(gè)方面,更重要的是個(gè)人的實(shí)踐能力。我感受到了大學(xué)里老師對(duì)我們的用心良苦。 通過本次畢業(yè)設(shè)計(jì),我學(xué)會(huì)了不少東西,從大的方面來講我學(xué)會(huì)了撰寫學(xué)術(shù)論文的方法,同時(shí)我也深深的體會(huì)到我們?cè)诖髮W(xué)里面學(xué)過的每一門 知識(shí)都有實(shí)在的用途。所設(shè)計(jì)系統(tǒng)電路 該 硬件電路連接簡單, 軟件程序簡潔, 對(duì)液晶的控制簡單 、 穩(wěn)定,且可改動(dòng)性靈活 等優(yōu)點(diǎn)。數(shù)據(jù)傳輸?shù)臅r(shí)序圖如 圖 所示: 圖 主機(jī)到 PS/2 設(shè)備通信的數(shù)據(jù)傳輸時(shí)序圖 主機(jī)到 PS/2 設(shè)備發(fā)送過程如下: ① 延遲 15ms; ② 把數(shù)據(jù)線拉低; ③ 延遲 5ms; ④ 把時(shí)鐘線拉低; ⑤ 延遲 40ms; ⑥ 釋放時(shí)鐘線; ⑦ 延遲 5ms; ⑧ 釋放數(shù)據(jù)線; ⑨開始傳道數(shù)據(jù)、檢驗(yàn)位、停止位; 六、全文總結(jié) 本設(shè)計(jì)使用 ALTERA 公司的 Cyclone 系列 FPGA 芯片 EP1C6Q240C8N 完成了對(duì) PS/2 鍵盤接口電路和 1602 液晶顯示器的控制。主機(jī)僅能在時(shí)鐘為低電平時(shí)改變傳輸?shù)臄?shù)據(jù)值,數(shù)據(jù)則在時(shí)鐘脈沖的上升沿被鎖存。 在第②步完成后, PS/2 設(shè)備在不超過 10ms 的間隔內(nèi)檢查這個(gè)狀態(tài)(時(shí)鐘線是否已經(jīng)釋放)。 PS/2 設(shè)備發(fā)送數(shù)據(jù)過程如下: ① 等待 Clock 線變?yōu)楦唠娖剑? ② 延遲 50ms; ③ Clock 是否為高電平(否,跳到第 1 步)? ④ Data 線是否為高電平(否,放棄發(fā)送)? ⑤ 延遲 20ms; ⑥ 輸出超始位( 1 位); ⑦ 輸出 8 個(gè)數(shù)據(jù)位,并測(cè)試時(shí)鐘確認(rèn)它是 否被主機(jī)拉低(是,說明主機(jī)要放棄本次傳送); ⑧ 輸出校驗(yàn)位( 1 位); ⑨ 輸出停止位( 1 位); ⑩ 延遲 30ms。當(dāng) PS/2 設(shè)備等待發(fā)送數(shù)據(jù)時(shí)它首先檢查時(shí)鐘以確認(rèn)該數(shù)據(jù)是否為高電平,如果不是,那么主機(jī)抑制了能信,此時(shí) PS/2 設(shè)備進(jìn)入等待或緩沖(將待 發(fā)送的數(shù)據(jù)放入緩沖區(qū)),等待時(shí)鐘變?yōu)楦唠娖?。?shù)據(jù)傳輸?shù)臅r(shí)序如圖 所示: 圖 PS/2 設(shè)備到主機(jī)通信的數(shù)據(jù)傳輸時(shí)序圖 如果總線被禁止,那么 PS/2 設(shè)備在開始傳送數(shù)據(jù)前會(huì)一直等到總線開放為止。 程序中 狀態(tài)機(jī)轉(zhuǎn)化過程 如 圖 所示 : 圖 鍵盤接口電路狀態(tài)轉(zhuǎn)化圖 具體 通信過程如下: ( 1) PS/2 設(shè)備到主機(jī)的通信過程 此時(shí) PS/2 設(shè)備為數(shù)據(jù)發(fā)送方,而主機(jī)為數(shù)據(jù)接收方,主機(jī)在接收數(shù)據(jù)時(shí)應(yīng)保持空閑工作狀態(tài)。 RX_ASCII[7..0]:數(shù)據(jù)輸出信號(hào),鍵盤輸入字符的相應(yīng) ASCII 碼。 PS2_CLK:時(shí)鐘輸出信號(hào)。 RE_READ:鍵盤讀控制信號(hào),從鍵盤接口電路接收到讀控制信號(hào) TX_DATA[7..0]:數(shù)據(jù)輸入信號(hào),從鍵盤輸入的字符的相應(yīng) ASCII 碼。 圖 為鍵盤接口模塊電路元件符號(hào)。 END DRIVE。 END IF。 WHEN OTHERS=NULL。 DATA=DATA_INBUF。LCD_RW=39。 WHEN WRITERAM= LCD_RS=39。COUNT=0。 STATE=WRITERAM。 DATA(6 DOWNTO 0)=CONV_STD_LOGIC_VECTOR(COUNT,7)。DATA(7)=39。LCD_RW=39。 ELSIF DATA_INBUF/=00001000 AND COUNT64 AND COUNT80 THEN LCD_RS=39。COUNT=65。139。039。039。 STATE=WRITERAM。 COUNT=COUNT+1。 DATA(7)=39。LCD_RW=39。 WHEN SETDDRAM= IF DATA_INBUF/=00001000 AND COUNT16 THEN LCD_RS=39。DATA=01000000。LCD_RS=39。 WHEN SETCGRAM= LCD_RW=39。 ELSE STATE=SETMODE。 FLAG_CLEAR=39。039。DATA=00111000。LCD_RW=39。 WHEN SETFUNCTION= LCD_RS=39。DATA=00001000。LCD_RW=39。 WHEN CLOSEDISPLAY= LCD_RS=39。DATA=00001100。LCD_RW=39。 WHEN SWITCHMODE=LCD_RS=39。DATA=00000010。LCD_RW=39。 WHEN RETURNCURSOR= LCD_RS=39。DATA=00000110。LCD_RW=39。 WHEN SETMODE= LCD_RS=39。DATA=00000001。LCD_RW=39。 WHEN CLEAR= LCD_RS=39。DATA=00010000。LCD_RW=39。 WHEN SHIFT= LCD_RS=39。 ELSE STATE=IDLE。 FLAG=39。039。139。 ELSIF CLK_INT39。 DATA_INBUF=DATA_IN。 THEN FLAG=39。 PROCESS_MAIN1:PROCESS(CLK_INT,CLR) BEGIN IF CLR=39。 END IF。139。 ELSIF CLK_DIV39。 THEN LCD_E=39。 PROCESS_LCDE:PROCESS(CLK_DIV) BEGIN IF CLR=39。 END IF。139。 ELSIF CLK_DIV39。 THEN CLK_INT=39。 PROCESS_CLKINT:PROCESS(CLK_DIV) BEGIN IF CLR=39。 END IF。139。 ELSIF TC_CLKCNT39。 THEN CLK_DIV=39。 PROCESS_CLKDIV:PROCESS(TC_CLKCNT) BEGIN IF CLR=39。 END IF。039。 ELSE CLKCNT=CLKCNT+1。 TC_CLKCNT=39。139。 ELSIF CLK39。039。 DATA[7..0]:數(shù)據(jù)輸出信號(hào),滿足條件時(shí)將該信號(hào)對(duì)應(yīng)的字符顯示在液晶屏幕上。 LCD_RS:LCD 模塊的 讀控制信號(hào)。 DATA_IN[7..0]:數(shù)據(jù)輸入信號(hào), 從鍵盤 輸入 的數(shù)據(jù) 送至 LCD1602 模塊,等待滿足條件時(shí)顯示。 圖 LCD1602 元件符號(hào) 其中: CLK:時(shí)鐘輸入頻率,接收從 16 分頻計(jì) 輸出的頻率,高電平時(shí) LCD 模塊讀取 鍵 盤輸入數(shù)據(jù) 。 LCD1602接口設(shè)計(jì) 當(dāng)鍵盤有字符輸入時(shí), CLR 變?yōu)榈碗娖?,該模塊就把數(shù)據(jù)讀取,若讀到的數(shù)據(jù)不是退格鍵,就把字符顯示在 LCD 上,若讀到的數(shù)據(jù)是退格鍵,就把 LCD1602 清屏。 END PROCESS。 END IF。 ELSE COUNT=COUNT+1。139。 ELSIF MCLK39。039。 ARCHITECTURE TEST OF DIV_16 IS SIGNAL COUNT:INTEGER RANGE 0 TO 15:=0。 CLK :OUT STD_LOGIC)。 USE 。 2. 16 分頻源程序 LIBRARY IEEE。 END PROCESS。 END IF。 ELSE COUNT=COUNT+1。139。 ELSIF MCLK39。039。 ARCHITECTURE TEST OF DIV_256 IS SIGNAL COUNT:INTEGER RANGE 0 TO 255:=0。 CLK :OUT STD_LOGIC)。 USE 。 圖 256 分頻 計(jì) 元件符號(hào) 圖 16 分頻 計(jì) 元件符號(hào) 其中 : MCLK: 原始時(shí)鐘輸入頻率 CLR: 清零 CLK:通過分頻計(jì)后的輸出頻率 VHDL 源程序如下: 1. 256 分頻源程序 LIBRARY IEEE。 頂層原理圖設(shè)計(jì) 鍵盤驅(qū)動(dòng)從 PS/2 接口中讀取鍵盤發(fā)出的數(shù)據(jù),送到 LCD1602 驅(qū)動(dòng)中,將數(shù)據(jù)顯示在 LCD 上,項(xiàng)層原理圖如下 : 圖 頂層原理圖 下面分別介紹各個(gè)模塊的設(shè)計(jì)??傊疄榱丝煽?,最好寫兩遍該指令。 1602 液晶的初始化 通用 1602 液晶的初始化需要注意一個(gè)問題,即一定要在最開始寫入 功能設(shè)定 指令,該指令用以控制 LCD 的數(shù)據(jù)通信位數(shù),及顯示行數(shù)和字型。 注意: 在讀操作時(shí), E 一旦變?yōu)楦唠娖剑?LCD 馬上將數(shù)據(jù)發(fā)到數(shù)據(jù)線上并保持,一直到 E=0 為止。即最好按照上述的時(shí)序來操作。 注意 : 在寫操作時(shí), LCD 是在 E 的下降沿將數(shù)據(jù)鎖存,即寫操作時(shí) E 下降沿有效。還要注意的是,如果需要雙向通信,則必須選擇既能做輸入又能做輸出的 IO 口,特別是對(duì)于 RS、 RW 和 E 這三條控制線,若能選擇支持位尋址的 IO 口則可以方便編程。 3.漢字的顯示 漢字的顯示一般采用圖形的方式,事先從微機(jī)中提取要顯示的漢字的點(diǎn)陣碼(一般用字模提取軟件),每個(gè)漢字占 32B,分左右兩半,各占 16B,左邊為 5?? 右邊為 6??根據(jù)在 LCD 上開始顯示的行列號(hào)及每行的列數(shù)可找出顯示 RAM 對(duì)應(yīng)的地址,設(shè)立光標(biāo),送上要顯 示的漢字的第一字節(jié),光標(biāo)位置加 1,送第二個(gè)字節(jié),換行按列對(duì)齊,送第三個(gè)字節(jié) ?? 直到 32B顯示完就可以 LCD 上得到一個(gè)完整漢字 液晶顯示的 硬件連接 硬件連接 1602 液 晶可以使用 4 位或 8 位通信模式,通信可以是雙向的或單向的,雙向通信主要是為了讀取 LCD 忙標(biāo)志和 AC 地址寄存器和 DDRAM 和 CGRAM中的值,一般用處不大,因?yàn)?1602不支持點(diǎn)陣?yán)L圖功能。這樣一來就組成某個(gè)字符。這就是 LCD 顯示的基本原理。 1.線段的顯示 點(diǎn)陣圖形式液晶由 MN 個(gè)顯示單元組成,假設(shè) LCD 顯示屏有 64 行,每行有 128列,每 8列對(duì)應(yīng) 1 字節(jié)的 8 位,即每行由 16 字節(jié),共 168=128 個(gè)點(diǎn)組成,屏上 6416 個(gè)顯示單元與顯示RAM 區(qū) 1024 字節(jié)相對(duì)應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對(duì)應(yīng)。需要時(shí),可以將 MCU 的 IO 配置為漏極開路方式,用上拉電阻拉到 5V電平;實(shí)在不能配置為漏極開路方式時(shí),請(qǐng)查閱 MCU 的電氣參數(shù),在允許的條件下,直接使用電阻 弱上拉 也可以。也就是說,絕大部分 1602 液晶只能工作在 5V 電壓下,其供電電壓必須為 5V。 HD44780S 的供電電壓為 5V177。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表 是 TC1602EL 液晶模塊的內(nèi)部顯示地址。 表 指令 5 功能 指令 6:光標(biāo)或顯示移位 ,指令碼與功能見表 。 表 指令 3 功能 指令 4:顯示開關(guān)控制 ,指令碼與功能見表 。它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。如表 所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母 “A” 的代碼是 01000001B( 41H),顯示時(shí)模塊把地址 41H 中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母 “A” 。 TC1602 液晶模塊內(nèi)帶標(biāo)準(zhǔn)字庫,內(nèi)部的字符發(fā)生存儲(chǔ)器( CGROM)已經(jīng)存儲(chǔ)了 192 個(gè) 57 點(diǎn)陣字符, 32 個(gè) 510 點(diǎn)陣字符。 第 15 腳: BLA 背光電源正極 (+5V)輸入引腳。 第 6 腳: E 端為使能端,當(dāng) E 端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。 第 5 腳: RW 為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作 ,低電平時(shí)進(jìn)行寫操作。 第 3 腳: VL 為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生 “ 鬼影 ” ,使用時(shí)可以通過一個(gè) 10K 的電位器調(diào)整對(duì)比度。 、 LCD 顯示原理 LCD1602簡介 1. LCD1602 引腳功能: 第 1 腳: VSS 為電源地,接 GND。 圖 為 PS/2 設(shè)備到 PC 機(jī)的通訊時(shí)序。其中鍵盤碼分為通碼 (Make)和斷碼 (Break) 。 上述中傳輸?shù)臄?shù)據(jù)是指 對(duì)特定鍵盤的編碼或者對(duì)特定命令的編碼。數(shù)據(jù)變化到 Clock(時(shí)鐘腳 ) 下降沿的時(shí)間至少也有 5μ s,但不能大于 25μ s,這是由 PS/2通訊協(xié)議的時(shí)序規(guī)定的。 PS/2 設(shè)備到 PC 機(jī)的通訊時(shí)序如圖 2 所示。發(fā)送時(shí)一般都是按照數(shù)據(jù)幀格式順序發(fā)送。如果 Clock(時(shí)鐘腳 ) 為高電平 ,PS/ 2 設(shè)備便開始將數(shù)據(jù)發(fā)送到 PC 機(jī)。當(dāng) PS/ 2 設(shè)備等待發(fā)送數(shù)據(jù)時(shí) ,它首
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1