⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tlc5510_c51.c

📁 用51单片机实现的串行AD和DA的源程序
💻 C
字号:
#include <SST89x5x4.H>
#include<intrins.h>
#define lcd_bus P1
#define uint unsigned int
#define uchar unsigned char
//sbit clk=P3^7;

sbit rs=P0^0;
sbit rw=P0^1;
sbit e =P0^2;
//sbit ee=P2^4;
uchar temp[16];

delay(uchar d)
{
        while(--d);
}


/**********判断忙标志,返回的是一个位BF**********/
bit lcd_busy(void)
{
        uchar bflag;     
        rs=0;
        rw=1;
        _nop_();
        e=1;
	    _nop_();
        lcd_bus=0xff;
        bflag=lcd_bus;
        e=0;
        return(bit)(bflag&0x80);    //BF=1 busy   
}



/*********写命令,有两个参数,第一个是要写的命令控制字,

       第二个是用来控制是否进行忙标志的判断。

  busyflag=1:判断;为 0:不判断****************/
void lcd_wrcmd(uchar cmd)
{
        while(lcd_busy());
        lcd_bus=cmd;
        rs=0;
        rw=0;
        _nop_();
        e=1;
        _nop_();
        _nop_();
        e=0; 
}




/************向液晶片写数据***************/

void lcd_wrdata( uchar lcddata)
{

        while(lcd_busy());
        lcd_bus=lcddata;
        rs=1;
        rw=0;
        _nop_();
        e=1;
        _nop_();
        _nop_();
        e=0;
}

void lcd_ini(void)
{

        lcd_wrcmd(0x38); 
        delay(100);
        lcd_wrcmd(0x0c);
		delay(100);
        lcd_wrcmd(0x06);
		delay(100);
        lcd_wrcmd(0x01);
		delay(100);
}



void display(uchar cmd,uchar code *str)
{
        uchar i=0;
		lcd_wrcmd(cmd);
		while(str[i]!='\0')
		{
		    lcd_wrdata(str[i]);
			i++;		    		    
		}
}



serial() interrupt 4 using 2
{   
    uchar i;
	ES=0;
    for(i=0;i<16;i++)
	{
		while(RI==0);
		RI=0;
        temp[i]=SBUF;
	}
	ES=1;
}


main()
{
    unsigned char k=0; 
	uchar i;
	uchar code s[]="Just a Test!";
	SCON=0x50;
    TMOD=0X20;
    TH1=0xfd;
    TL1=0xfd;  
    TR1=1;
	ES=1;
	EA=1;
	lcd_ini();
    display(0x84,s);
	while(1)
	{
	    lcd_wrcmd(0xc0);
		for(i=0;i<16;i++)lcd_wrdata(temp[i]);

	}
     
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -