标题: 我下载的程序显示在12864里面都是乱码是怎么回事 [打印本页]
作者: 黄瓜芝麻酱紫 时间: 2017-4-29 22:30
标题: 我下载的程序显示在12864里面都是乱码是怎么回事
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define p0 P0
uchar code table1[]={"μ±Ç°Î¶è:"};
uchar code table2[]={"ÂíàÕ¸ê±ú1¤×÷êò!"};
uchar code table3[]={"éãê϶è"};
uchar code table4[]={"Æ«¸ß"};
uchar code table5[]={"êêòË"};
uchar code table6[]={"Æ«μí"};
sbit ds = P1^4;
sbit rs=P2^5;
sbit rw=P2^6;
sbit en=P2^7;
void delay(uint k) //Ñóê±oˉêy
{
uint i,j;
for(i=0;i<k;i++)
for(j=0;j<121;j++);
}
void wcode(uchar c) //D′Ãüáî
{
rs=0;
rw=0;
en=0;
P0=c;
delay(5);
en=1;
delay(5);
en=0;
delay(5);
}
void wdata(uchar date) //D′êy¾Y
{
rs=1;
rw=0;
en=0;
P0=date;
delay(5);
en=1;
delay(5);
en=0;
delay(5);
}
void init() //128643õê¼»ˉ
{
wcode(0x30);
delay(5);
wcode(0x0c);
delay(5);
wcode(0x01);
delay(5);
}
//=========================================1820===============
void dsInit()
{
//¶Ôóú11.0592MHzê±Öó, unsigned intDíμÄi, ×÷ò»¸öi++2ù×÷μÄê±¼ä′óóúÎa8us
unsigned int i;
ds = 0;
i = 100; //à-μíÔ¼800us, ·ûoÏD-òéòaÇóμÄ480usòÔéÏ
while(i>0) i--;
ds = 1; //2úéúò»¸öéÏéyÑØ, ½øèëμè′yó|′e×′ì¬
i = 4;
while(i>0) i--;
}
void dsWait()
{
unsigned int i;
while(ds);
while(~ds); //¼ì2aμ½ó|′eÂö3å
i = 4;
while(i > 0) i--;
}
bit readBit()
{
unsigned int i;
bit b;
ds = 0;
i++; //Ñóê±Ô¼8us, ·ûoÏD-òéòaÇóÖáéù±£3Ö1us
ds = 1;
i++; i++; //Ñóê±Ô¼16us, ·ûoÏD-òéòaÇóμÄÖáéùÑóê±15usòÔéÏ
b = ds;
i = 8;
while(i>0) i--; //Ñóê±Ô¼64us, ·ûo϶áê±Ï¶2»μíóú60usòaÇó
return b;
}
unsigned char readByte()
{
unsigned int i;
unsigned char j, dat;
dat = 0;
for(i=0; i<8; i++)
{
j = readBit();
//×îÏè¶á3öμÄêÇ×îμíλêy¾Y
dat = (j << 7) | (dat >> 1);
}
return dat;
}
void writeByte(unsigned char dat)
{
unsigned int i;
unsigned char j;
bit b;
for(j = 0; j < 8; j++)
{
b = dat & 0x01;
dat >>= 1;
//D′"1", ½«DQà-μí15usoó, Ôú15us~60usÄú½«DQà-¸ß, ¼′íê3éD′1
if(b)
{
ds = 0;
i++; i++; //à-μíÔ¼16us, ·ûoÅòaÇó15~60usÄú
ds = 1;
i = 8; while(i>0) i--; //Ñóê±Ô¼64us, ·ûoÏD′ê±Ï¶2»μíóú60usòaÇó
}
else //D′"0", ½«DQà-μí60us~120us
{
ds=0;
i=8; while(i>0) i--; //à-μíÔ¼64us, ·ûoÅòaÇó
ds=1;
i++;i++; //Õû¸öD′0ê±Ï¶1y3ìòѾ-3¬1y60us, Õaàï¾í2»óÃÏñD′1ÄÇÑù, ÔùÑóê±64usáË
}
}
}
//ÏòDS18B20·¢Ëíζè×a»»Ãüáî
void sendChangeCmd()
{
dsInit();
dsWait();
delay(1);
writeByte(0xcc); //D′èëìø1yDòáDoÅÃüáî×Ö Skip Rom
writeByte(0x44); //D′èëζè×a»»Ãüáî×Ö Convert T
}
//ÏòDS18B20·¢Ëí¶áè¡êy¾YÃüáî
void sendReadCmd()
{
dsInit();
dsWait();
delay(1);
writeByte(0xcc); //D′èëìø1yDòáDoÅÃüáî×Ö Skip Rom
writeByte(0xbe); //D′èë¶áè¡êy¾Yáî×Ö Read Scratchpad
}
//»ñè¡μ±Ç°Î¶èÖμ
int getTmpValue()
{
unsigned int tmpvalue;
int value; //′æ·ÅζèêyÖμ
float t;
unsigned char low, high;
sendReadCmd();
//á¬Dø¶áè¡á½¸ö×Ö½úêy¾Y
low=readByte();
high=readByte();
//½«¸ßμíὸö×Ö½úoÏ3éò»¸öÕûDαäá¿
//¼ÆËã»úÖD¶Ôóú¸oêyêÇàûóÃ21Âëà′±íê¾μÄ
//èôêǸoÖμ, ¶áè¡3öà′μÄêyÖμêÇóÃ21Âë±íê¾μÄ, ¿éÖ±½ó¸3Öμ¸øintDíμÄvalue
tmpvalue=high;
tmpvalue<<=8;
tmpvalue|=low;
value=tmpvalue;
t=value*0.0625;
value=t*100+(value>0?0.5:-0.5);
return value;
}
void display(int v)
{
unsigned char count;
unsigned char datas[5];
datas[0]=v/10000;
datas[1]=v%10000/1000;
datas[2]=v%1000/100;
datas[3]=v%100/10;
datas[4]=v%10;
wcode(0x88+5);
if(v<0)
{
wdata('-');
}
else
{
wdata(' ');
}
if(datas[0]!=0)
{
wdata('0'+datas[0]);
}
for(count=1; count<5;count++)
{
wdata('0'+datas[count]);
if(count==2)
{wdata('.');}
}
}
void temperaturealarm(int b)
{unsigned char i;
if(b>=3300){wcode(0x98+1);
for(i=0;i<4;i++)
{wdata(table4[i]);
}
}
else if(2200<=b&b<3300){wcode(0x98+1);
for(i=0;i<4;i++)
{wdata(table5[i]);
}
}
else if(b<2200){wcode(0x98+1);
for(i=0;i<4;i++)
{wdata(table6[i]);}
}
}
void main()
{
unsigned char i=0;
init();
delay(200);
wcode(0x80+0x00);
for(i=0;i<16;i++)
{wdata(table2[i]);
}
wcode(0x88);
for(i=0;i<10;i++)
{wdata(table1[i]);
}
wcode(0x98+0x05);
for(i=0;i<6;i++)
{wdata (table3[i]);}
while(1)
{
display(getTmpValue());
temperaturealarm(getTmpValue());
sendChangeCmd();
}
}
-
IMG_20170429_222340_HDR.jpg
(1.76 MB, 下载次数: 57)
-
-
快12864温度.zip
22.45 KB, 下载次数: 5
作者: wc86110 时间: 2017-4-30 01:36
把下面双引号中改成中文或英文都可以,但不可太长
uchar code table1[]={"μ±Ç°Î¶è:"};
uchar code table2[]={"ÂíàÕ¸ê±ú1¤×÷êò!"};
uchar code table3[]={"éãê϶è"};
uchar code table4[]={"Æ«¸ß"};
uchar code table5[]={"êêòË"};
uchar code table6[]={"Æ«μí"};
作者: zl2168 时间: 2017-4-30 07:39
本帖最后由 zl2168 于 2017-4-30 17:45 编辑
网上下载的程序大都有bug。
LCD12864显示屏显示汉字
⒈ AMPIRE 12864型LCD显示屏简介
⑴ 引脚功能 …
⑵ 显示屏数据结构 …
⒉ 汉字编码
⑴ 汉字编码概述 …
⑵ 汉字点阵显示代码 …
⑶ 汉字点阵取模软件 …
⒊ 电路和应用程序 …
⒋ Keil调试 …
⒌ Proteus仿真 …
先Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机实用教程——基于Keil C和Proteus》高等教育出版社ISBN 978-7-04-044532-9
仿真电路和Hex文件能在高等教育出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。
作者: fefen0 时间: 2017-4-30 09:49
你贴的程序的都是乱码,还是转换一下吧。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |