|
//串并行直接接串行 复位接高 片选信号接高
//小弟 检查了好几遍 思维定式了 求前辈 帮忙指点下
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit sid=P3^1;//数据口
sbit clk=P3^2;//时钟信号 void DelayMs(uchar n) //延时
{
uchar i;
while(n--)
{
for(i=0; i<200; i++)
_nop_();
}
}
void lcd_com(uchar dat,uchar str)
{
uint i,j,temp;
temp=str;
DelayMs(1);
//sid=0;
clk=0;
sid=1;
for(i=0;i<5;i++)
{
clk=1;
clk=0;
}
sid=0;
clk=1;
clk=0;
if(dat==1)
sid = 1;
else sid= 0;
clk = 1;
clk = 0;
sid=0;
clk=1;
clk=0;
for(j=0;j<2;j++)
{
for(i=0;i<4;i++)
{
//temp=str;
temp <<=1;
sid=CY;
clk=1;
clk=0;
}
sid=0;
for(i=0;i<4;i++)
{
clk=1;
clk=0;
}
}
//sid=0;
}
void init()
{
lcd_com(0,0x30);
lcd_com(0,0x0c);
lcd_com(0,0x01);
lcd_com(0,0x02);
lcd_com(0,0x80);
}
void Lcd_DisplayString(uchar x,uchar y,uchar *str)
{
unsigned char temp;
switch(y)
{
case 1:x|=0x80;break;
case 2:x|=0x90;break;
case 3:x|=0x88;break;
case 4:x|=0x98;break;
default:break;
};
// lcd_com(0,0x90);//行地址:首行地址:0x80,第二行地址:0x90,第三行地址:0x88,第四行0x98
lcd_com(0,x);
temp= *str;
while(temp!=0)
{
lcd_com(1,temp);
temp=*(++str);
}
}
void main()
{
init();
Lcd_DisplayString(0,2,"大连民族学院");
while(1);
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|