男女午夜激情_www.天堂av.com_亚洲综合小说区_亚洲欧美自拍视频_成年精品_久久www免费人成—看片_激情综合五月天_久久高潮视频_最新国产成人ab网站_国产精品卡一

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發
培訓信息
贊助商
利用SPCE061A實現中文輸入
利用SPCE061A實現中文輸入
 更新時間:2008-7-26 20:28:44  點擊數:2
【字體: 字體顏色

利用SPCE061A實現中文輸入

文章來源:凌陽科技教育推廣中心
作者:凌陽科技教育推廣中心 發布時間:2006-2-9 17:37:13

摘  要:SPCE061A是凌陽公司設計的一款16位單片機,該單片機資源豐富,具有較高的性價比。本方案在SPCE061A單片機平臺上構造了簡易的拼音輸入法,并以SPLC701B液晶顯示模組為輸入輸出設備,實現了漢字、英文字母、數字符號等文本信息的輸入。

關鍵詞: 單片機 SPCE061A 輸入法

1 引言

  中文輸入是手機、PDA等手持終端的基本功能,研究基于單片機的中文輸入方法,對于手持電子產品的開發具有一定的現實意義。SPCE061A是凌陽科技研發生產的性價比很高的一款十六位單片機,具有易學易用的指令系統和集成開發環境,為軟件開發提供了方便的條件。本方案利用凌陽大學計劃推出的SPLC701B液晶顯示模組作為輸入輸出設備,在SPCE061A單片機上實現了拼音輸入法,可實現漢字、英文字母、數字符號等文本信息的輸入。本方案可以為基于單片機的產品開發、中文輸入法研究等提供輔助和參考。

2 系統硬件設計

  對于文本輸入系統,除了主控制器外,至少還要包括輸入設備和顯示設備。系統采用SPCE061A單片機作為主控制器,而輸入和顯示都通過SPLC701B液晶顯示模組(集成了4×4鍵盤)實現,系統的硬件結構框圖如圖 2-1所示。

圖 2-1 系統硬件結構圖
  SPCE061A單片機作為主控芯片,負責構建拼音輸入法的數據結構,并在單片機內部Flash中保存漢字的拼音編碼。SPCE061A接收4×4按鍵輸入,并通過LCD顯示交互內容,從而實現用戶操作界面。

2.1 SPCE061A芯片特性

2.1.1 SPCE061A簡介

  SPCE061A是一款基于u'nSP內核的16位單片機,其芯片特性如下:
  ● 工作電壓:內核工作電壓VDD為3.0~3.6V(CPU),I/O口工作電壓VDDH為VDD~5.5V(I/O);
  ● CPU時鐘:0.32MHz~49.152MHz;
  ● 內置2K字SRAM和32K閃存ROM;
  ● 系統處于備用狀態下(時鐘處于停止狀態),耗電小于2μA@3.6V
  ● 具備觸鍵喚醒的功能;
  ● 32位通用可編程輸入/輸出端口;
  ● 2個16位可編程定時器/計數器(可自動預置初始計數值);
  ● 7通道10位電壓模-數轉換器(ADC)和單通道聲音模-數轉換器;
  ● 2個10位DAC(數-模轉換)輸出通道;
  ● 14個中斷源可來自定時器A / B,時基,2個外部時鐘源輸入,鍵喚醒;
  ● 具備串行設備接口;
  ● 低電壓復位(LVR)功和低電壓監測(LVD)功能;
  ● 內置在線仿真(ICE,In- Circuit Emulator)接口。
  SPCE061A的內部結構框圖如圖 2-2所示。

圖 2-2 SPCE061A內部結構圖

2.2 SPLC701B液晶顯示模組特性

  SPLC701B液晶顯示模組采用基于凌陽SPLC701B芯片的點陣液晶顯示器,具有120×52顯示分辨率,內置漢字字庫和半角字符庫,可軟件調節對比度(32級),支持串行和并行控制方式。模組同時配備4×4鍵盤供用戶使用。液晶顯示器的基本特性見下表:
表 2.1 液晶顯示器特性參數

顯示模式

1. 4行10列全角字符(11×12點陣字符),同時支持半角字符(5×12點陣字符)顯示。
2. 120×52點陣圖形顯示。
3. 14段圖標顯示。
上述三種模式可同時顯示。

顯示器尺寸 34.5 (寬)× 33.3 (高)× 1.91 (厚) mm
可視區尺寸 30.5 (寬)× 23.4 (高) mm
點大小 0.2 (寬)× 0.303 (高) mm
像素尺寸 0.22 (寬)× 0.323 (高) mm

  模組包括LCD顯示器和4×4鍵盤兩個部分,LCD與鍵盤可以各自獨立使用,互不影響。

