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

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

QQ登錄

只需一步,快速開始

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

單片機(jī)+LCD12864顯示屏實(shí)現(xiàn)曲線圖溫度顯示程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
LCD12864顯示屏實(shí)現(xiàn)曲線圖溫度顯示程序經(jīng)過調(diào)試正常運(yùn)行,可以給大家作一個(gè)參考。是51單片機(jī)開發(fā)板給的新教程與大家分享。

制作出來的實(shí)物圖如下:


電路原理圖如下:



Keil代碼下載:
LCD12864顯示溫度曲線(keil4).rar (136.38 KB, 下載次數(shù): 335)

以下是部份代碼,完整包可以下載查看。溫度傳感器是DS18B20
#include<12864.h>

void delay(uint i)        //延時(shí)函數(shù)
{
        while(--i);
}
void Read_busy()        //LCD12864忙檢測(cè)
{
        RS=0;
        RW=1;
        EN=1;
        LCD_databus=0xFF;
        while(LCD_databus & 0x80);        //判斷最高位,1---busy,0---Nobusy
        EN=0;
}

void write_LCD_command(uchar value)//寫指令
{
        RS=0;
        RW=0;
        delay(40);
        EN=1;
        LCD_databus=value;
        delay(40);
        EN=0;
}

void write_LCD_data(uchar value)//寫數(shù)據(jù)
{
        RS=1;
        RW=0;
        delay(40);
        EN=1;
        LCD_databus=value;
        delay(40);
        EN=0;
}

void init_LCD()                //初始化LCD
{
        write_LCD_command(0x30);        //8位數(shù),基本指令
        delay(100);
        write_LCD_command(0x30);
        delay(37);
        write_LCD_command(0x0C);        //開顯示,不顯示光標(biāo),光標(biāo)不閃爍
        delay(100);
        write_LCD_command(0x01);        //清屏指令
        delay(100);
        write_LCD_command(0x06);        //沒寫入數(shù)據(jù),地址指針加1
}

void Clear_GDRAM()                //清楚GDRAM
{
        uchar x,y;
        for(y=0;y<64;y++)
        {
                for(x=0;x<16;x++)
                {
                        write_LCD_command(0x34);
                        write_LCD_command(y+0x80);        //先送垂直地址
                        write_LCD_command(x+0x80);        //后送水平地址
                        write_LCD_command(0x30);        //基本指令
                        write_LCD_data(0x00);                //寫入數(shù)據(jù)0
                        write_LCD_data(0x00);
                }
        }
}

uchar ReadByte()        //讀LCD
{
        uchar Read_value;
        Read_busy();
        RS=1;
        RW=1;
        EN=0;
        EN=1;
        Read_value=LCD_databus;        
        EN=0;
        
        return Read_value;
}

void display_BMP(uchar *address)//顯示圖片
{
        uchar i,j;
        for(i=16;i<32;i++)
        {
                write_LCD_command(0x80+i);        //先送垂直地址
                write_LCD_command(0x80);        //再送水平地址
                for(j=0;j<16;j++)
                {
                        write_LCD_data(*address);//寫入數(shù)據(jù)
                        address++;
                }
        }
        
        for(i=0;i<32;i++)
        {
                write_LCD_command(0x80+i);//先送垂直地址
                write_LCD_command(0x88);        //再送水平地址
                for(j=0;j<16;j++)
                {
                        write_LCD_data(*address);
                        address++;
                }
        }
        
}
/********************************************************
畫點(diǎn)函數(shù)說明:增加LCD讀函數(shù),目的是使不打點(diǎn)的地方數(shù)據(jù)保持
不變:方法是先讀出不打點(diǎn)位置的數(shù)據(jù),打完點(diǎn)后將讀到的數(shù)據(jù)寫
入原來的位置,只有這樣才會(huì)顯示打點(diǎn)的曲線。
*********************************************************/
void Draw_dots(uchar x,uchar y,uchar color)
{
        uchar ROW,xlabel,xlabel_bit;
        uchar Read_H,Read_L;
        write_LCD_command(0x34);
        write_LCD_command(0x36);
        xlabel=x>>4;
        xlabel_bit=x & 0x0F;
        
        if(y<32)
        {
                ROW=y;
        }
        else
        {
                ROW=y-32;
                xlabel+=8;
        }
        write_LCD_command(ROW+0x80);
        write_LCD_command(xlabel+0x80);
        ReadByte();        //讀取當(dāng)前GDRAM數(shù)據(jù)前要進(jìn)行一次空讀,接下來就可以讀出數(shù)據(jù)了
        Read_H=ReadByte();
        Read_L=ReadByte();
        
        write_LCD_command(ROW+0x80);
        write_LCD_command(xlabel+0x80);
        
        if(xlabel_bit<8)
        {
                switch(color)
                {
                        case 0:Read_H &= (~(0x01<<(7-xlabel_bit)));//若變白
                        break;
                        case 1:Read_H |= (0x01<<(7-xlabel_bit));//若涂黑
                        break;
                        case 2:Read_H ^= (0x01<<(7-xlabel_bit));//若反轉(zhuǎn)
                        break;        
                        default:break;
                }
                write_LCD_data(Read_H);//將數(shù)據(jù)寫入GDRAM
                write_LCD_data(Read_L);//先寫高位,再寫低位(地址指針順序)
        }
        else
        {
                switch(color)//color設(shè)置
                {
                        case 0: Read_L &= (~(0x01<<(15-xlabel_bit)));//若變白
                        break;
                        case 1: Read_L |= (0x01<<(15-xlabel_bit));//若涂黑
                        break;
                        case 2: Read_L ^= (0x01<<(15-xlabel_bit));//若反轉(zhuǎn)
                        break;
                        default:break;
                }
                write_LCD_data(Read_H);
                write_LCD_data(Read_L);//寫入數(shù)據(jù)
        }
        
        write_LCD_command(0x30);//回到普通模式
}


