keil C51環境下,液晶某些漢字不顯示問題

來源:互聯網
上載者:User

問題描述:使用keil C51編譯環境,帶字型檔液晶.發現有些漢字使用這樣語句無法顯示: uchar code coun_show1[]={"請輸入第一運算元"};其中的漢字"數"將不會顯示,而如果用簡體中文編碼代替以上漢字,如:uchar code coun_show1[]={0xc7,0xeb,0xca,0xe4,0xc8,0xeb,0xb5,0xda,0xd2,0xbb,0xb2,0xd9,0xd7,0xf7,0xca,0xfd};,在液晶屏上漢字"數"是可以顯示的.其中,漢字"數"簡體中文編碼為:0xca,0xfd. 還發現一些漢字,比如"除"(簡體中文編碼:0xb3,0xfd),"三"(簡體中文編碼0xc8,0xfd)等,還發現這些不能顯示的漢字都有一個共同點:簡體中文編碼的第二個位元組都是0xfd.

 

      這是個很早前遇到的問題,要追溯到我還在大學備戰大學生電子競賽的時候,工作期間又一次遇到這個問題.只是分析出可能是編譯器的bug,因為簡體中文編碼下,液晶是可以顯示的,但一直沒有得到證實.知道前幾天在網上閑逛,看到了一個補丁,才意識到自己當初的猜想是正確的.

 

      原來,這確實是一個編譯器bug: keil c51在編譯的時候會將0xfd的字元(有些漢字含該字元的內碼,比如漢字"數")過濾, 而導致程式出錯.特別是在做液晶漢字顯示時.

   

      針對這個bug,有些網友製作了一個補丁,下載之後放到你的keil/c51/bin 目錄裡,運行這個程式.就可以了. 支援v8.02

 

可以到這個網站下載補丁:http://share.eepw.com.cn/share/download/id/17061

或者到這個網站下載補丁:http://www.cndzz.com/down/soft/39675.htm

 

PS:由於現在主要做ARM,keil c51基本不再使用,所以以上補丁本人沒有做過測試.

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.