各位大大,我在網(wǎng)上看到的一個(gè)程序下載到單片機(jī)中,成功了,但是不知道他是串口還是并口傳輸;測(cè)試PSB引腳電壓為3.3V穩(wěn)定;測(cè)試D0-D7分別在1.3V-2.5V之間,但是數(shù)值跳動(dòng);不明白是串口還是并口,附上程序。
#ifndef __yejing_H__
#define __yejing_H__
#define uchar unsigned char
#define uint unsigned int
uchar CMDAddress;
sbit RS=P2^5;
sbit RW=P2^6;
sbit EN=P2^7;
void delay(uchar t) //延時(shí)函數(shù)
{
uint x,y;
for(x=t;x>0;x--)
for(y=110;y>0;y--);
}
bit busy() //判忙標(biāo)志位
{
bit flag;
RS=0;
RW=1;
EN=1;
flag=(bit)(P0&0x80);
EN=0;
return flag;
}
void write_cmd(uchar cmd) //寫命令字
{
while(busy());
RW=0;
RS=0;
delay(5);
P0=cmd;
EN=1;
delay(5);
EN=0;
delay(5);
}
void write_date(uchar dat) //寫數(shù)據(jù)
{
while(busy());
RW=0;
RS=1;
delay(5);
P0=dat;
EN=1;
delay(5);
EN=0;
delay(5);
}
void init() //初始化
{
delay(200);
write_cmd(0x30); //Extended Function Set(功能設(shè)定控制字)基本指令集 ,8位
delay(1);
write_cmd(0x30); //Function Set 基本指令集
delay(1);
write_cmd(0x0c); //(顯示開(kāi)關(guān)控制字),全部顯示ON,游標(biāo)OFF,閃爍OFF
delay(1);
write_cmd(0x01); //清屏控制字
delay(15);
write_cmd(0x06); //Entry Mode (進(jìn)入設(shè)定點(diǎn)控制字)光標(biāo)從左向右加一位移動(dòng)
delay(1);
}
void SetAddress(uchar x,uchar y) //設(shè)置輸入數(shù)據(jù)位置
{
switch(y)
{
case 0:CMDAddress=0x80+x;break;
case 1:CMDAddress=0x90+x;break;
case 2:CMDAddress=0x88+x;break;
case 3:CMDAddress=0x98+x;break;
}
write_cmd(CMDAddress);
}
void putstring(uchar x,uchar y,uchar *pdate) //該行是否完
{
SetAddress(x,y);
while(*pdate!='\0')
{
write_date(*pdate++);
}
}
void show() //顯示"溫度"
{
putstring(0,0,"溫度:"); //第一排首位子顯示"溫度"兩字
putstring(0,3,"液晶溫度顯示"); //第三排首位子顯示"液晶溫度顯示"
}
void display(uint Temp ) // 顯示溫度值
{
uint t1,t2,t3 ; //,t0,t1,t2
t1=Temp/100%10;
t2=Temp/10%10;
t3=Temp%10;
write_cmd(0x93);
write_date(0x30+t1);
write_date(0x30+t2);
write_date('.');
write_date(0x30+t3);
write_date(0xA1);
write_date(0xE6);
}
#endif
|