這是我在本論壇的51hei-5開發(fā)板上寫的一個程序,想在12864上顯示:一二三四五六七,可是總是出現(xiàn)這樣的亂碼,請各位大哥看看,謝謝了,十分感謝!!!
#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcd_rs=P3^5; //數(shù)據(jù)命令選擇口
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) //延時函數(shù)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delay4us() //短延時
{
_nop_();
_nop_();
_nop_();
_nop_();
}
/* 檢查LCD忙狀態(tài) */
/*lcd_busy為1時為忙,為0時為閑,可寫指令數(shù)據(jù)*/
void lcd_busy()
{
uchar busy;
do
{
lcd_en=0;
lcd_rs=0;
lcd_rw=1;
delay4us();
lcd_en=1;
busy=P0; //在使能端的上升沿讀走數(shù)據(jù)
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;
}
/*寫顯示數(shù)據(jù)到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;
}
/*設(shè)定顯示位置*/
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); //顯示開光標(biāo)關(guān)
delay(5);
write_command(0x01); //清除LCD顯示內(nèi)容
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);
}
如果我沒有猜錯你是用keil編譯的吧
你這種情況很有可能是,沒有打漢字內(nèi)碼0xfd問題的補(bǔ)丁,導(dǎo)致只要包含有包含0xFD內(nèi)碼的漢字均不能正常顯示,這是keil的一個臭名昭著的Bug, keil是德國的,對漢字的兼容不太好需要打這個補(bǔ)丁才能正常顯示.
文件下載:http://www.raoushi.com/ziliao/file/0xfd.rar
文件說明:keil c51在編譯的時候會將0xfd的字符(有些漢字含該字符的內(nèi)碼)過濾, 而導(dǎo)致程序出錯.特別是在做液晶漢字顯示時. 針對這個bug.編寫了這個補(bǔ)丁. 請下載之后放到你的keil\c51\bin 目錄里,運(yùn)行這個程序點(diǎn)擊start.就可以了.
QQ截圖20150503143831.jpg (64.06 KB, 下載次數(shù): 509)
admin 發(fā)表于 2010-7-22 04:45
如果我沒有猜錯你是用keil 2編譯的吧
你這種情況很有可能是,沒有打漢字內(nèi)碼0xfd問題的補(bǔ)丁,導(dǎo)致 ...

admin 發(fā)表于 2010-7-22 04:45
如果我沒有猜錯你是用keil編譯的吧
你這種情況很有可能是,沒有打漢字內(nèi)碼0xfd問題的補(bǔ)丁,導(dǎo)致只 ...
admin 發(fā)表于 2010-7-22 04:45
如果我沒有猜錯你是用keil編譯的吧
你這種情況很有可能是,沒有打漢字內(nèi)碼0xfd問題的補(bǔ)丁,導(dǎo)致只 ...
admin 發(fā)表于 2010-7-22 04:45
如果我沒有猜錯你是用keil編譯的吧
你這種情況很有可能是,沒有打漢字內(nèi)碼0xfd問題的補(bǔ)丁,導(dǎo)致只 ...
sglf0201 發(fā)表于 2015-5-3 14:39
keil4這問題也是一樣的解決辦法嗎,管理員身份運(yùn)行不成功怎么辦
keilfdfix2.JPG (53.83 KB, 下載次數(shù): 276)
keil_v5_fixed1.jpg (144.25 KB, 下載次數(shù): 246)
keilfdfix3.JPG (120.68 KB, 下載次數(shù): 197)
VirusTotalA.jpg (193.81 KB, 下載次數(shù): 190)
KeilFDfix_新FD補(bǔ)丁(冠銘同學(xué)版)b7.rar
96.6 KB, 下載次數(shù): 364, 下載積分: 黑幣 -5
hp34401a 發(fā)表于 2018-5-26 09:52
新KEIL C51 0XFD補(bǔ)丁。支持KEIL5 及以下所有版本!
DSCX05 發(fā)表于 2018-8-18 18:34
好用。。。。。。
hp34401a 發(fā)表于 2018-5-26 09:52
新KEIL C51 0XFD補(bǔ)丁。支持KEIL5 及以下所有版本!


最近在學(xué)習(xí)12864遇到部分漢字顯示亂碼,導(dǎo)致后面所有漢字亂碼。hp34401a 發(fā)表于 2018-5-26 09:52
新KEIL C51 0XFD補(bǔ)丁。支持KEIL5 及以下所有版本!
hp34401a 發(fā)表于 2018-5-26 09:52
新KEIL C51 0XFD補(bǔ)丁。支持KEIL5 及以下所有版本!
admin 發(fā)表于 2010-7-22 04:45
如果我沒有猜錯你是用keil編譯的吧
你這種情況很有可能是,沒有打漢字內(nèi)碼0xfd問題的補(bǔ)丁,導(dǎo)致只 ...

hp34401a 發(fā)表于 2018-5-26 09:52
新KEIL C51 0XFD補(bǔ)丁。支持KEIL5 及以下所有版本!

hp34401a 發(fā)表于 2018-5-26 09:52
新KEIL C51 0XFD補(bǔ)丁。支持KEIL5 及以下所有版本!
51hei圖片_20220119185337.jpg (122.23 KB, 下載次數(shù): 369)
20220120171010.jpg (137.13 KB, 下載次數(shù): 325)
hp34401a 發(fā)表于 2018-5-26 09:52
新KEIL C51 0XFD補(bǔ)丁。支持KEIL5 及以下所有版本!
hp34401a 發(fā)表于 2018-5-26 09:52
新KEIL C51 0XFD補(bǔ)丁。支持KEIL5 及以下所有版本!
| 歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |