|
為什么用Proteus 8 Professional仿真就可以顯示,下到單片機就沒反應
#include <STC15W4Kxx.H>
#include <intrins.h>
sbit SCK =P2^0;
sbit LCD_RS =P2^0;
sbit RCK =P2^1;
sbit LCD_EN=P2^1;
sbit DIN =P2^2;
void Delay(unsigned int t) //延時
{
unsigned int x,y;
for(x=t;x>0;x--)
for(y=100;y>0;y--);
}
void Weite_595(unsigned char dat)//寫入595
{
unsigned char i;
for(i=0;i<8;i++)
{
DIN=(dat&0x80);
dat<<=1;
SCK=0;
_nop_();
_nop_();
SCK=1;
}
}
void W_LCD_COM(unsigned char com) //寫指令
{
Weite_595(com);
LCD_RS=0;
Delay(5);
Delay(5);
RCK=1; //令595輸出,并用EN輸出一個高脈沖
Delay(5);
RCK=0;
}file:///D:\Tencent Files\277259602\Image\C2C\@W28R$F$M92XL1J_WQH{D4V.png
void W_LCD_Dat(unsigned char dat) //寫數據
{
Weite_595(dat);
Delay(5);
LCD_RS=1;
Delay(5);
RCK=1; //令595輸出,并用EN輸出一個高脈沖
Delay(5);
RCK=0;
}
void W_LCD_Str(unsigned char *s)
{
while(*s)
W_LCD_Dat(*s++);
}
void LCD_Init()
{
W_LCD_COM(0x38); Delay(50);
W_LCD_COM(0x38); Delay(50);
W_LCD_COM(0x0c);
W_LCD_COM(0x06);
W_LCD_COM(0x01); Delay(50);
W_LCD_COM(0x80); W_LCD_Str("1234567890abcdef");
W_LCD_COM(0xc0); W_LCD_Str("fedcba0987654321");
}
void main()
{
LCD_Init();
while(1);
}
file:///D:\Tencent Files\277259602\Image\C2C\@W28R$F$M92XL1J_WQH{D4V.png
|
|