2.3 硬件電路

2.3.1 SPCE061A最小系統

  本方案使用SPCE061A精簡開發板(61板)作為單片機最小系統。61板包括SPCE061A芯片外圍的基本模塊,有:晶振輸入模塊(OSC)、鎖相環外圍電路(PLL)、復位電路(RESET)、指示燈(LED)等,如下圖所示。

圖 2-3 SPCE061A最小系統

2.3.2 LCD顯示器

  SPLC701B液晶顯示模組提供的LCD顯示器采用凌陽SPLC701B液晶驅動芯片,點陣分辨率為120*52,內置中文字庫,可顯示漢字、字符、圖形等。該LCD顯示器支持串行、8位并行、4位并行等多種接口方式,為簡化電路連接,這里使用串行接口方式,如圖 2-4所示。

圖 2-4  SPCE061A與LCD顯示器的硬件連接

2.3.3 4×4鍵盤

  SPLC701B液晶顯示模組附帶4×4鍵盤,可直接與SPCE061A的I/O端口連接。其電路原理圖如下:

圖 2-5  4×4鍵盤

3 系統軟件設計

  本方案的軟件系統主要包含下列模塊:
  按鍵掃描:掃描4×4鍵盤,獲取鍵值。包括Key.asm程序文件和Key.inc、Key.h頭文件。
  LCD顯示:LCD顯示驅動程序,實現文本、圖形顯示等功能。該模塊包括LCD701_Drv.asm、LCD701_Functions.c程序文件,以及LCD701_Cfg.inc、LCD701_Defs.h、LCD701_Drv.h、LCD701_Functions.h等頭文件。
  文字輸入:通過4×4鍵盤輸入漢字(拼音輸入法)、字符、數字等,并在LCD上顯示出來,以便于用戶編輯通訊錄條目。該模塊包括PY_IME.c、PY_Interface.c程序文件,以及PY_Index.h、PY_MB.h、PY_IME.h、PY.h等頭文件。

3.1 各模塊程序說明

3.1.1 按鍵掃描模塊

  按鍵掃描是在TMB_128Hz中斷服務程序中進的,采用逐行掃描方式獲取鍵值。4×4鍵盤的左面3列采取手機按鍵排布方式,最右一列的4個按鍵分別被定義為"向上"、"向下"、"確定"和"取消",如圖 3-1所示。

圖 3-1  4*4按鍵定義

3.1.2 LCD顯示模塊

  LCD顯示部分采用SPLC701B液晶顯示模組附帶的驅動程序。該驅動程序的架構如圖 3-2所示。

圖 3-2  LCD驅動程序架構
  程序中用到的LCD驅動函數主要有:
  void LCD701_Init(void);        // LCD顯示初始化
  void LCD701_ClrScr(unsigned Part);     // 清除屏幕顯示內容
  void LCD701_SetTextPos(unsigned Row, unsigned Col); // 設置文本顯示位置
  void LCD701_SetTextMode(unsigned TextMode);   // 設置文本顯示模式
  void LCD701_Print(const unsigned char *String);   // 在屏幕上打印字符串

3.1.3 文字輸入模塊

  拼音輸入法是本方案的核心內容,它負責將鍵盤輸入的數字序列轉換為漢字。拼音輸入法大體可以分為兩個步驟:首先將鍵盤輸入的數字序列轉換為拼音編碼,然后搜索到該拼音編碼對應的漢字編碼。
  拼音編碼以索引表的形式保存在PY_Index.h中,每個拼音編碼的數據結構為:
  typedef struct
  {
     const char *T9;   // 按鍵數字序列
     const char *PY;   // 拼音編碼字符串
     const char *MB;   // 該拼音對應的漢字碼表地址
  }T9PY_IDX;
  所有的拼音編碼組成一個數組常量T9PY_index[],每個拼音編碼作為數組中的一個元素存在,下面是該數組的片段:
  const T9PY_IDX  T9PY_index[] ={     
   {"2","a",PY_mb_a},
   {"3","e",PY_mb_e},
   …… ……
   {"224","bai",PY_mb_bai},
  {"224","cai",PY_mb_cai},
   …… ……
  }
  當用戶通過鍵盤輸入一個數字序列后,程序將遍歷拼音編碼數組中的每個元素,找到與這個數字序列對應的所有拼音編碼。例如輸入數字"224",遍歷T9PY_index數組將獲得"bai"和"cai"兩組拼音編碼,程序將這些匹配的拼音通過LCD顯示出來,供用戶選擇。
  在用戶選定了拼音之后,程序就可以獲得該拼音編碼對應的漢字碼表地址。例如選擇了拼音"cai",那么程序將獲得該拼音拼音編碼對應的漢字碼表地址PY_mb_cai。漢字碼表是具有相同讀音的漢字組成的編碼數組,例如PY_mb_cai數組的定義如下:
  const unsigned char PY_mb_cai []={"@猜才材財裁采彩睬踩菜蔡"};
  程序將漢字碼表數組中的所有漢字顯示在LCD上,這樣用戶就可以通過鍵盤選取所需的漢字了。由于LCD可顯示的字數有限,這里采用分頁顯示的辦法,每頁顯示8個漢字供用戶選擇,并可利用鍵盤中的"Up"和"Dn"鍵上下翻頁。
  用戶在錄入文本時,除需要輸入中文外,也可能需要輸入英文、數字以及符號等。因此,將4×4鍵盤的一些特定按鍵定義為英文、數字等輸入鍵,從而構成了完整的文本輸入模塊。文字輸入模塊的程序流程如下:

