久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: keil漢字補丁0xfd已更新 解決keil 51單片機驅動12864液晶顯示漢字出現亂碼的問題 [打印本頁]

作者: renyunpei    時間: 2010-7-21 22:56
標題: keil漢字補丁0xfd已更新 解決keil 51單片機驅動12864液晶顯示漢字出現亂碼的問題

這是我在本論壇的51hei-5開發板上寫的一個程序,想在12864上顯示:一二三四五六七,可是總是出現這樣的亂碼,請各位大哥看看,謝謝了,十分感謝。!


#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcd_rs=P3^5;    //數據命令選擇口
sbit lcd_rw=P3^6;    //讀寫選擇口
sbit lcd_en=P3^4;    //使能信號
sbit lcd_psb=P3^7;    //串/并選擇端
sbit wela=P2^6;
sbit dula=P2^7;
sbit diola=P2^5;
uchar i;

uchar code time3[]={"一二三四五六七"};

void delay(uint z)         //延時函數
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void delay4us()       //短延時
{
 _nop_();
 _nop_();
 _nop_();
 _nop_();
}
/*              檢查LCD忙狀態               */
/*lcd_busy為1時為忙,為0時為閑,可寫指令數據*/
void lcd_busy()
{

 uchar busy;
 do
 {
  lcd_en=0;
  lcd_rs=0;
  lcd_rw=1;
  delay4us();
  lcd_en=1;
  busy=P0;        //在使能端的上升沿讀走數據
  delay4us();
  lcd_en=0;
 }
 while(busy&0x80);
}
/*寫指令到12864:RS=L,RW=L,E=高脈沖*/
void write_command(uchar cmd)
{
 lcd_busy();
 lcd_rs=0;
 lcd_rw=0;
 lcd_en=0;
 P0=cmd;
 delay4us();
 lcd_en=1;
 delay4us();
 lcd_en=0;
}
/*寫顯示數據到12864:RS=H,RW=L,E=高脈沖*/
void write_data(uchar dat)
{
 lcd_busy();
 lcd_rs=1;
 lcd_rw=0;
 lcd_en=0;
 P0=dat;
 delay4us();
 lcd_en=1;
 delay4us();
 lcd_en=0;
}
/*設定顯示位置*/
void lcd_position(uchar x,uchar y)
{

 if(x==0)
  write_command(0x80+y);
 else if (x==1)
     write_command(0x90+y);
    else if (x==2)
     write_command(0x88+y);
    else if (x==3)
     write_command(0x98+y); 
}
/*初始化12864*/
void lcd_init()
{

 dula=0;
 wela=0;
 diola=0;
 lcd_psb=1;      //并口方式
 delay(10);
 write_command(0x30);           //基本操作指令
 delay(5);

 write_command(0x0c);               //顯示開光標關
 delay(5); 
 write_command(0x01);              //清除LCD顯示內容
 delay(5);

}
void main()
{

 lcd_init();
 delay(10);
 
 lcd_position(0,0);
 i=0;
 while(time3[ i]!='\0')
 {
  write_data(time3[ i]);
  i++;
 }
 write_data(time3[ i]);
 while(1);
 
}



作者: admin    時間: 2010-7-22 04:45

如果我沒有猜錯你是用keil編譯的吧

 

你這種情況很有可能是,沒有打漢字內碼0xfd問題的補丁,導致只要包含有包含0xFD內碼的漢字均不能正常顯示,這是keil的一個臭名昭著的Bug, keil是德國的,對漢字的兼容不太好需要打這個補丁才能正常顯示.

 

文件下載:http://www.zg4o1577.cn/ziliao/file/0xfd.rar

文件說明:keil c51在編譯的時候會將0xfd的字符(有些漢字含該字符的內碼)過濾, 而導致程序出錯.特別是在做液晶漢字顯示時. 針對這個bug.編寫了這個補丁. 請下載之后放到你的keil\c51\bin 目錄里,運行這個程序點擊start.就可以了.


作者: renyunpei    時間: 2010-7-22 07:58
謝謝,十分感謝,弄好了,祝你幸福平安。!
作者: dgahz    時間: 2014-12-11 11:18
第一次發現,受教了,下載補救。
作者: sglf0201    時間: 2015-5-3 14:39
keil4這問題也是一樣的解決辦法嗎,管理員身份運行不成功怎么辦

QQ截圖20150503143831.jpg (64.06 KB, 下載次數: 509)

QQ截圖20150503143831.jpg

作者: 嘉輝先生    時間: 2015-5-21 20:42
ok,我的問題也得到了解決。三克油
作者: zhongzhianan    時間: 2015-7-23 11:28
補丁我用的怎么不成功呢
作者: zhongzhianan    時間: 2015-7-23 16:40
admin 發表于 2010-7-22 04:45
如果我沒有猜錯你是用keil 2編譯的吧
&nbsp;
你這種情況很有可能是,沒有打漢字內碼0xfd問題的補丁,導致 ...

你好,我怎么下載補丁,測試不可以呢?直接用十六進制區嗎也不行?請問我的問題,有可能是出在哪?
作者: 我想當壞人    時間: 2015-8-9 10:31
嘗試成功,謝謝了。
作者: 北極光2015    時間: 2015-10-16 19:41
多謝,我的問題也解決了!
作者: SnowFlake    時間: 2016-2-19 22:28
admin 發表于 2010-7-22 04:45
如果我沒有猜錯你是用keil編譯的吧
&nbsp;
你這種情況很有可能是,沒有打漢字內碼0xfd問題的補丁,導致只 ...

感謝不吝賜教,謝謝了前輩!
作者: llboer    時間: 2016-4-21 22:54
謝謝了~~~~~~~~~~~~
作者: y1065403288    時間: 2016-5-4 11:16
大神好厲害,這個問題真厲害
作者: 征服單片機    時間: 2016-5-15 00:32
怎么我下載了補丁還是顯示亂碼?求大神們指教
作者: 征服單片機    時間: 2016-5-15 00:42
admin 發表于 2010-7-22 04:45
如果我沒有猜錯你是用keil編譯的吧
&nbsp;
你這種情況很有可能是,沒有打漢字內碼0xfd問題的補丁,導致只 ...

為什么我下了補丁仍然顯示亂碼,求大神指教
作者: 5000322    時間: 2017-7-30 22:53
這個方法很好用。多謝!
作者: lw1997    時間: 2017-8-13 09:35
admin 發表于 2010-7-22 04:45
如果我沒有猜錯你是用keil編譯的吧
&nbsp;
你這種情況很有可能是,沒有打漢字內碼0xfd問題的補丁,導致只 ...

感謝分享
作者: jicao123    時間: 2017-9-27 12:43
keil漢字補丁能否給我份
作者: jicao123    時間: 2017-9-27 12:44
keil漢字補丁能否給我份
作者: LaZY813    時間: 2018-5-20 20:13
sglf0201 發表于 2015-5-3 14:39
keil4這問題也是一樣的解決辦法嗎,管理員身份運行不成功怎么辦

我也這樣  請問怎么解決的呀

作者: hp34401a    時間: 2018-5-26 09:52
新KEIL C51 0XFD補丁。支持KEIL5 及以下所有版本!

keilfdfix2.JPG (53.83 KB, 下載次數: 276)

keilfdfix2.JPG

keil_v5_fixed1.jpg (144.25 KB, 下載次數: 246)

keil_v5_fixed1.jpg

keilfdfix3.JPG (120.68 KB, 下載次數: 197)

keilfdfix3.JPG

VirusTotalA.jpg (193.81 KB, 下載次數: 190)

VirusTotalA.jpg

KeilFDfix_新FD補丁(冠銘同學版)b7.rar

96.6 KB, 下載次數: 364, 下載積分: 黑幣 -5


作者: DSCX05    時間: 2018-8-18 18:34
hp34401a 發表于 2018-5-26 09:52
新KEIL C51 0XFD補丁。支持KEIL5 及以下所有版本!

好用。。。。。。
作者: denminshen    時間: 2018-8-30 15:00
DSCX05 發表于 2018-8-18 18:34
好用。。。。。。

下載試試看行不行?我有一個液晶屏顯示“過”字不行,按照管方解決辦法加\xFD都沒有能解決正常顯示,后在“過”字后加\x00才正常顯示的,后又有一個“山”字不能正常顯示,字后加什么都不行了,用了修復補丁也不行,只修復了“過”字顯示的問題,“山”字的顯示始終不行哎!今天在下載這個補丁試試看吧!
作者: denminshen    時間: 2018-8-31 13:39
昨天下載測試了,我的keil3問題還是解決不了,今天下載了一個keil4
作者: zhangcj0818    時間: 2018-10-6 12:54
hp34401a 發表于 2018-5-26 09:52
新KEIL C51 0XFD補丁。支持KEIL5 及以下所有版本!

感謝你的無私,我今天也碰到亂碼了
作者: 七彩的夢想    時間: 2018-12-25 22:44
最近在學習12864遇到部分漢字顯示亂碼,導致后面所有漢字亂碼。

"飛流直下三千尺,"  “正弦波”(“三”“正”字顯示亂碼。)弄了好久都解決不了,現在終于在這里找到了解決方法。謝謝樓主與各位網友!
作者: 1992wzc    時間: 2019-1-16 12:39
在哪呢
作者: yqs138168    時間: 2019-1-16 16:35
hp34401a 發表于 2018-5-26 09:52
新KEIL C51 0XFD補丁。支持KEIL5 及以下所有版本!

新KEIL C51 0XFD補丁。支持KEIL5 及以下所有版本!
作者: yqs138168    時間: 2019-1-16 16:36
我的頁無法打補丁啊愛愛愛
作者: foshanyun    時間: 2019-4-17 23:28
新KEIL C51 0XFD補丁。支持KEIL5 及以下所有版本!
作者: ykm2019    時間: 2019-4-24 21:54
學習KEIL C51 0XFD補丁
作者: 小叮當呀    時間: 2019-5-19 04:45
hp34401a 發表于 2018-5-26 09:52
新KEIL C51 0XFD補丁。支持KEIL5 及以下所有版本!

多謝多謝
作者: 1+1=6    時間: 2019-6-13 16:46
還是可以,很棒
作者: 1150835082    時間: 2019-9-29 22:33
感謝你的無私,我今天也碰到亂碼了
作者: lrqblack    時間: 2020-2-27 09:43
感謝感謝,我也碰三顯示不出來的問題了,昨晚弄了一個晚上,打了補丁當場好了。
作者: stdwmap    時間: 2020-3-4 00:28
感謝大佬,雖然我來晚了10年。這個真的是聽君一席話,勝讀十年書。
作者: ⑨掌門    時間: 2020-3-15 18:27
admin 發表于 2010-7-22 04:45
如果我沒有猜錯你是用keil編譯的吧
&nbsp;
你這種情況很有可能是,沒有打漢字內碼0xfd問題的補丁,導致只 ...

我整了一下午了,我就沒想到是編譯器的問題,淦,感謝感謝
作者: 江淺浮淵澤    時間: 2020-5-27 21:20
十分感謝,新KEIL C51 0XFD補丁很好用,舊版在我這里沒有用,新版的可以。
作者: jemery1030    時間: 2020-10-5 13:25
謝謝你,剛剛執行了,秀出成功的信息。
作者: shuwang1234    時間: 2020-10-25 14:03
hp34401a 發表于 2018-5-26 09:52
新KEIL C51 0XFD補丁。支持KEIL5 及以下所有版本!

測試可用,早發現這個補丁就好了
作者: benniu    時間: 2021-1-6 20:49
昨天出現了這個情況,用這個補丁解決了問題,謝謝樓主了
作者: cana_xzy    時間: 2021-2-5 23:55
“正”字遇到了這個問題,都2021年了,這個問題還是存在
作者: allen_1iu    時間: 2021-3-4 15:26
我的這個好像不行,還是亂碼。
作者: zhaobolove    時間: 2021-10-19 16:07
http://www.zg4o1577.cn/bbs/dpj-130470-1.html
keil c51升級到v9.54后,原來的0XFD修復工具失效了,所有寫了這個小工具。
0XFD問題是keil c51中一直存在的一個問題,表現為當C源代碼中使用了漢字等非ASCII字符,而此字符的編碼又恰好包含了大于或等于0xFD的字節時,這個字節將被編譯器刪除,從而最終程序代碼的運行錯誤。
作者: fkeguh    時間: 2022-1-21 14:10
hp34401a 發表于 2018-5-26 09:52
新KEIL C51 0XFD補丁。支持KEIL5 及以下所有版本!

謝謝樓主,現在顯示正常了。

51hei圖片_20220119185337.jpg (122.23 KB, 下載次數: 369)

51hei圖片_20220119185337.jpg

20220120171010.jpg (137.13 KB, 下載次數: 325)

20220120171010.jpg

作者: az51hei    時間: 2022-1-29 09:24
用keil在使用漢字時有時會出現顯示亂碼,官方說明是有些漢字內碼包含0xfd,可以通過加在該漢字后加0xfd解決,不過很麻煩,有了0xfd補丁就可以很好的解決這個問題。
作者: cb474265474265    時間: 2022-1-29 22:17
hp34401a 發表于 2018-5-26 09:52
新KEIL C51 0XFD補丁。支持KEIL5 及以下所有版本!

