找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1444|回復(fù): 0
收起左側(cè)

lcd12864測試程序 適合stc89c52rc

[復(fù)制鏈接]
ID:812531 發(fā)表于 2021-1-25 23:37 | 顯示全部樓層 |閱讀模式
本帖最后由 朝朝1 于 2021-1-26 15:44 編輯

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define LCD_data P0
sbit LCD_RS=P1^0;
sbit LCD_RW=P1^1;
sbit LCD_EN=P2^5;
sbit LCD_PSB=P1^3;
sbit dula=P2^0;
sbit wela=P2^1;
sbit cs88=P2^2;
sbit key=P3^4;

void delayms(unsigned int xms)
{
  unsigned i,j;
         for(i=xms;i>0;i--)
            for(j=110;j>0;j--);
}
void cmg88()
{
dula=0;
        P0=0x00;
        dula=0;
        cs88=0x00;
        P0=0x00;
}
#define delayNOP();{_nop_();_nop_();_nop_();_nop_();};
uchar IRDIS[2] ;
uchar IRCOM[4] ;
void delay0 (uchar x); //x*0.14MS
void beep();
void dataconv() ;
void lcd_pos(uchar X,uchar Y);
void delay(int ms)
{
while (ms--)
{
uchar i;
for (i=0;i<250;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}}
bit lcd_busy()
{
bit result ;
LCD_RS=0;
LCD_RW=1;
LCD_EN=1;
delayNOP();
result = (bit)(P0&0x80);
LCD_EN=0;
return (result) ;
}
void lcd_wcmd(uchar cmd)
{
while(lcd_busy()) ;
LCD_RS=0;
LCD_RW=0;
LCD_EN=0;
_nop_();
_nop_();
P0=cmd;
delayNOP ()
LCD_EN=1;
delayNOP ()
LCD_EN=0;
}
void lcd_wdat(uchar dat)
{
while(lcd_busy()) ;
LCD_RS=1;
LCD_RW = 0;
LCD_EN=0;
P0=dat;
delayNOP () ;
LCD_EN=1;
delayNOP ();
LCD_EN=0;
}
void gotoxy(unsigned char y, unsigned char x,uchar *str)
{
        if(y==1)
                lcd_wcmd(0x80|x);
        if(y==2)
        lcd_wcmd(0x90|x);
        if(y==3)
                lcd_wcmd((0x80|x)+8);
        if(y==4)
      lcd_wcmd((0x90|x)+8);
                                  while(*str!='\0')
        {
                lcd_wdat(*str);
                str++;
        }
}
/*
void print(uchar *str)
{
        while(*str!='\0')
        {
                lcd_wdat(*str);
                str++;
        }
}
*/
void lcd_init()
{
LCD_PSB=1;
lcd_wcmd(0x34) ;
delay(5) ;
lcd_wcmd(0x30) ;
delay(5) ;
lcd_wcmd(0x0c) ;
delay(5) ;
lcd_wcmd(0x01) ;
delay(5) ;
}
main()
{
        
        unsigned char i;
lcd_init();

        while(1)
        {
        //lcd_wcmd(0x80+7);        
        //lcd_wdat('0'+i);
        //delayms(5);
        
        //if(key==0)
        //{
                //delayms(5);
        //        if(key==0)
//        i=3;
               
        //        while(!key);
//        }
        gotoxy(3,0,"考研路上不孤單");
               
}        
}


回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表