我是个单片机新手,我想问一下如何在lcd1602上显示中文, 51单片机编写lcd1602显示程序,第一行显示自己的姓名,...

\u7ed9\u4e2a\u5355\u7247\u673a\u6db2\u66761602\u663e\u793a\u6c49\u5b57\u7684\u7a0b\u5e8f,\u8c22\u8c22

51\u5355\u7247\u673a\u5bf9lcd1602\u4e00\u4e9b\u57fa\u7840\u7a0b\u5e8f



#include
#define dataport P1
sbit RS=P2^ 6;
sbit RW=P2^5;
sbit EN=P2^4;
//========================

//=========================
void waitfor() //\u68c0\u6d4b\u5fd9\u4fe1\u53f7\u51fd\u6570
{
dataport=0xff;
RS=0;RW=1;_nop_(); //\u9009\u62e9\u6307\u4ee4\u5bc4\u5b58\u5668 \u8bfb\u64cd\u4f5c
EN=1;_nop_(); //\u4f7f\u80fd\u64cd\u4f5c
while(dataport&0x80); //\u5982\u679c\u6700\u9ad8\u4f4d\u662f1 \u8868\u793a1602\u6b63\u5fd9 \u539f\u5730\u8e0f\u6b65 \u5fd9\u5b8c\u540e\u82af\u7247\u4f1a\u5c06\u9ad8\u4f4d\u62c9\u4f4e
EN=0;
}
//======================
void writedata(unsigned char dataw) //\u5199\u6570\u636e\u5230lcm
{
waitfor(); //\u6d4b\u5fd9
RS=1;RW=0;_nop_(); //\u9009\u62e9\u6570\u636e\u5bc4\u5b58\u5668 \u5199\u64cd\u4f5c
dataport=dataw;_nop_(); //\u5c06\u6570\u636e\u9001\u5230\u6570\u636e\u53e3
EN=1;_nop_();_nop_();EN=0; //\u4f7f\u80fd
}
//==========================
void writecmd(unsigned char cmd) //\u5199\u547d\u4ee4\u5230lcm
{
waitfor();
RS=0;RW=0;_nop_();
dataport=cmd;_nop_();
EN=1;_nop_();_nop_();EN=0;
}
//===========================
void init(void) // \u521d\u59cb\u5316\u51fd\u6570
{
writecmd(0x38); //\u529f\u80fd\u8bbe\u5b9a 8\u4f4d\u6570\u636e\u4f20\u8f93 \u53cc\u884c\u663e\u793a
writecmd(0x0c);//\u663e\u793a\u5668\u5f00\u5173
writecmd(0x01);//\u6e05\u5c4f
writecmd(0x06);//\u5b57\u7b26\u8fdb\u5165\u6a21\u5f0f \u6bcf\u8fdb\u5165\u4e00\u4e2a\u5b57\u7b26\u5149\u6807\u5411\u53f3\u79fb\u52a8\u4e00\u683c \u539f\u6709\u5b57\u7b26\u4e0d\u52a8
//\u6211\u5728\u521a\u5f00\u59cb\u5b66\u7684\u65f6\u5019\u4e0d\u77e5\u9053\u4e0b\u4e00\u4e2a\u5b57\u7b26\u663e\u793a\u5728\u54ea \u662f\u548cAC\u503c\u6709\u5173\u8fd8\u662f\u548c\u5149\u6807\u4f4d\u7f6e\u6709\u5173?
//\u6700\u540e\u6478\u7d22\u51fa\u6765\u662f\u53ea\u548c\u5149\u6807\u5b9a\u4f4d\u6709\u5173 \u73b0\u5728\u8fd8\u662f\u4e0d\u77e5\u9053Ac\u503c\u6709\u4ec0\u4e48\u7528

}
//=========================
void location(unsigned char x,unsigned char y) //\u786e\u5b9e\u5750\u6807\u51fd\u6570
{
unsigned char temp;
temp=x&0x0f; //\u53ea\u8981x\u6570\u636e\u7684\u540e\u56db\u4f4d
if(y){temp=temp|0x40;} //\u7b2c\u4e00\u884c\u4e3a0 \u7b2c\u4e8c\u884c\u4e3a1 \u5982\u679cy=1\u5219\u5730\u5740\u52a00x40
temp|=0x80; //DDRAM\u5730\u5740\u7684\u547d\u4ee4DB7\u4e3a\u4e00
writecmd(temp);

}
//==============================
void displyonechar(unsigned char x,unsigned char y,unsigned char dataw) //\u663e\u793a\u4e00\u4e2a\u5b57\u7b26\u51fd\u6570
{
location(x,y);
writedata(dataw);
}
//=======================================
void displylistchar(unsigned char x,unsigned char y,unsigned char *p) //\u663e\u793a\u5b57\u7b26\u4e32
{
while(*p) //\u5f53\u4e00\u4e2a\u5b57\u7b26\u578b\u6570\u7ec4\u8bfb\u5b8c\u65f6*P\u6307\u7684\u4e3a\u96f6
{
displyonechar(x,y,*(p++));
x++;
}
}
//=====================================================
void writecgram(unsigned char address,unsigned char *p) //\u5199CGRAM\u7684\u6570\u636e
{
unsigned char i=8;
writecmd(address); //CGRAM\u91cc\u7684\u5730\u5740 \u521d\u59cb\u503c0x40 \u6bcf\u6b21\u52a00x80
while(i--)
{
writedata(*p);
p++;
}
}
//=====================================================
void displyonecharacter(unsigned char x,unsigned char y,unsigned char address,unsigned char *p) //\u663e\u793a\u4e00\u4e2a\u81ea\u5b9a\u4e49\u5b57\u7b26
{

unsigned char i=8;
writecmd(address); //CGRAM\u91cc\u7684\u5730\u5740 \u521d\u59cb\u503c0x40 \u6bcf\u6b21\u52a00x08
while(i--)
{
writedata(*p);
p++;
}
//============================================================
location(x,y); //\u8bbe\u5b9a\u8981\u663e\u793a\u7684\u4f4d\u7f6e
writedata((address&=0x3f)/0x08); //\u8981\u4eceCGRAM\u4e2d\u8bfb\u51fa\u6570\u636e\u57281602\u4e0a\u663e\u793a \u641e\u4e86\u534a\u5929\u53d1\u73b0CGRAM\u91cc\u7684\u5730\u5740
} //\u548cDDRAM\u91cc\u7684\u5730\u5740\u6709\u4e0a\u9762\u7684\u8f6c\u6362\u5173\u7cfb
//========================================================
void displynumber(unsigned char x,unsigned char y,unsigned long num) //\u663e\u793a\u4e00\u4e2a\u6574\u6570
{
unsigned int number[8];
int k,gh;
for(k=0;;k++)
{
*(number+k)=(unsigned int)(num%10);//\u5f3a\u5236\u7c7b\u578b\u8f6c\u6362
num=num/10;
if(num==0)break;
}
for(gh=k;gh>=0;gh--)
{
displyonechar(x,y,(*(number+gh)+48));
x++;
}
}




