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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2325|回復: 0
打印 上一主題 下一主題
收起左側

51單片機中如何用12864單獨顯示兩個獨立數字

[復制鏈接]
跳轉到指定樓層
樓主
ID:516871 發表于 2019-5-21 10:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
          最近想做一件東西,卻想到一個一直沒有直視的問題,12864只能顯示32個漢字,但如何實現在某個位置上寫上兩個數字呢(不用數組),在網上也很少有這類資料,至少我沒有看到,偶然間在調試1602程序時,發現位置可以自動加1,也就是你定了一個位置,寫上數據后,可以連續寫,如下程序,就實現在在cd_pos(2,0);          //第二行第一列地址上顯示45度的字樣,你學會了嗎?

單片機源程序如下:
  1. #include<reg52.h>        //每個程序都 要包含頭文件,

  2. typedef unsigned char uint8;   //聲明定義 ,,同 #define ,但#define要加#號才能使用 ,后不加分號
  3. typedef unsigned int uint16;
  4. sbit rs=P2^6;//數據或命令接口
  5. sbit rw=P2^5; //讀寫接口
  6. sbit e=P2^7;   //使能接口
  7. sbit PSB=P3^2;
  8. uint8 code a[]="今天2019年05月11"; //1602只能顯示每行40個字符,多余的無法顯示
  9. uint8 code b[]="現在天氣真的很熱";//為了標示顯示位置,兩行作為對比                7890
  10. void delay(uint16 i)  //1us
  11. {         uint8 t;
  12.         while(i--)
  13.         {
  14.          for(t=0;t<12;t++)        ;
  15.         }
  16. }
  17. //寫指令程序
  18. void write_cmd(uint8 cmd)
  19. {
  20.         delay(2);
  21.         rs=0;                //指令接口
  22.         rw=0;                //寫指令
  23.         e=0;
  24.         P0=cmd;                 //指令傳給IO口
  25.         e=1;                  //使能端高電平有效,要再拉低結束程序轉送,
  26.         delay(2);
  27.         e=0;
  28. }
  29. //寫數據程序
  30. void write_dat(uint8 dat)
  31. {
  32.         delay(2);
  33.         rs=1;        //數據
  34.         rw=0;         //寫
  35.         e=0;
  36.         P0=dat;
  37.         e=1;
  38.         delay(10);
  39.         e=0;
  40.         delay(2);  //每寫完一個數據, 延時,這樣顯示慢一點,也決定了移屏的速度


  41. }
  42. void init()
  43. {
  44.         delay(1);
  45.          PSB=1;
  46.         write_cmd(0x30); // 0x30:8位數據總線,基本指令集  設置為位數據總線,單行或雙行顯示
  47.         delay(5);                 // 0x34:8位數據總線,擴充指令集 可實現翻屏操作
  48.         write_cmd(0x0c); //0X0f:光標顯示及閃爍         0X0c:光標不顯示及不閃爍        
  49.         delay(5);                //0X0e:        光標顯示,不閃爍         0x0d:光標不顯示閃爍
  50.                                         //同1602
  51.         write_cmd(0x01);         //清屏顯示
  52.         delay(5);
  53. }
  54. void lcd_pos(uint8 x,uint8 y)        //位置函數,非常重要,顯示第幾行,幾列
  55. {
  56.          uint8 pos;
  57.         if(x==0)
  58.         {
  59.                 x=0x80;
  60.         }
  61.         else        if(x==1)
  62.         {
  63.                         x=0x90;
  64.         }
  65.         else        if(x==2)
  66.         {
  67.                         x=0x88;
  68.         }
  69.         else        if(x==3)
  70.         {
  71.           x=0x98;
  72.         }
  73.         pos=x+y;                //第幾的第幾個位置,,所以要相加,相當于第1行的第Y列的,Y,的位置就要定為X+Y
  74.         write_cmd(pos);
  75. }


  76. void display()
  77. {
  78.         uint8 i;
  79.          
  80.         lcd_pos(0,0);                 //第一行第一列地址,若要空降某一地址,寫上即可
  81.         for(i=0;i<16;i++)         //設置 80個字符顯示,第一行顯示完,自動在第二行顯示
  82.         {
  83.                 write_dat(a[i]);         //用了數組        ,就要以直接寫顯示 的字符,否者字符要加單引號''
  84.         }
  85.                            //單獨顯示某一個字時必須寫上對應的十六 進制編碼;不要
  86.                                                    //不能直接寫上
  87.         lcd_pos(1,0);          //第二行第一列地址
  88.         for(i=0;i<16;i++)
  89.         {
  90.                 write_dat(b[i]);
  91.         }

  92.         lcd_pos(2,0);          //第二行第一列地址

  93.           write_dat('4')  ;          //顯示45 度
  94.           write_dat('5')  ;
  95.            write_dat(0XA1);          //   兩個度字節顯示0C
  96.            write_dat(0xe6);          //
  97. }
  98. void main()
  99. {
  100.         init();
  101.         while(1)
  102.         {
  103.                 display();
  104.         }        
  105. }
復制代碼


評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91黄色片免费看 | 日韩综合一区 | 日本欧美在线 | 午夜精品91 | 亚洲精品久久久久久久久久久久久 | 日韩高清成人 | 亚洲视频在线观看一区二区三区 | 国产91久久精品一区二区 | 国产一区二区三区四区三区四 | 精品久久久久久18免费网站 | 国产精品免费一区二区三区四区 | 欧美国产亚洲一区二区 | 亚洲天堂成人在线视频 | 91在线电影 | 九九九视频在线 | 欧日韩在线观看 | 国产www成人| www.久久 | 亚洲色图综合 | 亚洲日本免费 | 中文字幕一区二区三区四区不卡 | 天天干免费视频 | 久久久久久高潮国产精品视 | 97日日碰人人模人人澡分享吧 | 精品久久一区二区三区 | 亚洲精品91 | 在线观看你懂的网站 | 国产精品欧美一区二区三区 | 欧美日韩亚洲系列 | 欧美在线a | 久久精品国产99国产精品亚洲 | 毛片a级| 亚欧洲精品在线视频免费观看 | 狠狠操电影 | 国产四虎| 91色综合 | www国产精 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 国产精品久久久久久久久久久免费看 | 一区二区福利视频 | 欧美一区二区三区在线观看 |