感謝分享,這個的確好用,解決了困擾我很久的問題。
作者: hu_jia168    時間: 2022-6-4 01:21
不錯,測試OK
作者: zjczm    時間: 2022-9-22 09:51
也發現這個問題了。
臨時解決的辦法:把漢字編碼的2個字節,單獨寫到數組。
比如:
   mystr[0] = 0xCA;                // '數'的GBK內碼: 0xcafd --> 因keil編譯有錯誤,所以用hex方式
   mystr[1] = 0xFD;
不過這個只能算補救方法。
作者: happybbs163    時間: 2022-10-26 08:39
hp34401a 發表于 2018-5-26 09:52
新KEIL C51 0XFD補丁。支持KEIL5 及以下所有版本!

清測有效,Keil版本V952
作者: macadam    時間: 2023-1-21 00:02
學習了,我就說為什么我的漢字一直顯示出錯。
作者: bjdhjy888    時間: 2023-11-13 09:15
跪謝 已解決 大神牛逼
作者: angmall    時間: 2025-6-22 09:27
關于 Keil 軟件中 0xFD 問題的說明
眾所周知,Keil 軟件的 8051 和 80251 編譯器的所有版本都有一個叫做 0xFD 的問題,主要表現在字
符串中不能含有帶 0xFD 編碼的漢字,否則 Keil 軟件在編譯時會跳過 0xFD 而出現亂碼。
關于這個問題,Keil 官方的回應是:0xfd、0xfe、0xff 這 3 個字符編碼被 Keil 編譯器內部使用,所
以代碼中若包含有 0xfd 的字符串時,0xfd 會被編譯器自動跳過。
Keil 官方提供的解決方法:在帶有 0xfd 編碼的漢字后增加一個 0xfd 即可。例如:
printf("數學"); //Keil 編譯后打印會顯示亂碼
printf("數\xfd 學"); //顯示正常
這里的“\xfd”是標準 C 代碼中的轉義字符,“\x”表示其后的 1~2 個字符為 16 進制數!癨xfd”表
示將 16 進制數 0xfd 插入到字符串中。
由于“數”的漢字編碼是 0xCAFD,Keil 在編譯時會將 FD 跳過,而只將 CA 編譯到目標文件中,后
面通過轉義字符手動再補一個 0xfd 到目標文件中,就形成完整的 0xCAFD,從而可正常顯示。
關于 0xFD 的補丁網上有很多,基本只對舊版本的 Keil 軟件有效。打補丁的方法均是在可執行文件
中查找關鍵代碼[80 FB FD],并修改為[80 FB FF],這種修改方法查找的關鍵代碼過于簡單,很容易修改
到其它無關的地方,導致編譯出來的目標文件運行時出現莫名其妙的問題。所以,代碼中的字符串有包
含如下的漢字時,建議使用 Keil 官方提供的解決方法進行解決
GB2312 中,包含 0xfd 編碼的漢字如下:
褒餅昌除待諜洱俘庚過糊積箭燼君魁
例籠慢謬凝琵訖驅三升數她聽妄錫淆
旋妖引育札正鑄 佚冽邶埤犖蔟摭啐
幘獫愷泯潺嫗紈琮槧輦挲臊忑睚銓稞
瘕頎螨籪酏觚鳊鼾
另外,Keil 項目路徑名的字符中也不能含有帶 0xFD 編碼的漢字,否則 Keil 軟件會無法正確編譯此
項目。





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 中文字幕在线人 | 一区二区在线免费观看 | 久久久精品一区二区 | 三级视频网站 | 精品国产91乱码一区二区三区 | 亚洲www啪成人一区二区 | 小h片免费观看久久久久 | 一区二区三区国产在线观看 | 日韩在线精品强乱中文字幕 | 毛片在线免费 | 91不卡在线| 人人鲁人人莫人人爱精品 | 欧美日韩精品一区二区三区蜜桃 | 日韩中文字幕免费在线观看 | 涩涩99| 免费观看日韩av | 欧美视频免费在线 | 一区二区三区免费 | 亚洲一区免费在线 | 国产日韩欧美在线播放 | 久久最新 | 日韩精品二区 | 欧美成年黄网站色视频 | 人成精品 | 久草免费视 | 日本天堂视频 | 国产激情视频 | 国产成人精品一区二区三区在线 | 伊人艹| 久久99视频 | 欧美一级黄色网 | 国内精品久久精品 | 欧美午夜影院 | 免费成人高清在线视频 | 在线观看黄色大片 | 成人免费在线网 | 日韩一二区| 999精品在线观看 | 少妇一级淫片aaaaaaaaa | 欧美视频二区 | 日韩国产欧美在线观看 |