//\u5b57\u578b\u7801
uchar code nin[]={0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02};// "\u5e74"
uchar code yue[]={0x0f,0x09,0x0f,0x09,0x0f,0x09,0x0b,0x11};// "\u6708"
uchar code ri[]={0x1f,0x11,0x11,0x1f,0x11,0x11,0x11,0x1f};// "\u65e5"


\u663e\u793a\u6c49\u5b57

displyonecharacter(0,0,0x40,nin);
displyonecharacter(1,0,0x80,yue);
displyonecharacter(1,0,0xc0,ri);

1\u3001\u9996\u5148\u6211\u4eec\u6253\u5f00Keil \u03bcVision\u7f16\u8bd1\u5668\uff0c\u65b0\u5efa\u4e00\u4e2a\u5de5\u7a0b\uff0c\u7136\u540e\u4fdd\u5b58\u5728\u786c\u76d8\u4e0a\u7684\u4f4d\u7f6e\uff0c\u7136\u540e\u9009\u62e9Atmel-AT89C51\u5355\u7247\u673a\u4e3a\u6a21\u578b\uff0c\u5e76\u542f\u52a8\u5668\u6dfb\u52a0STARTUP.A51\u6587\u4ef6\uff0c\u7136\u540e\u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u65b0\u5efa\u4e00\u4e2aC\u6587\u4ef6\uff0c\u5e76\u5c06\u5176\u6dfb\u52a0\u5165\u5de5\u4f5c\u8def\u5f84\u3002

2\u3001\u5bfc\u516551\u5355\u7247\u673a\u7684\u5934\u6587\u4ef6\u4ee5\u53caLCD1602\u7684\u5934\u6587\u4ef6\u3002

3\u3001\u521b\u5efa\u4e00\u4e2a\u5ef6\u65f6\u51fd\u6570\uff0c\u53ef\u4ee5\u4f20\u5165\u60f3\u8981\u5177\u4f53\u5ef6\u65f6\u7684\u65f6\u957f\uff0c\u5176\u5185\u90e8\u5b9e\u73b0\u662f\u7531\u4e00\u4e2a\u4e8c\u91cd\u5faa\u73af\uff0c\u4e24\u4e2a\u5faa\u73af\u7684\u6b21\u6570\u76f8\u4e58\u79ef\u3002

4\u3001\u7136\u540e\u521b\u5efa\u5199\u547d\u4ee4\u7684\u51fd\u6570\uff0c\u6307\u5b9aRS\u548cE\u540c\u65f6\u4e3a0\u65f6\uff0c\u624d\u53ef\u4ee5\u5199\u5165\u547d\u4ee4\uff0c\u8bbe\u5b9a\u5b8c\u6210\u540e\uff0c\u5c06com\u5199\u5165\u8f93\u51fa\u7aef\u53e3\uff0c\u89c4\u5b9a\u5199\u547d\u4ee4\u65f6\uff0cE\u4e3a\u6b63\u8109\u51b2\uff0c\u7136\u540e\u7a7a\u64cd\u4f5c\u4e00\u4e2a\u673a\u5668\u5468\u671f\u7b49\u5f85\u673a\u5668\u53cd\u5e94\u3002

5\u3001\u7136\u540e\u521b\u5efa\u5199\u6570\u636e\u7684\u51fd\u6570\uff0c\u89c4\u5b9a\u5199\u6570\u636e\u65f6\uff0cE\u4e3a\u6b63\u8109\u51b2\uff0c\u89c4\u5b9a\u5f53RS=1\u548cRW=0\u65f6\u624d\u53ef\u4ee5\u5199\u5165\u6570\u636e\uff0c\u7136\u540e\u5c06\u6570\u636e\u4ece\u8f93\u51fa\u7aef\u53e3\u8f93\u51fa\uff0c\u6700\u540e\u8ba9E\u4ea7\u751f\u6b63\u8df3\u53d8\u3002

6\u3001\u7136\u540e\u521b\u5efa\u521d\u59cb\u5316LCD1602\u7684\u51fd\u6570\uff0c\u6307\u5b9a\u663e\u793a\u6a21\u5f0f\u4f4d\u4e24\u884c\u663e\u793a\uff0c5*7\uff0c8\u4f4d\u6570\u636e\u3001\u6574\u4f53\u663e\u793a\uff0c\u65e0\u5149\u6807\uff0c\u65e0\u95ea\u70c1\u3001\u5199\u5165\u4e00\u4e2a\u5b57\u7b26\u540e\u5730\u5740\u6307\u9488\u52a01\uff0c\u6700\u540e\u8fdb\u884c\u6e05\u5c4f\u64cd\u4f5c\u3002

7\u3001\u6700\u540e\u5728\u4e3b\u51fd\u6570\u4e2d\u9996\u5148\u6267\u884cLCD1602\u7684\u521d\u59cb\u5316\u51fd\u6570\uff0c\u9996\u5148\u521b\u5efa\u4e00\u4e2a\u65e0\u9650\u5faa\u73af\uff0c\u7136\u540e\u6dfb\u52a0\u4e24\u4e2a\u5b57\u7b26\u4e32\uff0c\u8fd9\u91cc\u4ee5\u4e24\u884c\u663e\u793a\u767e\u5ea6\u7ecf\u9a8c\u7684\u7f51\u5740\u4e3a\u4f8b\uff0c\u518d\u8fdb\u884c\u5ef6\u65f6\u4ee5\u53ca\u4f7f\u7528\u6e05\u5c4f\u51fd\u6570\u8fdb\u884c\u5237\u65b0\u3002

【1】1602液晶是字符型液晶,总共有2行,每行16个字符。
每个字符有效的可显示字体是5*8点阵字体。
所以通常无法显示中文。中文的显示必须选择图形点阵型液晶。
【2】特别地:你是指,显示“年月日”,之类的简单的汉字吧?
最多支持8个CGRAM字符。你可以自己做。调用字模代码0-7。
如:“年”的CGRAM单元数据为:
0FH,09H,0FH,09H,0FH,09H,13H,00H。这8个字节写入CGRAM单元00H-07H。
调用字符代码0。可以看到中文“年”。
【3】具体代码,下载相关液晶点阵模块的资料,附带程序能看到一些例程。