評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:35873 發(fā)表于 2020-3-24 16:35 | 只看該作者
不錯(cuò)  多謝分享
回復(fù)

使用道具 舉報(bào)

板凳
ID:688460 發(fā)表于 2020-5-2 10:49 | 只看該作者
不錯(cuò)的創(chuàng)意,謝謝了!
回復(fù)

使用道具 舉報(bào)

地板
ID:290464 發(fā)表于 2021-1-15 16:08 | 只看該作者
學(xué)習(xí)了,多謝分享!
回復(fù)

使用道具 舉報(bào)

5#
ID:390416 發(fā)表于 2021-1-15 16:57 | 只看該作者
用OLED更方便,OLED12864是豎向取模的。LCD12864是橫向 需要轉(zhuǎn)換。有些麻煩
回復(fù)

使用道具 舉報(bào)

6#
ID:53978 發(fā)表于 2021-2-24 16:42 | 只看該作者
哪位大師幫忙把這個(gè)改一個(gè)max6675的采集程序啊,謝謝了。
回復(fù)

使用道具 舉報(bào)

7#
ID:883031 發(fā)表于 2021-2-25 10:04 | 只看該作者
測(cè)了,可用
回復(fù)

使用道具 舉報(bào)

8#
ID:959867 發(fā)表于 2021-8-11 09:54 | 只看該作者
這個(gè)開發(fā)板是哪家公司的?貌似跟我的普中的不一樣
回復(fù)

使用道具 舉報(bào)

9#
ID:744744 發(fā)表于 2022-5-19 11:20 來自觸屏版 | 只看該作者
直接用h12864更方便,畫點(diǎn)畫線畫框
回復(fù)

使用道具 舉報(bào)

10#
ID:1051166 發(fā)表于 2022-11-9 15:20 | 只看該作者
為啥Proteus打不開
回復(fù)

使用道具 舉報(bào)

11#
ID:262 發(fā)表于 2022-11-9 18:35 | 只看該作者

樓主直接做的成品電路,并沒有做Proteus啊,仿真都是在沒有實(shí)物的前提下做的,既然樓主有實(shí)物就沒有必要仿真了
回復(fù)

使用道具 舉報(bào)

12#
ID:237354 發(fā)表于 2022-11-9 21:20 | 只看該作者

STM32論壇有LCD12864仿真庫,另http://m.zg4o1577.cn/bbs/dpj-158960-1.html 找找
回復(fù)

使用道具 舉報(bào)

13#
ID:824664 發(fā)表于 2023-3-15 08:07 | 只看該作者
謝謝分享,可以參考示波器了,好好學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

14#
ID:160725 發(fā)表于 2024-7-6 16:04 | 只看該作者
有價(jià)值,設(shè)計(jì)可以用
回復(fù)

使用道具 舉報(bào)

15#
ID:80273 發(fā)表于 2024-10-14 12:09 | 只看該作者
實(shí)現(xiàn)功能了,感謝分享
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美激情亚洲 | 新香蕉视频 | 国产成人精品av在线观 | 亚洲国产成人精品久久 | 国产理论片在线观看 | 日韩中文字幕在线观看 | 中文字幕在线观看第一页 | 国产精品网站在线观看 | 五月天激情影院 | 999在线视频 | 伊人久久精品 | 日本中文在线观看 | 亚洲 欧美 另类 综合 偷拍 | 黄色天堂 | 亚洲二区视频 | 欧美在线不卡 | 国产伦精品一区二区三区在线 | 国产suv精品一区 | a毛片在线观看 | 欧美一级网站 | 亚洲人成在线播放 | 午夜快播| 99视频网 | 国产欧美日韩综合 | 夜夜操网站 | 中文字幕免费看 | 亚洲 欧美 另类 综合 偷拍 | 色综合久 | 午夜影院在线 | 国产美女视频网站 | 成人aaaa | 成人黄色一级片 | 欧美不卡 | av免费观看网址 | 91成人精品 | 免费激情网站 | 亚洲欧美综合网 | 国产精品二区一区二区aⅴ污介绍 | 国产精品日韩欧美 | 日韩久久久久 | www.国产精品|