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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6053|回復(fù): 2
收起左側(cè)

STC15單片機(jī)ADC采集顯示在LCD12864的源程序

[復(fù)制鏈接]
ID:304041 發(fā)表于 2018-4-27 10:45 | 顯示全部樓層 |閱讀模式
顯示在LCD12864思路。把ADC采集到的值傳遞給LCD12864顯示那部分程序,如果你直接把ADC采集到的值直接傳遞給LCD12864顯示那塊,會(huì)出現(xiàn)亂碼,所以需要你把ADC采集的三位數(shù),分別把這三位數(shù)的每一位數(shù)取出來(lái)在加上ASCLL中的0(48),傳遞給LCD12864顯示那塊,而且你要顯示在哪一行那個(gè)位置,還有我用的STC15F2K60S2每次的端口初始化,才可以         還請(qǐng)大神多多指教。謝謝

12864簡(jiǎn)單顯示+ADC采集單片機(jī)源程序如下:
  1. #include <aj.h>
  2. #include        "ad.h"

  3. //unsigned char code dis1[]={"0x31,0x32,0x33,0x34,0x35"};                   //顯示四行
  4. unsigned char code dis2[]={"哈哈一熱"};                     //每一行只能倆中,這倆種用中文空格隔開(kāi)
  5. unsigned char code dis3[]={"我我的偉大的"};
  6. unsigned char code dis4[]={"1231315"};

  7. void xianshi(int j);
  8. sbit lcd_rs=P2^0;
  9. sbit lcd_rw=P2^1;
  10. sbit lcd_en=P2^2;
  11. sbit lcd_psb=P2^3;


  12. void port_mode()            // 端口模式
  13. {
  14.         P0M1=0x00; P0M0=0x00;P1M1=0x00; P1M0=0x00;P2M1=0x00; P2M0=0x00;P3M1=0x00; P3M0=0x00;
  15.         P4M1=0x00; P4M0=0x00;P5M1=0x00; P5M0=0x00;P6M1=0x00; P6M0=0x00;P7M1=0x00; P7M0=0x00;
  16. }
  17. void delayxms(unsigned int x)
  18. {
  19.         unsigned int i,j;
  20.         for(i=0;i<x;i++)
  21.         for(j=0;j<120;j++);
  22. }

  23. bit lcd_busy()   //LCD判斷忙
  24. {
  25.         bit result;
  26.         lcd_rs=0;
  27.         lcd_rw=1;
  28.         lcd_en=1;
  29.         _nop_();//4us
  30.               _nop_();
  31.               _nop_();
  32.         result=(bit)(P0&0x80);
  33.         lcd_en=0;
  34.         return(result);

  35. }
  36. void lcd_wcmd(unsigned char cmd)     //LCD讀狀態(tài)
  37. {
  38.         while(lcd_busy());         //忙狀態(tài)檢測(cè)
  39.         lcd_rs=0;
  40.         lcd_rw=0;
  41.         lcd_en=0;
  42.         _nop_();                //1us
  43.         _nop_();
  44.         P0=cmd;
  45.         _nop_();//4us
  46.               _nop_();
  47.               _nop_();
  48.         lcd_en=1;
  49.         _nop_();//4us
  50.               _nop_();
  51.               _nop_();
  52.         lcd_en=0;
  53. }

  54. void lcd_wdat(unsigned char dat)    //LCD寫(xiě)數(shù)據(jù)
  55. {
  56.         while(lcd_busy());
  57.         lcd_rs=1;
  58.         lcd_rw=0;
  59.         lcd_en=0;
  60.         P0=dat;
  61.         _nop_();//4us
  62.               _nop_();
  63.               _nop_();
  64.         lcd_en=1;
  65.         _nop_();//4us
  66.               _nop_();
  67.               _nop_();
  68.         lcd_en=0;
  69. }

  70. void lcd_init()    //LCD初始化
  71. {
  72.         lcd_psb=1; //并行
  73.         lcd_wcmd(0x34);
  74.         delay(5);
  75.         lcd_wcmd(0x30);
  76.         delay(5);
  77.         lcd_wcmd(0x0c);
  78.         delay(5);
  79.         lcd_wcmd(0x01);
  80.         delay(5);
  81. }

  82. void lcd_pos(unsigned char x,unsigned char y)    //確定LCD顯示位置
  83. {
  84.         unsigned char pos;
  85.         if(x==0) {x=0x80;}
  86.         if(x==1) {x=0x90;}
  87.         if(x==2) {x=0x88;}
  88.         if(x==3) {x=0x98;}
  89.         pos=x+y;
  90.         lcd_wcmd(pos);

  91. }

  92. void xianshi()
  93. {      
  94.               unsigned char i,w1,w2,w3,j;
  95.               j=GetADCResult(0);   //采集到ADC賦值給變量
  96.         delay(10);
  97.         i=0;
  98.               w1=j/100+48;       //三位數(shù)取余      取第一位數(shù)
  99.               w2=j%100/10+48;    //取第二位數(shù)
  100.               w3=j%100%10+48;     //取第三位數(shù)
  101.               lcd_pos(0,0);       //表示第一行,第零位
  102.         lcd_wdat(w1);      //把ADC采集到值取出第一位,傳遞給12864顯示
  103.               delayxms(1);        
  104.               lcd_pos(0,1);       //表示第一行,第一零位
  105.               lcd_wdat(w2);     
  106.               delayxms(1);
  107.               lcd_pos(0,2);      //表示第一行,第二零位
  108.         lcd_wdat(w3);
  109.         delayxms(1);                                 
  110.         delay(20);
  111.         lcd_pos(1,0);
  112.         i=0;        
  113.         while(dis2[i]!='\0')    //判斷數(shù)組dis2[i]是否等于0
  114.         {
  115.                 lcd_wdat(dis2[i]);    //讓數(shù)組dis2[i]里的每一位數(shù)一次顯示
  116.                 i++;
  117.         }
  118.         delay(5);//15在此加延時(shí)解決顯示不清楚
  119.         lcd_pos(2,0);             //LCD顯示第二行第0位
  120.         i=0;
  121.         while(dis3[i]!='\0')
  122.         {
  123.                  lcd_wdat(dis3[i]);
  124.                 i++;
  125.         }  
  126.         delay(5);
  127.         lcd_pos(3,0);            //LCD顯示第三行第0位
  128.         i=0;
  129.         while(dis4[i]!='\0')
  130. ……………………

  131. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
12864簡(jiǎn)單顯示 ADC采集.zip (42.5 KB, 下載次數(shù): 177)

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:77511 發(fā)表于 2018-11-5 11:51 | 顯示全部樓層
我要看看
回復(fù)

使用道具 舉報(bào)

ID:556770 發(fā)表于 2019-9-23 20:30 | 顯示全部樓層
正需要,準(zhǔn)備下學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 4h影视| 欧美日韩免费视频 | 免费视频久久 | 视频在线亚洲 | 在线观看特色大片免费网站 | 色啪网| 欧美一区精品 | 成人av在线播放 | 久久久久国产一区二区三区 | 超碰人人人人 | 国产成人精品久久二区二区 | 午夜爽爽爽男女免费观看 | 九九热精品视频 | 久久精品国产亚洲夜色av网站 | 久久国产精品偷 | 国产精品视频在线观看 | av看片| 中国一级特黄毛片大片 | 国产精品成人一区二区三区 | 美女黄频| 欧美v片| 羞羞网站在线观看 | 天天综合干 | 午夜免费网站 | 毛片.com | 欧美一级视频免费看 | 欧美精品一区二区三区四区 | 国产专区在线 | 天天躁人人躁人人躁狂躁 | 国产精品有限公司 | 99久久精品免费看国产高清 | 日韩中文字幕在线观看 | 成人午夜电影在线观看 | 国产精品久久7777777 | 日韩在线中文 | 国产草草视频 | 自拍视频国产 | 色综合一区二区三区 | 黄色国产视频 | 成人精品在线观看 | 国产一区二区三区 |