LCD1602是字符型LCD 不能显示汉字 只能显示数字 英文字母 一些日本字

  • 鍗曠墖鏈烘柊鎵璇锋暀涓涓棶棰,鍐呭鍦ㄤ笅闈㈢殑鍥剧墖閲岄潰
    绛旓細棣栧厛鎴戜滑瑕佺煡杩51鍗曠墖鏈鐨勮鏁板櫒鏄竴涓姞娉曡鏁板櫒锛屼篃灏辨槸璇村畠鏄粠0寮濮嬩竴鐩村姞鍒65535鏃跺啀鍔犱竴灏变細婧㈠嚭锛屽杩欐椂涓柇鎵撳紑鐨勫氨浼氫骇鐢熶竴涓腑鏂傜浜屽湪瀹冪殑宸ヤ綔鍦1鏂瑰紡鏃跺畠鏄竴涓16浣嶉暱搴︾殑锛屼篃灏辨槸鍏卞彲璁℃暟鏄2鐨16娆℃柟銆傜涓夎繖涓鏁板垵鍊兼槸浠涔堬紒锛熻繖灏辨槸杩16浣嶈鏁板櫒鍙暟鐨勬渶澶у煎拰鎴戜滑瑕佽鐨勪釜鏁...
  • 鏂版墜瀛︿範鍗曠墖鏈閫夋嫨鍝鍗曠墖鏈哄ソ?
    绛旓細1銆鏂版墜瀛︿範鍗曠墖鏈烘渶濂介夋嫨51绯诲垪鐨鍗曠墖鏈猴紝杩欎釜绯诲垪鐨勫崟鐗囨満鏈夊叧鐨勫涔犺祫鏂欐瘮杈冨锛岀綉涓婁篃姣旇緝濂芥壘锛屼篃姣旇緝瀹规槗涓婃墜锛屽彧瑕佸浼氫簡51鍗曠墖鏈猴紝鍏跺畠鐨鍗曠墖鏈哄AVR銆丄RM绛夊氨濂藉浜嗐2銆51鍗曠墖鏈烘槸瀵规墍鏈夊吋瀹笽ntel 8031鎸囦护绯荤粺鐨勫崟鐗囨満鐨勭粺绉般傝绯诲垪鍗曠墖鏈虹殑濮嬬鏄疘ntel鐨8031鍗曠墖鏈猴紝鍚庢潵闅忕潃Flash rom鎶鏈殑鍙戝睍...
  • 鏈汉鍗曠墖鏈烘柊鎵,璇锋暀涓涓皬闂 (鏀归敊)
    绛旓細鎺ヤ覆鍙e嚭鏉ヨ窡trace鏌ュ惂銆傚厛鐪媡imer鏄笉鏄甯革紝鍐嶇湅鍑犱釜鍙橀噺鍊煎涓嶅銆
  • 51鍗曠墖鏈鍏ラ棬鍩虹鐭ヨ瘑
    绛旓細I/O绔彛鍒欐湁鍥涗釜8浣嶅苟琛屾帴鍙o紝濡侾0-P3锛屽畠浠悇鑷嫭绔嬶紝浣哖0.0~P0.7闇澶栭儴涓婃媺鐢甸樆浠ョ‘淇濅綆8浣嶅湴鍧/鏁版嵁鎬荤嚎鐨勬纭伐浣溿傛瀯寤轰竴涓渶灏忓伐浣滅郴缁燂紝浣犻渶瑕5V鎴3.3V鐢垫簮銆11.0592MHz鏅舵尟銆佸浣嶇數璺紝瀹冧滑鍏卞悓椹卞姩鍗曠墖鏈杩愯锛岀‘淇濈▼搴忎粠绋冲畾鐘舵佸紑濮嬨傚璁惧LED銆佹暟鐮佺鎴栨恫鏅跺睆鐨勮繛鎺ヤ篃鑷冲叧閲嶈锛屾瘡涓...
  • 鍗曠墖鏈烘柊鎵缂栫▼闂绠鍗曞埆瑙佺瑧
    绛旓細MOVX 鐩爣鎿嶄綔鏁帮紝婧愭搷浣滄暟 鏈夋椂鍊欏崟鐗囨満闇瑕佸閮ㄧ鍙f垨璁惧鐨勬墿灞曪紝鍥犳涔熶細鏈夌浉搴旂殑鎺у埗鍙o紝鍥犳浣犺鐨勮瑷涔熷彲鑳鏄崟鐗囨満鍜屽閮ㄨ澶囪仈绯荤殑鎺у埗瀛椼傜涓鏉″氨鏄悜澶栭儴RAM浼犻侊紝浼犻佸墠锛孉 鍜 DPTR 閮借璧嬪硷紝鎵浠ヨ鐢ㄧ瓟妗堜腑鐨勭涓鍜岀浜屾潯銆傜浜屾潯鐨勬纭啓娉曪細MOV DPTR,#0FFFH ...
  • 鏂版墜瀛︿範鍗曠墖鏈
    绛旓細9锛屽綋鐒讹紝浣犲緱鎵撲竴浠藉伐浣滐紝鍏充簬鎴戜笂鎵璇寸殑锛屽紑濮嬪伐璧勪笉瑕佽姹傚お楂橈紝绛変綘鍋氬畬鍑犱釜椤圭洰鍚庯紝浣犵湡姝e浼氫簡锛屾墠璺熻佹澘鎴栦笂鍙告彁锛岃繖鏍风户缁垨鎴栧彟瀵婚珮灏辨墠鏈夎祫鏈10锛屼綘涔熸娊鐐规椂闂寸湅鐪嬨婇儹澶╃ゥ鍗佸ぉ瀛︿細鍗曠墖鏈鍜宑璇█缂栥嬩竴涔︼紝宸╁浐涓涓嬬悊璁虹煡璇嗐傛荤粨锛氬鍋氬紑鍙戞澘涓婄殑瀹為獙锛屼綘瑕佸鍙備笌杩欐牱鐨勯」鐩紑鍙戯紝...
  • 鎴戞槸鏂版墜,鎯抽棶涓涓C51鍗曠墖鏈涓庢牱鎵嶈兘璁㏄2绔彛杩炴帴鐨凩ED鐏棯鐑3娆...
    绛旓細鏈绠鍗曠殑鍔炴硶鍋氬欢鏃讹紝寤舵椂涓娆℃敼鍙樹竴娆ED鐨勭姸鎬侊紝鍏锛堜笁浜笁鐏級鍚庤繘鍏ヤ竴涓獁hile锛1锛夊惊鐜
  • 鏂版墜瀛鍗曠墖鏈,浠涔堝紑鍙戞澘姣旇緝濂
    绛旓細璨屼技浠栦滑涓や釜鐨勯兘姣旇緝璐碉紝涓夌櫨澶氾紝鍧戠埞锛佹垜鏈夐儹澶╃ゥ鐨勪豢鐪熸澘锛屽氨鏄敤杞欢浠跨湡鐨勯偅绉嶏紝鑷繁涔熶拱浜嗕竴鍧楋紝鎰熻浠跨湡鏉垮拰鐪熷疄鐨勪篃娌′粈涔堬紒濡傛灉浠ュ墠娌$帺杩囷紝鍙互鍏堢敤鐢靛瓙鐨勭帺鐜╋紝瑕佺殑璇濈暀涓猀Q锛屾垜鍙戠粰浣犮傝繖涓滆タ鎼炰笉濂界殑璇濇湁鍙兘鐑у潖鐢佃剳鐨勶紝鍛靛懙锛屽厛鐢ㄤ豢鐪熺殑閫傚簲涓涓嬶紝涓汉璁や负姣旇緝濂界偣锛
  • 鎴戞槸鍗曠墖鏈烘柊鎵,p0-p3鍙d负杈撳叆鍙f槸 鏄笉鏄鍏堝啓鍏1閭?閭h鏄敤c璇█...
    绛旓細绔彛浣滀负杈撳叆鍙f槸锛屾渶濂藉皢绔彛鍒濆鍖涓涓嬩笅 濡 P0=0xff.
  • 鍗曠墖鏈烘柊鎵鎬庝箞寮濮嬬嫭鑷紪绋,鎯缁冧竴涓猯cd1602,鐢╬rotues浠跨湡,
    绛旓細http://baike.baidu.com/view/5881209.htm RS BIT P3.0 //閲嶅懡鍚嶅洓涓狪O鍙 RW BIT P3.1 E BIT P3.2 BF BIT P2.7 //D0~D7鎺ュ湪P2鍙 ACALL CSH //璋冪敤鍒濆鍖栧嚱鏁 MOV DPTR,#YH //璋冪敤鏁扮粍YH ACALL XS //璋冪敤鏄剧ず鍑芥暟 MOV A,#0C0H //瀹氫箟鍏夋爣涓虹浜岃绗竴浣 ACALL...
  • 扩展阅读:plc基础知识指令27个 ... python和c++哪个更值得学 ... 聊天对话回复神器 ... 对话生成器 ... 我是新手 ... 自动聊天回复神器 ... plc编程必背50个程序 ... 我也常常问自己原唱 ... 李琛一首《窗外》 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网