圖 3-3 文字輸入模塊程序流程

4 操作說明

  本系統實現的輸入法可以方便地實現中文、英文字母、數字、符號的混合輸入。與手機鍵盤類似,英文字母a~z分配在2~9這幾個數字鍵上,如下圖所示:

圖 4-1 按鍵與字母映射關系

4.1 輸入漢字

  當輸入漢字時,連續按拼音字母對應的數字鍵,LCD將顯示所有匹配的拼音。按Up或Dn鍵選中所需的拼音,再按確定鍵即可進入漢字選擇狀態。LCD將分頁顯示該拼音對應的所有漢字,每個漢字上方有一個數字,按相應的數字鍵可以選中所需的漢字,按Up和Dn可上下翻頁。例如,輸入漢字"書",需要進行如下操作:
  "書"字的拼音編碼為"shu",因此依次按數字鍵"748",LCD將顯示與之對應的所有拼音編碼:

圖 4-2 輸入拼音
  按Up或Dn鍵,將光標切換到"shu"的位置,再按"確定"鍵,LCD將顯示拼音"shu"對應的漢字列表:

圖 4-3 選擇漢字
  直接按數字鍵"1"即可選定漢字"書"。如果需要的漢字沒有出現在當前頁,則可利用Up和Dn鍵上下翻頁。

4.2 輸入英文字母

  以輸入英文字母"r"為例,首先按"r"對應的數字鍵"7",LCD將顯示該數字鍵對應的所有字母:

圖 4-4 選擇英文字母
  按Up或Dn鍵,將光標移動到"r"的位置,再按"0"鍵即可選定字母"r"。

4.3 輸入數字和符號

  當輸入數字時,需要先按數字鍵,再按"#"鍵。例如輸入數字3,則依次按"3#"即可。
此外,輸入法還支持一些常用符號輸入。按"1"鍵,LCD將顯示符號列表:

圖 4-5 輸入符號
  每個符號上方有一個數字,按0~8數字鍵可輸入對應的符號,按"#"鍵則輸入數字"1"。例如輸入符號"@",需要依次鍵入"03"。

5 參考文獻

[1]  羅亞非.凌陽16位單片機應用基礎[M]. 北京:北京航空航天大學出版社,2003
[2]  薛鈞義 張彥斌 虞鶴松 樊波   凌陽十六位單片機原理及應用[M]  北京航空航天出版社 2003年2月第1版
[3]  譚浩強    C程序設計[M]   清華大學出版社   1999年12月第2版
[4]  沈美明 溫冬蟬  IBM-PC匯編語言程序設計[M]    清華大學出版社 2001年8月第二版
[5]  實驗指導書     凌陽大學計劃資料
[6]  凌陽大學計劃網站www.unsp.com.cn

  • 上一篇: 凌陽單片機報時及作息時間的控制
  • 下一篇: 多功能集成的16位單片機分析及應用
  • 發表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發消息66821730(技術支持)點擊這里給我發消息66821730(廣告投放) 點擊這里給我發消息41031197(編輯) 點擊這里給我發消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業自行提供,該企業負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(濱江)機電一體化學會
    中國行業電子商務100強網站

    網站經營許可證:浙B2-20080178-1
    主站蜘蛛池模板: 武鸣县| 宁强县| 遂宁市| 陆川县| 蓝山县| 密云县| 巴林左旗| 京山县| 东乡县| 游戏| 花垣县| 丹巴县| 正蓝旗| 佛冈县| 荔浦县| 疏勒县| 高唐县| 武宣县| 喀喇沁旗| 湘西| 崇阳县| 富民县| 东山县| 无为县| 洛阳市| 永宁县| 尼勒克县| 永平县| 将乐县| 乌审旗| 永吉县| 隆昌县| 宽甸| 长寿区| 北海市| 南皮县| 宜兴市| 毕节市| 庆云县| 古浪县| 玉门市|