標題: 理工男的浪漫,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--);
}
/*寫指令函數(shù)*/
/*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;
}
/*寫顯示數(shù)據(jù)*/
/*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);                //清除顯示內(nèi)容
        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 發(fā)表于 2017-12-6 01:03
挺不錯的。謝謝分享、

哈哈,一般啦,還是剛學液晶時寫的呢,哈哈
作者: zzzz888    時間: 2017-12-17 20:41
看著挺不錯
作者: 唯戀一人心    時間: 2018-2-2 20:33
zzzz888 發(fā)表于 2017-12-17 20:41
看著挺不錯

剛學習51時寫著玩的
作者: weikai1994    時間: 2018-2-3 12:28
樓主很強大,學習了
作者: qjzyx    時間: 2018-2-3 13:18
謝謝分享
作者: 唯戀一人心    時間: 2018-2-4 18:53
weikai1994 發(fā)表于 2018-2-3 12:28
樓主很強大,學習了

嘿嘿,一般啦,服務人民嗎
作者: 唯戀一人心    時間: 2018-2-4 18:54
qjzyx 發(fā)表于 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.torrancerestoration.com/bbs/) Powered by Discuz! X3.1