完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
https://bbs.elecfans.com/jishu_545036_1_1.html 这是之前的帖子,现在的情况是串口助手与蓝牙的传输解决了一部分,发送英文数字能返回了,中文还是出了点问题,这是我的程序: #include #include #define uint unsigned int #define uchar unsigned char #define lcddata P2 #define busy 0x80 //延时子程序模块 //********************************************** void mdelay(uint delay) { uint i; for(;delay>0;delay--) {for(i=0;i<80;i++) //1ms延时. {;} } } //************************************************ void show(); //液晶显示程序 //**************************************** //12864液晶显示部分子程序模块 //**************************************** ***it rs=P3^7;//定义引脚 ***it rw=P3^6; ***it e=P3^5; ***it PSB = P0^3; //PSB脚为12864-12系列的串、并通讯功能切换,使用8位并行接口,PSB=1 void wr_d_lcd(uchar content); void wr_i_lcd(uchar content); void clrram_lcd (void); void init_lcd(void); void busy_lcd(void); void rev_row_lcd(uchar row); void rev_co_lcd(uchar row,uchar col,uchar mode); void clr_lcd(void); void wr_co_lcd(uchar row,uchar col,uchar lcddata1,uchar lcddtta2); void wr_row_lcd(uchar row,char *p); uint id=0; uchar data table[30]; //********************************** //液晶初始化 //********************************** void init_lcd(void) { wr_i_lcd(0x06); /*光标的移动方向*/ wr_i_lcd(0x0c); /*开显示,关游标*/ } //*********************************** //填充液晶DDRAM全为空格 //********************************** void clrram_lcd (void) { wr_i_lcd(0x30); wr_i_lcd(0x01); } //*********************************** //对液晶写数据 //content为要写入的数据 写入地址 //*********************************** void wr_d_lcd(uchar content) { busy_lcd(); rs=1; rw=0; lcddata=content; e=1; ; e=0; } //******************************** //对液晶写指令 //content为要写入的指令代码 写入数据 //***************************** void wr_i_lcd(uchar content) { busy_lcd(); rs=0; rw=0; lcddata=content; e=1; ; e=0; } //******************************** //液晶检测忙状态 //在写入之前必须执行 //******************************** void busy_lcd(void) { lcddata=0xff; rs=0; rw=1; e =1; while(busy==1); e =0; } //******************************** //指定要显示字符的坐标 //******************************* void gotoxy(unsigned char y, unsigned char x) { if(y==1) wr_i_lcd(0x80|x); if(y==2) wr_i_lcd(0x90|x); if(y==3) wr_i_lcd((0x80|x)+8); if(y==4) wr_i_lcd((0x90|x)+8); } //********************************** //液晶显示字符串程序 //********************************** void print(uchar *str) { while(*str!=' |