久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2593|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機LCD1602字符液晶垂直滾動可以但是水平滾動程序不行 求指導(dǎo)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:228147 發(fā)表于 2021-4-21 14:51 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
一、電路設(shè)計此電路由AT89C51最小系統(tǒng)、LCD1602顯示模塊和獨立按鍵組成。
可實現(xiàn)文字的上下左右滾動
二、運行效果
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

三、部分單片機代碼
  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. ……………………

  126. …………限于本文篇幅 余下代碼請從51黑下載附件…………

復(fù)制代碼
全部資料51hei下載地址:
1602字符液晶滾動演示程序.zip (88.69 KB, 下載次數(shù): 35)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久成人 | 香蕉视频黄色 | 国产一区二区在线免费 | 免费一区二区三区在线视频 | 国产一级片精品 | 一区二区三区四区在线视频 | 91精品国产综合久久久久久丝袜 | 中文字幕视频在线 | 久久99国产精品久久99果冻传媒 | 国产精品国产三级国产aⅴ中文 | 日日操日日干 | 国产aa | 日韩欧美精品 | 色视频在线播放 | 国产成人精品一区二区三区网站观看 | 国产欧美一区二区精品忘忧草 | 欧美久久久久 | av一级在线观看 | 国产在线中文字幕 | 国产精品综合色区在线观看 | 成人福利视频网站 | 欧美一级久久 | 亚洲成人av在线播放 | 国产精品日本一区二区不卡视频 | 日韩国产在线 | 999久久久精品 | 欧美黑人一级爽快片淫片高清 | 色av一区二区三区 | 国产精品美女久久久久aⅴ国产馆 | 中文字幕一级毛片视频 | 中文av在线播放 | 日韩在线播放av | 国产精品久久一区二区三区 | 色性av| 国产精品久久午夜夜伦鲁鲁 | 中文字幕视频一区 | 性xxxxx | 亚洲欧美一区二区三区在线 | 欧美激情综合网 | 欧美一区二| 久久久国产精品入口麻豆 |