亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 1602字符液晶垂直水平滾動(dòng)演示程序及仿真 帶暫停繼續(xù)按鈕 [打印本頁]

作者: byla2215975    時(shí)間: 2016-10-21 00:22
標(biāo)題: 1602字符液晶垂直水平滾動(dòng)演示程序及仿真 帶暫停繼續(xù)按鈕
分享一個(gè)1602字符液晶滾動(dòng)演示程序下面是仿真圖:帶3個(gè)按鈕 自動(dòng)垂直滾動(dòng) 自動(dòng)水平滾動(dòng) 和暫停繼續(xù)按鈕

  1. /***************   writer:shopping.w   ******************/
  2. #include <reg52.h>
  3. #include <string.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. void Initialize_LCD();
  7. void ShowString(uchar,uchar,uchar *);
  8. sbit K1 = P3^0;
  9. sbit K2 = P3^1;
  10. sbit K3 = P3^2;

  11. uchar code Prompt[]="PRESS K1--K4 TO START DEMO PROG";
  12. uchar const Line_Count = 6;
  13. uchar code Msg[][80]=
  14. {
  15.          "Many CAD users dismiss",
  16.         "process of creating PCB",
  17.         "of view.with PCB layout",
  18.         "placement and track routing,",
  19.         "can often be the most time",
  20.         "And if you use circuit simulation",
  21.         "you are going to spend even more"
  22. };
  23. uchar Disp_Buffer[32];
  24. void Delayxms(uint ms)
  25. {
  26.          uchar i;
  27.         while(ms--)
  28.         {
  29.                  for(i=0;i<120;i++);
  30.         }
  31. }

  32. void V_Scroll_Display()
  33. {
  34.          uchar i,j,k = 0;
  35.         uchar *p = Msg[0];
  36.         uchar *q = Msg[Line_Count] + strlen(Msg[Line_Count]);
  37.         while(p<q)
  38.         {
  39.                  for(i=0;(i<16)&&(p<q);i++)
  40.                 {
  41.                          if(((i==0)||(i==15))&& *p == ' ')
  42.                                 p++;
  43.                         if(*p != '\0')
  44.                         {
  45.                                  Disp_Buffer[i] = *p++;
  46.                         }
  47.                         else
  48.                         {
  49.                                  if(++k>Line_Count)
  50.                                         break;
  51.                                 p = Msg[k];
  52.                                 Disp_Buffer[i] = *p++;
  53.                         }
  54.                 }
  55.                 for(j=i;j<16;j++)
  56.                         Disp_Buffer[j]=' ';
  57.                 while(F0)
  58.                         Delayxms(5);
  59.                 ShowString(0,0,"      ");
  60.                 Delayxms(150);
  61.                 while(F0)
  62.                         Delayxms(5);
  63.                 ShowString(0,1,Disp_Buffer);
  64.                 Delayxms(150);
  65.                 while(F0)
  66.                         Delayxms(5);
  67.                 ShowString(0,0,Disp_Buffer);
  68.                 ShowString(0,1,"      ");
  69.                 Delayxms(150);        
  70.         }
  71.         ShowString(0,0,"         ");
  72.         ShowString(0,1,"         ");
  73. }

  74. void H_Scroll_Display()
  75. {
  76.         uchar m,n,t = 0,L=0;
  77.         uchar *p = Msg[0];
  78.         uchar *q = Msg[Line_Count] + strlen(Msg[Line_Count]);
  79.         for(m=0;m<16;m++)
  80.                         Disp_Buffer[m]=' ';        
  81.         while(p<q)
  82.         {
  83.                  if((m=16||m==31)&& *p == ' ')
  84.                         p++;
  85.                 for(m=16;m<32&&p<q;m++)
  86.                 {
  87.                          if(*p != '\0')
  88.                         {
  89.                                 Disp_Buffer[m] = *p++;         
  90.                         }
  91.                         else
  92.                         {
  93.                                  if(++t>Line_Count)
  94.                                         break;
  95.                                 p = Msg[t];
  96.                                 Disp_Buffer[m] = *p++;
  97.                         }
  98.                 }
  99.                 for(n=m;n<32;n++)
  100.                         Disp_Buffer[n]=' ';
  101.                 for(m=0;m<=16;m++)
  102.                 {
  103.                          while(F0)
  104.                                  Delayxms(5);
  105.                            ShowString(0,L,Disp_Buffer+1);
  106.                            while(F0)
  107.                                  Delayxms(5);
  108.                         Delayxms(20);
  109.                 }
  110.                 L = (L==0)? 1:0;
  111.                 Delayxms(200);
  112.         }
  113.         if(L==1)
  114.                 ShowString(0,1,"      ");        
  115. }

  116. void EX_INT0() interrupt 0
  117. {
  118.          F0 = !F0;
  119. }

  120. void main()
  121. {
  122.          uint Count = 0;
  123.         IE = 0x81;
  124.         IT0 = 1;
  125.         F0  = 0;
  126.         Initialize_LCD();
  127.         ShowString(0,0,Prompt);
  128.         ShowString(0,1,Prompt+16);
  129.         while(1)
  130.         {
  131.                  if(K1 == 0)
  132.                 {
  133.                          V_Scroll_Display();
  134.                         Delayxms(200);
  135.                 }
  136.                 else if(K2 == 0)
  137.                 {
  138.                          H_Scroll_Display();
  139.                         Delayxms(200);        
  140.                 }
  141.         }
  142. }
復(fù)制代碼


12 1602字符液晶滾動(dòng)演示程序.zip

87.07 KB, 下載次數(shù): 30, 下載積分: 黑幣 -5






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