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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2851|回復: 9
收起左側

求助!想請教大家單片機+lcd連續顯示的問題

[復制鏈接]
ID:630579 發表于 2019-12-10 22:59 | 顯示全部樓層 |閱讀模式
200黑幣
大家好!我做了一個舵機角度的代碼,其中有uint value[]={1500,1000,1500,2000,1500};
uint ms[]={0,45,0,45,0};
。。。。。。
        for(i=0;i<5;i++)                {
                        pwm_value=value;//通過數組就可以改變舵機的轉角度
                        delay_ms(1000);
       }
想要在lcd上隨著這個循環連續顯示數組ms里的數,怎么改呢?
我讀51單片機實戰指南這本書上面,都是直接顯示一個數組,不會舉一反三了。想請問大家。




最佳答案

查看完整內容

按你的要求給你寫一個示例+仿真,有詳細注釋,看懂后就可以隨心所欲的顯示各種字符。
回復

使用道具 舉報

ID:213173 發表于 2019-12-10 22:59 | 顯示全部樓層
按你的要求給你寫一個示例+仿真,有詳細注釋,看懂后就可以隨心所欲的顯示各種字符。 無標題.jpg
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit LCD_RS=P3^5;                                //液晶屏RS口  寫指令低,寫數據高
  5. sbit LCD_EN=P3^4;                                //液晶屏EN口  高脈沖使能寫指令/數據,低跳變執行

  6. uint value[]={1500,1000,1500,2000,1500};
  7. uint ms[]={0,45,0,45,0};
  8. uint pwm_value;
  9. /*******100us延時程序********/
  10. void delay(uint x)
  11. {
  12.         uint a,b;
  13.         for(a=x;a>0;a--)
  14.                 for(b=10;b>0;b--);
  15. }
  16. /*******1ms延時程序********/
  17. void delay_ms(uint x)
  18. {
  19.         uint a,b;
  20.         for(a=x;a>0;a--)
  21.                 for(b=125;b>0;b--);
  22. }
  23. /*******液晶寫指令程序********/
  24. void write_com(uchar com)
  25. {
  26.         LCD_EN=0;        //初始設置LCD_EN低電平
  27.         LCD_RS=0;        //允許寫指令
  28.         P0=com;                //傳遞指令
  29.         delay(10);        //延時1ms
  30.         LCD_EN=1;        //使能寫入
  31.         delay(10);        //延時1ms
  32.         LCD_EN=0;        //低跳變執行
  33.        
  34. }
  35. /*******液晶寫數據程序********/
  36. void write_date(uchar date)
  37. {
  38. //        LCD_EN=0;        //初始設置LCD_EN低電平
  39.         LCD_RS=1;        //允許寫數據
  40.         P0 =date;        //傳遞數據
  41.         delay(10);        //延時1ms
  42.         LCD_EN=1;        //使能寫入
  43.         delay(10);        //延時1ms
  44.         LCD_EN=0;        //低跳變執行
  45.        
  46. }
  47. /*******液晶初始化程序********/
  48. void init()                //設置顯示模式、
  49. {
  50.         write_com(0x38);//設置16*2顯示,5*7點陣,8位數據接口
  51.         write_com(0x01);//顯示清零,數據指針清零
  52.         write_com(0x0c);//設置開顯示,不顯光標
  53.         write_com(0x06);//設置寫一個字符后地址指針加1
  54. }
  55. /**********************主程序*************************/
  56. void main()
  57. {
  58.         uchar i;                                        //定義循環變量
  59.         init();                                        //初始化LCD程序
  60.         for(i=0;i<5;i++)
  61.         {
  62.                 pwm_value=value[i];//通過數組就可以改變舵機的轉角度

  63.                 write_com(0x80);//LCD1602的第一行第0位置起
  64.                 write_date(value[i]/1000%10+'0');//LCD顯示數據的千位
  65.                 write_date(value[i]/100%10+'0');//LCD顯示數據的百位
  66.                 write_date(value[i]/10%10+'0');//LCD顯示數據的十位
  67.                 write_date(value[i]%10+'0');//LCD顯示數據的個位

  68.                 write_com(0xc0+i*3);//LCD1602的第二行第0位置起,每次+3格
  69.                 write_date(ms[i]/10+'0');//LCD顯示數據的十位
  70.                 write_date(ms[i]%10+'0');//LCD顯示數據的個位
  71.                 delay_ms(1000);
  72.         }
  73.         while(1);
  74. }
復制代碼





回復

使用道具 舉報

ID:470332 發表于 2019-12-11 08:56 | 顯示全部樓層
你把數組里的數一個一個的送到顯示不就可以嗎,每次循環完后數組下標在從0開始
回復

使用道具 舉報

ID:630579 發表于 2019-12-11 09:44 | 顯示全部樓層
moluxiyan 發表于 2019-12-11 08:56
你把數組里的數一個一個的送到顯示不就可以嗎,每次循環完后數組下標在從0開始

大佬,可以麻煩你一下能用代碼寫一兩行嗎?隨著循環顯示lcd
回復

使用道具 舉報

ID:630579 發表于 2019-12-11 09:46 | 顯示全部樓層
moluxiyan 發表于 2019-12-11 08:56
你把數組里的數一個一個的送到顯示不就可以嗎,每次循環完后數組下標在從0開始

那個數組里面的數還要再加一些的,怕這樣單個單個顯示會讓整個代碼冗長。
回復

使用道具 舉報

ID:470332 發表于 2019-12-11 11:20 | 顯示全部樓層
一個杰 發表于 2019-12-11 09:44
大佬,可以麻煩你一下能用代碼寫一兩行嗎?隨著循環顯示lcd

for(i=0;i<5;i++)               
{
            pwm_value=value;//通過數組就可以改變舵機的轉角度
            delay_ms(1000);
            顯示(ms);
  }
回復

使用道具 舉報

ID:630579 發表于 2019-12-11 14:39 | 顯示全部樓層
wulin 發表于 2019-12-11 13:30
按你的要求給你寫一個示例+仿真,有詳細注釋,看懂后就可以隨心所欲的顯示各種字符。

大佬,是運行1500的時候,舵機轉0度,同時在lcd上顯示0度,然后運行1000,舵機轉45度,同時在lcd上顯示45度等等。每運行一次lcd顯示一個角度。再改一下就完美了。感謝感謝!
回復

使用道具 舉報

ID:630579 發表于 2019-12-11 14:39 | 顯示全部樓層

這個之前也想到過,但是感覺不太行。
回復

使用道具 舉報

ID:630579 發表于 2019-12-11 14:52 | 顯示全部樓層
wulin 發表于 2019-12-10 22:59
按你的要求給你寫一個示例+仿真,有詳細注釋,看懂后就可以隨心所欲的顯示各種字符。

對的對的!感謝
回復

使用道具 舉報

ID:630579 發表于 2019-12-11 16:14 | 顯示全部樓層
wulin 發表于 2019-12-10 22:59
按你的要求給你寫一個示例+仿真,有詳細注釋,看懂后就可以隨心所欲的顯示各種字符。

大佬,我按照你的方法弄出來了,但是LCD上本該顯示數字的地方顯示四條橫線,第二條橫線隨著循環在動,請問你知道啥意思嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲成人一区二区 | 国产精品1区2区 | 蜜臀久久 | 91精品国产综合久久久久久丝袜 | 日韩不卡在线 | 国产伦精品一区二区三区照片91 | 美女天天干天天操 | 日韩欧美在线不卡 | 秋霞a级毛片在线看 | 国产精品一区三区 | 热99精品视频 | 日本中文字幕一区 | 欧美日韩一 | 日韩成人免费在线视频 | 日韩成人免费中文字幕 | 看一级黄色毛片 | 精品伊人久久 | 99视频在线播放 | 99re国产| 九九亚洲精品 | 久久久国产一区二区三区 | 一区二区不卡高清 | 精品国产一区二区三区免费 | 欧美在线一区二区视频 | 欧洲视频一区二区 | 日韩成人精品一区二区三区 | 久久久久久亚洲精品 | 久久国产精品久久久久久 | www.中文字幕 | 亚洲福利一区 | 乱码av午夜噜噜噜噜动漫 | 国产精品mv在线观看 | 中文字幕av第一页 | 日本xx视频免费观看 | 国产成人免费网站 | 精品亚洲一区二区三区 | 国产视频福利一区 | 久久久精品亚洲 | 在线电影日韩 | 日韩成人一区 | 日本久久综合网 |