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

正文內(nèi)容

基于單片機的plc中文輸入系統(tǒng)設(shè)計-文庫吧資料

2025-07-10 20:36本頁面
  

【正文】 N Y 輸出選中拼音的所有漢字 同時切換為顯示狀態(tài) Key=上鍵 把 漢字 hanzi_idx 減 1,表示選上一個 漢字 Key=下鍵 把 漢字 hanzi_idx 加 1,表示選 下 一 個 漢字 Key= 確定定 輸出漢字、同時把液晶的三四行字清掉、把 key_str 清空 Y N Y N Y N 第 16 頁 共 28 頁 英文輸入流程圖 : 圖 文字輸入模塊程序流程 標點 符號的 輸入 是用 12 鍵直接進行控制, 按下 12 鍵,把所有標點直接在 LCD 的第四行顯示出來,用戶可以通過上下按鍵選擇自己想要的 標點 符號。 } ( 7) 用戶在錄入文本時,除需要輸入中文外,也可能需要輸入英文、數(shù)字以及符號等。 delay(5)。i2。 hanzi=ptrentry[ptrele_idx]py_mb+xx。 } else LCD_Wcode(0x90+weizhi8)。 LCD_qingchu_12( )。 if(weizhi=7) LCD_Wcode(0x80+weizhi)。 int i。 在本設(shè)計中由于按鍵已全部用完,所以沒有設(shè)置上下翻頁鍵。i++) LCD_Wdata(*hanzi++)。 for(i=0。 char_num=ptrhanzi_num*2。 char *hanzi。程序?qū)h字碼表數(shù)組中的所有漢字 顯示在 LCD 上,漢字碼表是具有相同讀音的漢字組成的編碼數(shù)組,例如 PY_mb_bai 數(shù)組的定義如下: code char PY_mb_bai[] ={白百佰柏擺敗拜稗 }。 } } ( 5) 在用戶選定了拼音之后,程序 同時也知道了 拼音編碼對應(yīng)的漢字碼表地址。j++) { dizhi=ptrentry[j]py_str。 for(j=0。 int j。 ( 4) 例如輸入數(shù)字 224, 比較 t9py_table 數(shù)組 所有數(shù)字串元素, 將獲得 bai和 cai兩組拼音編碼,程序?qū)⑦@些匹配的拼音通過 LCD 顯示出來,供用戶選擇。 // 當前選中拼音中的選中的漢字( index) char code *hanzi_ptr。 // 當前選中的拼音( index) int hanzi_num。 int ele_num。 } ( 3) 每次查詢 T9 索引表得到的所有匹配拼音結(jié)果,都放在 struct t9py_list t9py_result中, 當要顯示結(jié)果時,可以通過取這里的變量,進行顯示。 str = idxt9_str。 t9py_result_add(idx)。strcmp(str,)。 t9py_result_clear()。(t9py_table[0])。 success = 0。 char *str。數(shù)字串從地址為 0 處開始 依次比較,當 比較結(jié)果 為 相等 時 則把 指向 該 數(shù)組的 指針放到 T9 數(shù)字字母索引結(jié)果 的結(jié)構(gòu)體中, 指針繼續(xù)往下指,繼續(xù) 比較,直到 遇到結(jié)束標志(“”),查找結(jié)束 。 //該拼音對應(yīng)的漢字碼表地址 }。 //按鍵數(shù)字序列 char code *py_str。整個過程采用查表方法查找拼音及其對應(yīng)漢字 串 。 //讀忙碌狀態(tài) 程序中用到 的顯示模塊 函數(shù)為: display_pinyin(struct t9py_list *ptr); display_hanzi(struct t9py_list *ptr); display_output_hanzi(struct t9py_list *ptr); 文字輸入模塊 拼音輸入法是本方案的核心內(nèi)容,它負責將鍵盤輸入的數(shù)字序列轉(zhuǎn)換為漢字。 //寫數(shù)據(jù) void LCD_Wcode(char c)。 //清除屏幕顯示內(nèi)容 void LCD_Init()。 程序中用到的 LCD驅(qū)動函數(shù)主要有: void LCD_Rest()。若要顯示英文字符串,可以調(diào)用 display_pinyin(struct t9py_list *ptr)函數(shù),其中 ptr為 T9數(shù)字字母索引結(jié)果的指針 。 漢字顯示模塊是整個系統(tǒng)的核心模塊之一,通過調(diào)用顯示子程序?qū)h字和英文字符通過并行傳送方式傳送到 LCD顯示 。 LCD 顯示模塊 LCD 在使用時,要先把欲存放的數(shù)據(jù)的地址寫入 IR,再把欲顯示的數(shù)據(jù)寫入 DR,在寫入前還需要先檢查忙碌標志 BF,只有當 BF 為 0 才可以寫入。下圖是根據(jù)實物圖列出來的 , 1 到 9 為數(shù)字鍵 , “ 數(shù) ” 表示按下該鍵轉(zhuǎn)入數(shù)字輸入狀 態(tài) , “ 英 ” 表示按下該鍵轉(zhuǎn)入英文輸入狀態(tài) , “ 標 ” 表示按下該鍵轉(zhuǎn)入標點符號輸入狀態(tài) , “ 取 ” 表示取消 ,“ Up” 表示選擇下一個 , “ Dn” 表示選擇上一個 , “ 確 ” 表示確定。 第 9 頁 共 28 頁 按鍵掃描模塊 按鍵掃描是 采用查詢方式獲得按鍵,單片機不斷的查詢是否有按鍵按下,如果 有按鍵按下, 就執(zhí)行相應(yīng)的語句 , 跳出查詢函數(shù)進行數(shù)字序列到拼音碼表轉(zhuǎn)換運算, 否則繼續(xù)查詢。 LCD 顯示 : LCD 顯示驅(qū)動程序,實現(xiàn) 中文,數(shù)字,英文, 符 號 輸出 等功能。圖 和圖 是單片機對液晶顯示模塊的讀寫時序: 圖 單片機 寫資料到模塊時序圖 圖 單片機 從模塊 讀出資料 時序圖 3 軟件設(shè)計 由 鍵盤傳來 一個鍵值, 單片機據(jù)此確定是否是合法的預(yù)定義的字母( a~z)鍵, 若是,由鍵值(已轉(zhuǎn)換為 ASCⅡ 碼)經(jīng)過換算得到對應(yīng)西文字模在存儲器中的起始位置,然后從存儲器中提取與該鍵匹配的西文字模并放入到 LCD中顯示 , 再查找與該字母(注:如果不是首次輸入則應(yīng)當與以前輸入的字母組合成一個字符串,即一個音節(jié))發(fā)音相同的第一個漢字內(nèi)碼在存儲器中的位置,得到該內(nèi)碼并經(jīng)過換算得出該內(nèi)碼對應(yīng)漢字字模在存儲器中的起始位置 , 然后依次查找下一個漢字的內(nèi)碼在存儲器中的位置,再換算找到漢字字模在存儲器中的位置,最后 將它們分別提取出來并送至 LCD 上顯示 。 位址歸位命令的組成結(jié)構(gòu)和功能如下 : 功能 : 把 DDRAM 位址計數(shù)器調(diào)整為“ 00H” , 游標回原點 , 該功能不影響顯示DDRAM。在此設(shè)計中采用的是并口通訊模式,所以直接將 PSB 接固定高電平,數(shù)據(jù)由單片機的 P0 口傳送進來,使 能端 E,讀寫RW, 寄存器選擇 RS 用單片機進行控制。如果在送出一個指令前不檢查 BF 標志,則在前一個指令和這個指令中間必須延遲一段較長的時間,即等待前一個指令確定執(zhí)行完成。當字符編碼為 2 字節(jié)時,應(yīng)先寫入高位字節(jié),再寫入低位字節(jié)。顯示 ASCII 字符過程與顯示中文字符過程相同。如圖 所示是單片機與液晶顯示模塊 的連接 。 12864 與單片機有并行和串行兩種連接方法 , 并行接口較串行復(fù)雜 , 但是并行接口可以大大提高液晶顯示模塊 顯示字符和漢字的速度 , 所以所介紹的系統(tǒng)與單片機采用并行接口連接方式。 下圖為 單片機及其周圍電路 : 圖 單片機及其周圍電路 12864 液晶 帶中文字庫的 128X64 是一種具有 4 位 /8 位并行、 2 線或 3 線串行多種接口方式,內(nèi)部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為 128 64, 內(nèi)置 8192 個 16*16 點漢字,和 128 個 16*8 點 ASCII 字符集。 工作電壓范圍 片內(nèi)時鐘電路 2 個讀寫中斷口線 2 個外部中斷源 2 個串行中斷 3 個 16 位可編程定時 /計數(shù)器中斷 32 個雙向 I/O 口 兼容 MCS51 指令系統(tǒng) 特別是可反復(fù)擦寫的 Flash 存儲器可有效地降低開發(fā)成本。 內(nèi)置功能強大的微處理器的 AT89C52 可提供許多高性價比的解決方案,適用于多數(shù)嵌入式應(yīng)用系統(tǒng)。前兩種方法屬于硬件消抖,在嵌入式系統(tǒng)通常要求硬件元器件盡可能的少,因此在實際的設(shè)計系統(tǒng)中通常采用 “ 軟件消除抖動 ” 。如果沒有對按鍵進行消抖處理,很可能將一次按鍵操作識別成多次按鍵操作,造成系統(tǒng)的不確定性和不可靠性。 系統(tǒng)原理框圖如圖 所示: 圖 系統(tǒng)原理框圖 2 硬件設(shè)計 44 按鍵 ( 1) 當按鍵斷開時,由于單片機的端口的輸入內(nèi)阻很大,在上拉電阻的作用下,此時的單片機輸入端口的電平為 5V;當按鍵按下時 ,上拉電阻的 5V 電源經(jīng)上拉電阻流向電阻地,此時單片機的輸入端口電平為 0V。 系統(tǒng)原理框圖 AT89C55WD 單片機作為主控芯片,負責構(gòu)建拼音輸入法的數(shù)據(jù)結(jié)構(gòu),并在單片機內(nèi)部 Flash 中保存漢字的拼音 編碼 和碼表 。按下某一個按鍵, 首先 在查詢程序中讀取鍵值, 然后將該鍵值添加 到字符末尾 , 將字符串 數(shù)字序列與結(jié)構(gòu)體中的拼音碼表 進行遍歷,把所有該數(shù)字序列匹配的拼音都放到結(jié)果結(jié)構(gòu)體中, 在 LCD 上顯示所有拼音。 因為題目要求做的是中文輸入,中文基本漢字有五千多 ,把所有的漢字的字模形式取出來,在理論是可取,在制作上比較累贅 ,因為點陣太多,所有漢字 以 點陣 形式存儲所 需內(nèi)存 大約 為 256K, 較占內(nèi)存 , 而在方案二則比 較節(jié)省內(nèi)存空間, 也比較 簡單明了,所以采取了方案二。 方案二: 采用 帶字庫的液晶 采用帶字庫的液晶,在寫入液晶時 需要 LCD_Wdata (國標碼 1), LCD_Wdata (國標碼 2), 這樣就能顯示一個漢字 ,對于字符,只需要寫一次。 12864 液晶 方案一 : 采用 不帶字庫的 液晶 采用 不帶字庫的 液晶, 需要從放字庫字模的地方(如內(nèi)部 FLASH,外部 FLASH)取到一個漢字的字模, 字模為 16*16 點陣,需要 LCD_Wdata(字模 )32 次,才能顯示一個漢字 。 方案二: 采用 T9 拼音輸入法 這是 現(xiàn)代手機比較常用的輸入法, 在輸入時 ,用戶只需按拼音字母所在的按鍵,而不必重復(fù)按鍵來選擇具體的字母, 程序按算法自動組合成拼音, 在輸入完拼音后,此時屏幕會顯示拼音 供選擇,可以 使用 上下鍵選擇需要的拼音,按確定 鍵確定所選的拼音 ,再把選 中的拼音對應(yīng)漢字顯示出來 。 拼音輸入法方案 方案一 : 采用 傳統(tǒng)輸入法 傳統(tǒng)輸入法 用數(shù)字 按 鍵 2~9 分別代表 26 個英文字母,如數(shù)字鍵 2 代表“ ABC”三個字母, 在輸入時,按一下選擇 A, 按兩下選擇 B, 按三下選擇 C。 鍵盤接口的電氣標準能滿足 TTL 電平的傳送要求 , 不需電平轉(zhuǎn)換 , PC 機的操作系統(tǒng)內(nèi)核能夠解釋單片機應(yīng)用系統(tǒng)通過鍵盤接口傳送來的數(shù)據(jù) , 免除了編寫串行數(shù)據(jù)接收程序的工作 , PC 機能夠提供 +5V 電源 。 方案二: 采用 PC 機鍵盤與單片機連接 單片機應(yīng)用系統(tǒng)通過鍵盤接口與 PC 機通信必須嚴格按照鍵盤與 PC 機通信的時序要求并且按照命令字進行應(yīng)答。 為實現(xiàn)以 上設(shè)計思想,整個系統(tǒng)分為按鍵掃描、拼音輸入法,液晶顯示三部分 。 設(shè)計要求 ( 1)掌握單片機電路的設(shè)計和使用方法; ( 2)學習掌 握中文字庫原理及使用; ( 3)確定電路原理圖及系統(tǒng)工作原理;
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1