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

標題: 單片機代碼紅色部分FOR循環的為什么能讓LCD1602移屏? 一直想不明白 [打印本頁]

作者: Tongnh    時間: 2021-7-9 15:41
標題: 單片機代碼紅色部分FOR循環的為什么能讓LCD1602移屏? 一直想不明白
#include <reg52.h>
#include <LCD1602.h>  //LCD1602頭文件
#include <ds1302.h>          //時鐘芯片頭文件
#include <tem.h>          //溫度18b20頭文件

#define u8 unsigned char  //重定義
#define u16 unsigned int

sbit KEY1=P3^0;         //定義界面功能按鍵、確定鍵
sbit add=P3^1;         //定義加按鍵
sbit sub=P3^2;         //定義減按鍵
sbit KEY4=P3^3;  //定義改變功能鍵、返回鍵

sbit beep=P1^5;         //蜂鳴器輸出口

int con=0,mon=0;

bit bcon=0;
bit cool,teel;
bit nao=0,wen=0;

u16 win0,win1;
u16 hin=0;
char  t[][16]={"H50 L20 17/10/25",        //顯示日期        放在隨機存儲器中
               "21.3C 12:00:00 6"}; //顯示時間、周  放在程序存儲器

char  c1[]="Clock 07:00:00  ";        //顯示鬧鐘時間
char code c2[]=" Good  Everyday ";        // Good Everyday
char code c3[]=" Open OR Close  ";        //  Open OR Close  開啟還是關閉

char code M1[][16]={">     Time     <",">    Clock     <",
                    ">  Tem_Aralm   <"};          //  時間調整,鬧鐘,溫度上下限
char K1[16]=" ";
//u8 code kai[]={"          LYC The Most Beautiful Time To Meet The Most Beautiful You Do Not Cherish HJY         "};
u8 code kai[]={"           123456789ABCDEFGHIJKLMNOPQISDUVWXYZ         "};
//*********延時函數***********//
void delay(u16 i)
{
  while(i--);
}

//*********開機畫面*********//
void open()
{
   int i=0,j;
   while(kai[ i]!='\0')
    i++;
        i--;
   for(i;i!=0;i--)
   {
      K1[0]=kai[ i];
          LCD1602_WRITERCOM(0x80);
      for(j=0;j<16;j++)
      {
         LCD1602_WRITERDAT(K1[j]);
      }
      LCD1602_WRITERCOM(0xC0);
      for(j=0;j<16;j++)
      {
         LCD1602_WRITERDAT(K1[j]);
      }

          for(j=14;j>=0;j--)
          {
            K1[j+1]=K1[j];
          }

          delay(15000);
   }
}

紅色部分FOR循環的為什么能讓LCD移屏, 一直想不明白,請哪位大俠幫幫忙????



作者: Tongnh    時間: 2021-7-9 16:18
已經搞懂了
作者: shumivan    時間: 2021-7-9 16:18
前一個單元存放的數據移位到后一個單元存放,你覺得它是不是移位呢?
作者: yzwzfyz    時間: 2021-7-9 16:37
例如一個漢字是16*16,每一行或列的點陣數據放在KI[]中。
1、你輪流將KI[]送到顯示接口中去(如,16次完成一個漢字顯示),則可以顯示出一個漢字。認可不?
2、如果KI[]中的數據永遠不變,則顯示的永遠是那個漢字,不會變。認可不?
3、如果每間隔一段時間(如,0.5秒),將KI[]中的后一列數據,送到前一列中,則何如?不就相當于向前滾了一列嗎?當然KI[]末列應當補入另一個漢字的最前列。
說的不一定與你的程序完成一樣,但道理一樣。你想想。

作者: Tongnh    時間: 2021-7-9 20:21
shumivan 發表于 2021-7-9 16:18
前一個單元存放的數據移位到后一個單元存放,你覺得它是不是移位呢?

謝謝 已經明白了
作者: Tongnh    時間: 2021-7-9 20:22
yzwzfyz 發表于 2021-7-9 16:37
例如一個漢字是16*16,每一行或列的點陣數據放在KI[]中。
1、你輪流將KI[]送到顯示接口中去(如,16次完成 ...

謝謝 已經明白了




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