给初学者/我写的1602程序
时间:10-02
整理:3721RD
点击:
经过我逐条的验证。把每个语句的功能和作用注释到程序后面了。 给新手参考。
# include <reg52.h>
# include "51hei.h"//
sbit e=P3^4;
sbit rs= P3^5;
sbit rw= P2^7;
code uchar temp []= {" hello! "};
code uchar temp1[]={" panjiayinihao "};
//*==========================*//
//---------函断定义-----------//
//*==========================*//
void delay5ms() //5秒延时
{
uint i,k;
for (i=0;i<18;i++)
for (k=0;k<66;k++ );
}
void delay2ms() //5秒延时
{
uint i,k;
for (i=0;i<18;i++)
for (k=0;k<30;k++ );
}
void delay400ms() //400秒延时
{
uint j,l;
for (j=0;j<120;j++)
for (l=0;l<1316;l++);
}
void com(uint com) //写命令
{
rs=0;
rw=0;
P0=com;
delay5ms(); //**先进数据后使能所以要延时一下,不写不显示.**毕选
e=1;
// delay5ms(); //可有可无。
e=0;
//delay5ms(); //可有可无。
}
void date(uint date) //写数据
{
rs=1;
rw=0;
P0=date;
delay5ms();
e=1;
e=0;
}
void init() //初使化
{
e=0;
com(0x38); //不检测忙信号 //不写出现重影
// delay2ms();
// com(0x38);
// delay2ms();
// com(0x38);
// com (0x08); //关屏
// com(0x01); //清屏,非必选
// com(0x06); // 显示光标移动设置,非必选
com(0x0f); // 00001DCB (D=开关屏/C=开关光标/B=光标闪烁)/此处为开屏/开光标/光标闪烁.
}
//*==========================*//
//---------主程序-------------//
//*==========================*//
main()
{
uchar i;
// delay400ms();
init();
com(0x80);
for(i=0;i<11;i++)
{
date(temp[i]);
}
com(0xc0);
for(i=0;i<15;i++)
{
date(temp1[i]);
}
while(1);
}
# include <reg52.h>
# include "51hei.h"//
sbit e=P3^4;
sbit rs= P3^5;
sbit rw= P2^7;
code uchar temp []= {" hello! "};
code uchar temp1[]={" panjiayinihao "};
//*==========================*//
//---------函断定义-----------//
//*==========================*//
void delay5ms() //5秒延时
{
uint i,k;
for (i=0;i<18;i++)
for (k=0;k<66;k++ );
}
void delay2ms() //5秒延时
{
uint i,k;
for (i=0;i<18;i++)
for (k=0;k<30;k++ );
}
void delay400ms() //400秒延时
{
uint j,l;
for (j=0;j<120;j++)
for (l=0;l<1316;l++);
}
void com(uint com) //写命令
{
rs=0;
rw=0;
P0=com;
delay5ms(); //**先进数据后使能所以要延时一下,不写不显示.**毕选
e=1;
// delay5ms(); //可有可无。
e=0;
//delay5ms(); //可有可无。
}
void date(uint date) //写数据
{
rs=1;
rw=0;
P0=date;
delay5ms();
e=1;
e=0;
}
void init() //初使化
{
e=0;
com(0x38); //不检测忙信号 //不写出现重影
// delay2ms();
// com(0x38);
// delay2ms();
// com(0x38);
// com (0x08); //关屏
// com(0x01); //清屏,非必选
// com(0x06); // 显示光标移动设置,非必选
com(0x0f); // 00001DCB (D=开关屏/C=开关光标/B=光标闪烁)/此处为开屏/开光标/光标闪烁.
}
//*==========================*//
//---------主程序-------------//
//*==========================*//
main()
{
uchar i;
// delay400ms();
init();
com(0x80);
for(i=0;i<11;i++)
{
date(temp[i]);
}
com(0xc0);
for(i=0;i<15;i++)
{
date(temp1[i]);
}
while(1);
}
大哥,,建议你写一个传参的延时函数。就不用这样写那么多延时函数了
不好意思。这块试的时候忘改了。呵呵。大家自己写一个吧。
不错的文档,顶一下
你好,那个51hei.h
能发一下吗
嗯,还不错,可以看一下我发的stc常用外设函数库,里面有拿来即用的1602函数库