標題: 挺簡單的程序 怎么就是亂碼啊 [打印本頁]

作者: ヽミ慵懶_、陽光    時間: 2013-11-19 17:06
標題: 挺簡單的程序 怎么就是亂碼啊
#include<reg52.h>
#define uchar unsigned char
uchar key,key1;
sbit CLK=P2^1;
sbit IO=P2^0;
sbit RST=P2^4;
sbit lcdrs=P1^0;
sbit lcdwr=P1^1;
sbit lcden=P2^5;
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;
void delay(uchar i)
{
uchar x,n;
for(x=i;x>0;x--)
for(n=1250;n>0;n--);
}

   void write_byte(uchar dat)
{ uchar a ;
ACC=dat;
RST=1;
for(a=8;a>0;a--)
{
  IO=ACC0;
  CLK=0;
  CLK=1;
  ACC=ACC>>1;
}
}
uchar read_byte()
{ uchar a;
RST=1;
for(a=8;a>0;a--)
{
  ACC7=IO;
  CLK=1;
  CLK=0;
  ACC=ACC>>1;
}
return (ACC);
}
void write_1302(uchar add,uchar dat)
{
RST=0;
CLK=0;
RST=1;
write_byte(add);
write_byte(dat);
CLK=1;
RST=0;
}
uchar read_1302(uchar add)
{
uchar temp;
RST=0;
CLK=0;
RST=1;
write_byte(add);
temp=read_byte();
CLK=1;
RST=0;
return(temp);
}
uchar BCD(uchar bcd)
{
uchar Decimal;
Decimal=bcd>>4;
return(Decimal=Decimal*10+(bcd&=0x0F));
}

void write_con(uchar con)
{
lcdrs=0;
lcdwr=0;
P0=con;
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar dat)
{
lcdrs=1;
lcdwr=0;
P0=dat;
lcden=1;
delay(5);
lcden=0;
}
void init()
{
RST=0;
CLK=0;
lcden=0;
   write_con(0x38);
   write_con(0x0c);
   write_con(0x06);   //光標自動向右  字符不移動
   write_con(0x01);   //清屏
   write_con(0x80+0x05);
}
void main()
{
init();
RST=0;
CLK=0;
write_1302(0x8e,0x00);
write_1302(0x80,0x85);
    read_1302(0x81);
key1=BCD(key);
write_data(key1);
}

作者: admin    時間: 2013-11-23 19:50
驅(qū)動液晶屏嗎?
作者: ヽミ慵懶_、陽光    時間: 2013-11-24 14:00
admin 發(fā)表于 2013-11-23 19:50
驅(qū)動液晶屏嗎?

對的  程序運行都對  就加了讓1602開頭是從右往左滑動出來的程序就亂碼了  ……兩個程序本來都可以正常運行  加一起就不對…………
作者: liuzhaoxin1020    時間: 2016-12-17 12:13
什么運行結(jié)果
作者: zl2168    時間: 2016-12-17 13:40
liuzhaoxin1020翻箱底啦???怎么把2013、14、15的老黃歷都翻出來,什么意思?????
作者: lincipeng15    時間: 2016-12-17 14:01
好像沒毛病吧,再試試唄




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1