欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機+1602液晶操作 [打印本頁]

作者: 妖怪呀    時間: 2019-12-30 18:17
標題: 單片機+1602液晶操作
一、實驗目的
(1)     了解Keil uVision2軟件;
(2)     學會使用 STC燒寫軟件-ISP-v6.85H。
  
  二.實驗環境
硬件:(1)學生用微機  
軟件:(1)Windows 10操作系統
(2)Keil uVision2
  
  
三、實驗內容與步驟
  
  用C語言編程,按S4鍵實現第一行從屏幕右側移入“I LOVE YOU!”,每次移動0.5s,然后從屏幕右側移出。按S5鍵實現第二行從右側移入“BUT YOU DONT!”每次移動0.5s,然后從屏幕右側移出。
  
  四、實驗過程與分析
  
  用C語言編程,按S4鍵實現第一行從屏幕右側移入“I LOVE YOU!”,每次移動0.5s,然后從屏幕右側移出。按S5鍵實現第二行從右側移入“BUT YOU DONT!”每次移動0.5s,然后從屏幕右側移出。
  實驗代碼:
  #include<reg52.h>
  #define uchar unsigned char
  #define uint unsigned int
  uchar code table1[]="I LOVE  YOU!";
  uchar code table2[]="BUT YOU  DONT!";
  sbit lcden=P3^4;  //液晶使能端
  sbit lcdrs=P3^5;  //液晶數據命令選擇端
  sbit dula=P2^6;     //申明U1鎖存器的鎖存端
  sbit wela=P2^7;     //申明U2鎖存器的鎖存端
  sbit key1=P3^6;
  sbit key2=P3^7;
  uchar code table[]={
  0x3f,0x06,0x5b,0x4f,
  0x66,0x6d,0x7d,0x07,
  0x7f,0x6f,0x77,0x7c,
  0x39,0x5e,0x79,0x71};
  uchar num;
  void delay(uint z)
  {  uint  x,y;
     for(x=z;x>0;x--)
        for(y=110;y>0;y--);
  }
  void write_com(uchar com)
  {  lcdrs=0;
     P0=com;
     delay(5);
     lcden=1;
     delay(5);
     lcden=0;
  }
  void write_data(uchar date)
  {  lcdrs=1;
     P0=date;
     delay(5);
     lcden=1;
     delay(5);
     lcden=0;
  }
  void init()
  {  dula=0;
     wela=0;
     lcden=0;
     write_com(0x38);//設置16X2顯示,5X7點陣,8位數據接口
     write_com(0x0c);//設置開顯示,不顯示光標
     write_com(0x06);//寫一個字符后地址指針加1
     write_com(0x01);//顯示清零,數據指針清零
  }
  void main()
  {  init();
     while(1)
     {if(key1==0)
     {delay(10);
     if(key1==0)
     {write_com(0x80+0x10);
     for(num=0;num<11;num++)
     {write_data(table1[num]);
        delay(5);
     }
     for(num=0;num<16;num++)
     {write_com(0x18);
      delay(200);
     }
     delay(1000);
        for(num=0;num<16;num++)
     {
        write_com(0x1C);
        delay(200);
     }
     delay(1000);
     write_com(0x01);
     while(!key1);
  }}
     if(key2==0)
     {delay(10);
     if(key2==0)
     {write_com(0x80+0x50);
     for(num=0;num<13;num++)
     {write_data(table2[num]);
     delay(5);
     }
     for(num=0;num<16;num++)
     {  write_com(0x18);
        delay(200);
     }
     delay(1000);
        for(num=0;num<16;num++)
     {write_com(0x1C);
        delay(200);
     }
        while(!key2);
     }}
     }
     while(1);
  }





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1