标题: 理工男的浪漫,12864液晶表白 [打印本页]

作者: 唯恋一人心    时间: 2017-12-5 21:11
标题: 理工男的浪漫,12864液晶表白
#include<reg51.h>
#include<intrins.h>
#include<stdlib.h>
#define uchar unsigned char
#define uint unsigned int
/*端口定义*/
#define data P0
sbit rw=P2^5;
sbit rs=P2^6;
sbit en=P2^7;
sbit psb=P3^7;
uchar dis1[]={"520 1314"};
uchar dis2[]={"孙家欣"};
uchar dis3[]={"I LOVE YOU"};
uchar dis4[]={"    --齐秋阳"};
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
        for(j=110;j>0;j--);
}
/*写指令函数*/
/*rs=l,rw=l,en=高脉冲,D0-D7=指令码。*/
void write_cmd(uchar cmd)
{
        rs=0;
        rw=0;
        en=0;
        P0=cmd;
        delayms(5);
        en=1;
        delayms(5);
        en=0;
}
/*写显示数据*/
/*rs=h,rw=l,*/
void write_dat(uchar dat)
{
rs=1;
rw=0;
en=0;
P0=dat;
delayms(5);
en=1;
delayms(5);
en=0;
}
/*设定显示位置*/
void lcd_pos(uchar X,uchar Y)
{
uchar pos;
if(X==0)
        {X=0x80;}
else if(X==1)
        {X=0x90;}
else if(X==2)
        {X=0x88;}
else if(X==3)
        {X=0x98;}
pos=X+Y;
write_cmd(pos);                                //显示地址
}
//void makerand()
//{
// uint ran;
// ran=rand();
// dis1[0]=ran/10000+0x30;
// dis1[1]=ran%10000+0x30;
// dis1[2]=ran%1000/100+0x30;
// dis1[3]=ran%100/10+0x30;
// dis1[4]=ran%10+0x30;
//
// ran=rand();
// dis1[5]=ran/10000+0x30;
// dis1[6]=ran%10000+0x30;
// dis1[7]=ran%1000/100+0x30;
// dis1[8]=ran%100/10+0x30;
// dis1[9]=ran%10+0x30;
//}
/*初始化*/
void init()
{
        psb=1;                  //并口方式
        write_cmd(0x30);                //基本指令操作
        delayms(5);
        write_cmd(0x0c);                //显示开,关光标
        delayms(5);
        write_cmd(0x01);                //清除显示内容
        delayms(5);
}
void main()
{
uchar i;
delayms(10);
init();
  lcd_pos(0,0);                                                           //第二行第一个字符
i=0;
while(dis1[i]!='\0')
{
  write_dat(dis1[i]);
  i++;
}
lcd_pos(1,0);                                                           //第二行第一个字符
i=0;
while(dis2[i]!='\0')
{
  write_dat(dis2[i]);
  i++;
}
lcd_pos(2,0);                                                        //第三行第一个字符
i=0;
while(dis3[i]!='\0')
{
  write_dat(dis3[i]);
  i++;
}                                  
  lcd_pos(3,0);                                                        //第三行第一个字符
i=0;
while(dis4[i]!='\0')
{
  write_dat(dis4[i]);
  i++;
}
}


作者: 7562750    时间: 2017-12-6 01:03
挺不错的。谢谢分享、
作者: 唯恋一人心    时间: 2017-12-17 19:58
7562750 发表于 2017-12-6 01:03
挺不错的。谢谢分享、

哈哈,一般啦,还是刚学液晶时写的呢,哈哈
作者: zzzz888    时间: 2017-12-17 20:41
看着挺不错
作者: 唯恋一人心    时间: 2018-2-2 20:33
zzzz888 发表于 2017-12-17 20:41
看着挺不错

刚学习51时写着玩的
作者: weikai1994    时间: 2018-2-3 12:28
楼主很强大,学习了
作者: qjzyx    时间: 2018-2-3 13:18
谢谢分享
作者: 唯恋一人心    时间: 2018-2-4 18:53
weikai1994 发表于 2018-2-3 12:28
楼主很强大,学习了

嘿嘿,一般啦,服务人民吗
作者: 唯恋一人心    时间: 2018-2-4 18:54
qjzyx 发表于 2018-2-3 13:18
谢谢分享

应该的应该的
作者: qw99    时间: 2018-2-5 15:02
很好,非常不错,谢谢。
作者: ztb096001    时间: 2018-2-5 21:09
挺不错的。谢谢分享
作者: 蜗牛173    时间: 2020-8-13 14:13
有仿真图吗,大佬,我链接出来不亮,初学者

作者: mirror.    时间: 2020-8-14 09:52
学废了,学废了,哈哈哈哈
作者: 惊艳绝尘    时间: 2020-8-16 09:50
没仿真,链接出来也不亮




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1