这是我在本论坛的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); }
如果我没有猜错你是用keil编译的吧
你这种情况很有可能是,没有打汉字内码0xfd问题的补丁,导致只要包含有包含0xFD内码的汉字均不能正常显示,这是keil的一个臭名昭著的Bug, keil是德国的,对汉字的兼容不太好需要打这个补丁才能正常显示.
文件下载:http://www.51hei.com/ziliao/file/0xfd.rar
文件说明:keil c51在编译的时候会将0xfd的字符(有些汉字含该字符的内码)过滤, 而导致程序出错.特别是在做液晶汉字显示时. 针对这个bug.编写了这个补丁. 请下载之后放到你的keil\c51\bin 目录里,运行这个程序点击start.就可以了.
QQ截图20150503143831.jpg (64.06 KB, 下载次数: 458)
admin 发表于 2010-7-22 04:45
如果我没有猜错你是用keil 2编译的吧
你这种情况很有可能是,没有打汉字内码0xfd问题的补丁,导致 ...
admin 发表于 2010-7-22 04:45
如果我没有猜错你是用keil编译的吧
你这种情况很有可能是,没有打汉字内码0xfd问题的补丁,导致只 ...
admin 发表于 2010-7-22 04:45
如果我没有猜错你是用keil编译的吧
你这种情况很有可能是,没有打汉字内码0xfd问题的补丁,导致只 ...
admin 发表于 2010-7-22 04:45
如果我没有猜错你是用keil编译的吧
你这种情况很有可能是,没有打汉字内码0xfd问题的补丁,导致只 ...
sglf0201 发表于 2015-5-3 14:39
keil4这问题也是一样的解决办法吗,管理员身份运行不成功怎么办
keilfdfix2.JPG (53.83 KB, 下载次数: 209)
keil_v5_fixed1.jpg (144.25 KB, 下载次数: 175)
keilfdfix3.JPG (120.68 KB, 下载次数: 146)
VirusTotalA.jpg (193.81 KB, 下载次数: 152)
96.6 KB, 下载次数: 359, 下载积分: 黑币 -5
hp34401a 发表于 2018-5-26 09:52
新KEIL C51 0XFD补丁。支持KEIL5 及以下所有版本!
DSCX05 发表于 2018-8-18 18:34
好用。。。。。。
hp34401a 发表于 2018-5-26 09:52
新KEIL C51 0XFD补丁。支持KEIL5 及以下所有版本!
hp34401a 发表于 2018-5-26 09:52
新KEIL C51 0XFD补丁。支持KEIL5 及以下所有版本!
hp34401a 发表于 2018-5-26 09:52
新KEIL C51 0XFD补丁。支持KEIL5 及以下所有版本!
admin 发表于 2010-7-22 04:45
如果我没有猜错你是用keil编译的吧
你这种情况很有可能是,没有打汉字内码0xfd问题的补丁,导致只 ...
hp34401a 发表于 2018-5-26 09:52
新KEIL C51 0XFD补丁。支持KEIL5 及以下所有版本!
hp34401a 发表于 2018-5-26 09:52
新KEIL C51 0XFD补丁。支持KEIL5 及以下所有版本!
51hei图片_20220119185337.jpg (122.23 KB, 下载次数: 153)
20220120171010.jpg (137.13 KB, 下载次数: 116)
hp34401a 发表于 2018-5-26 09:52
新KEIL C51 0XFD补丁。支持KEIL5 及以下所有版本!
hp34401a 发表于 2018-5-26 09:52
新KEIL C51 0XFD补丁。支持KEIL5 及以下所有版本!
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |