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

📄 xiaoma.c

📁 这是个1602液晶显示单片机C语言程序 显示出来邮箱和名字
💻 C
字号:
#include   <reg51.h>  
#include   <intrins.h>   
sbit rs=P3^0; //指令和数据寄存器//
sbit rw=P3^1; //读写控制//
sbit e=P3^2; //片选//     
/*sbit SCLK = P1^0;     // 输入输出时钟I/O CLK
sbit SDOUT = P1^1;        // 数据输出DATA OUT	 
sbit CS = P1^2;      // 片选信号			*/
sbit flag=P0^7;							
unsigned char str[]="the AD result is:";
unsigned char  display[4] ;
//...........液晶现实开始..........
void wait(unsigned int w)
{ 
 int time;
 for (time=0;time <w;time++);
 return;
}

void busy()
{   
   while(1)
   {
     P0=0xff;
     rs=0;
     rw=1;
     e=1;
     if(!flag) break;
   }
 }

void w_dat(unsigned char dat) //写数据//
{
 busy(  );
 rs=1;
 rw=0;
 e=1;
 P0=dat;
 e=0;
 return;
 }

void w_com(unsigned char com) //写指令//
{
 busy( );
 
 rs=0;
 rw=0;
 e=1;
 P0=com;
 e=0;
 }

void LCD_set_xy(unsigned char x,unsigned char y)
{
 unsigned char address;
 if(x == 1)
  address =0X80 + y;
 else    
  address = 0XC0 + y;
 w_com(address);     
}

void LCD_write_string(unsigned char x,unsigned char y,unsigned char *s)
{
 LCD_set_xy(x,y); 
 while(*s)  
 {
  P0 = *s;
  w_dat(*s);   
  s++;
 }
}

void init(void) 
{
 unsigned char i;
 for (i=0;i<2;i++) 
 {
  w_com(0x38);
  wait(10);
 }
 w_com(0x38);
 w_com(0x0f);
 w_com(0x18);
 w_com(0x06);
 w_com(0x01);
 w_com(0x80);
}
//..........液晶现实模块结束........

/*
//.........AD转换模块开始.........
signed  char Conversion(void)// AD转换程序,返回AD值
{
  char i,n;
  unsigned int Bit16_data;
  CS=0;                          //低电平有效,开始转换
 for(i=0;i<6;i++)               //延时
 { 
   _nop_();
   SCLK=0;
   _nop_();
   SCLK=1;
 }
 
if(SDOUT==0)
 { 
n=17;
while(n--)
    {  
       _nop_();
       SCLK = 1;                
      { Bit16_data = Bit16_data<<1;         // 左移一位,或_crol_(temp,1)
        if(SDOUT == 1)
        Bit16_data = Bit16_data|0x0001;       // 若接收到的位为1,则数据的最后一位置1
       else 
        Bit16_data = Bit16_data&0xFFFE;       // 否则数据的最后一位置0
      }
      SCLK=0; 
    }
 CS=1;
 return(Bit16_data);
}
}
void Display(unsigned char  x)
{  
   bit s = 0 ;
   unsigned char AD ;
   if ( x < 0 )
    {
    s = 1;
    AD = -1 * x ;
     }
   else 
    {
     s=0 ;
     AD = x ;
    }
    if (s == 1 ) display[4] =  0x2d ;
    else display[3] =  0x20 ;
   display[2]= AD/100+0x30;     // 
   AD= AD%100+0x30;
   display[1] = AD/10+0x30;    //
   display[0] = AD%10+0x30;
   if ( display[2] == 0)
   display[2] = 0x20 ;
   LCD_set_xy(2,1) ;
   lcd_writedat(display[3]);
   LCD_set_xy(2,2) ;
   lcd_writedat(display[2]);
   LCD_set_xy(2,3) ;
   lcd_writedat(display[1]);
   LCD_set_xy(2,4) ;
   lcd_writedat(0x2e);
   LCD_set_xy(2,5) ;
   lcd_writedat(display[0]);

   

}

void lcd_writedat(uchar dat)
{                          
   while(busy());
    rs = 1;
    rw = 0;
    e = 0;
    P0 = dat;
    _nop_();
   _nop_();
     e = 1;
    _nop_();
    _nop_();
     e= 0; 
}


//.........AD转换模块结束..........
*/
//........主函数开始...........
void main(void)
{
   signed char  ADresult;
 init(); 
 LCD_write_string(1,0,str);
/*
ADresult=Conversion();
wait(5); 
 while(1)    
 {
   ADresult=Conversion();

   if (b1S == 1)
   {
   
   Display(ADresult) ;
   }
 }	*/
}

⌨️ 快捷键说明

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