本作品采用STC89C52RC單片機(jī)最小系統(tǒng)和0.96寸OLED顯示屏(IIC)設(shè)計(jì),基于DHT11的溫濕計(jì)(單總線)。實(shí)測(cè)通過(guò),完美運(yùn)行。
1.jpg (31.73 KB)
下載附件
2021-7-11 23:54 上傳
部分源碼:完整源碼見文尾附件
- void main()
- {
- DHT11_delay_ms(4500);
- OLED_init();//初始化OLED(內(nèi)存地址模式默認(rèn)使用水平地址模式,可在初始化程序中更改)
-
- while(1)
- {
- //打印BMP圖片(圖片數(shù)組,選擇圖片的取模方式(水平取模:0x00或垂直取模:0x01),是否反色(填0或1))
- OLED_print_BMP(BMP0,0x00,0);
- Delay1000ms();
- OLED_clear();//清屏
- DHT11_receive();
- OLED_print_text(0,0,"濕",0);
- OLED_print_text(0,2,"度",0);
- OLED_print_text(0,6,"溫",0);
- OLED_print_text(0,8,"度",0);
- //OLED_print_text(1,0,rec_dat,0);
- OLED_print_char(1,0,rec_dat[0],0);
- OLED_print_char(1,1,rec_dat[1],0);
- OLED_print_char(1,2,rec_dat[2],0);
- OLED_print_char(1,3,rec_dat[3],0);
- OLED_print_char(1,4,rec_dat[4],0);
- OLED_print_char(1,5,rec_dat[5],0);
- OLED_print_char(1,6,rec_dat[6],0);
- OLED_print_char(1,7,rec_dat[7],0);
- OLED_print_char(1,8,rec_dat[8],0);
-
- Delay1000ms();
- OLED_clear();//清屏
-
- }
- }
- OLED.C
- #include <intrins.h>
- #include "public.h"
- #include "OLED.h"
- #include "ASCII.h"
- #include "text.h"
- #include "port.h"
- //使用位操作加快IIC讀寫速度
- u8 bdata Byte_data;
- sbit Byte_data7=Byte_data^7;
- sbit Byte_data6=Byte_data^6;
- sbit Byte_data5=Byte_data^5;
- sbit Byte_data4=Byte_data^4;
- sbit Byte_data3=Byte_data^3;
- sbit Byte_data2=Byte_data^2;
- sbit Byte_data1=Byte_data^1;
- sbit Byte_data0=Byte_data^0;
- void OLED_delay500ms()//12.000MHz
- {
- u8 i,j,k;
- i=23;
- j=205;
- k=120;
- do
- {
- do
- {
- while (--k);
- }while (--j);
- }while (--i);
- }
- //IIC通信開始
- void IIC_start()
- {
- OLED_CLK=1;
- OLED_SDA=1;
- OLED_SDA=0;
- OLED_CLK=0;
- }
- //IIC通信停止
- void IIC_stop()
- {
- OLED_CLK=1;
- OLED_SDA=0;
- OLED_SDA=1;
- }
- //IIC寫入一個(gè)字節(jié)(字節(jié))
- void IIC_write_Byte(u8 Byte)
- {
- OLED_CLK=0;
- Byte_data=Byte;
-
- OLED_SDA=Byte_data7;OLED_CLK=1;OLED_CLK=0;
- OLED_SDA=Byte_data6;OLED_CLK=1;OLED_CLK=0;
- OLED_SDA=Byte_data5;OLED_CLK=1;OLED_CLK=0;
- OLED_SDA=Byte_data4;OLED_CLK=1;OLED_CLK=0;
- OLED_SDA=Byte_data3;OLED_CLK=1;OLED_CLK=0;
- OLED_SDA=Byte_data2;OLED_CLK=1;OLED_CLK=0;
- OLED_SDA=Byte_data1;OLED_CLK=1;OLED_CLK=0;
- OLED_SDA=Byte_data0;OLED_CLK=1;OLED_CLK=0;
- OLED_CLK=1;//IIC應(yīng)答
- OLED_CLK=0;
- }
- //MCU向OLED寫入一個(gè)字節(jié)(字節(jié)數(shù)據(jù),選擇字節(jié)為命令還是數(shù)據(jù))
- void MCU_write_OLED_Byte(u8 Byte,u8 command_or_data)
- {
- IIC_start();//IIC通信開始
- IIC_write_Byte(0x78);//從機(jī)地址
- IIC_write_Byte(command_or_data);
- IIC_write_Byte(Byte);
- IIC_stop();//IIC通信停止
- }
- //光標(biāo)的位置,0到7行,0到127列(行,列)
- void OLED_cursor_location(u8 row,u8 column)
- {
- MCU_write_OLED_Byte(0xB0+row,OLED_COMMAND);//設(shè)置行(0~7)
- MCU_write_OLED_Byte(0x10|(column&0xF0)>>4,OLED_COMMAND);//設(shè)置顯示位置大列(0~7)
- MCU_write_OLED_Byte(0x00|(column&0x0F),OLED_COMMAND);//設(shè)置顯示位置小列(0~7)
- }
- //設(shè)置內(nèi)存地址模式(使用水平地址模式:0x00或垂直地址模式:0x01)
- void OLED_set_memory_address_mode(u8 mode)
- {
- MCU_write_OLED_Byte(0x20,OLED_COMMAND);//設(shè)置內(nèi)存地址模式(使用水平地址模式或垂直地址模式)
- MCU_write_OLED_Byte(mode,OLED_COMMAND);//水平地址模式:0x00,垂直地址模式:0x01,頁(yè)地址模式:0x02
- MCU_write_OLED_Byte(0x21,OLED_COMMAND);//設(shè)置顯示位置列初始地址和終止地址
- MCU_write_OLED_Byte(0x00,OLED_COMMAND);//列初始地址
- MCU_write_OLED_Byte(0x7F,OLED_COMMAND);//列終止地址
- MCU_write_OLED_Byte(0x22,OLED_COMMAND);//設(shè)置顯示位置頁(yè)初始地址和終止地址
- MCU_write_OLED_Byte(0x00,OLED_COMMAND);//頁(yè)初始地址
- MCU_write_OLED_Byte(0x07,OLED_COMMAND);//頁(yè)終止地址
- }
復(fù)制代碼 完整源碼:
OHT11 OLED(iic).zip
(74.83 KB, 售價(jià): 2 E幣)
【必讀】版權(quán)免責(zé)聲明
1、本主題所有言論和內(nèi)容純屬會(huì)員個(gè)人意見,與本論壇立場(chǎng)無(wú)關(guān)。2、本站對(duì)所發(fā)內(nèi)容真實(shí)性、客觀性、可用性不做任何保證也不負(fù)任何責(zé)任,網(wǎng)友之間僅出于學(xué)習(xí)目的進(jìn)行交流。3、對(duì)提供的數(shù)字內(nèi)容不擁有任何權(quán)利,其版權(quán)歸原著者擁有。請(qǐng)勿將該數(shù)字內(nèi)容進(jìn)行商業(yè)交易、轉(zhuǎn)載等行為,該內(nèi)容只為學(xué)習(xí)所提供,使用后發(fā)生的一切問(wèn)題與本站無(wú)關(guān)。 4、本網(wǎng)站不保證本站提供的下載資源的準(zhǔn)確性、安全性和完整性;同時(shí)本網(wǎng)站也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的損失或傷害。 5、本網(wǎng)站所有軟件和資料均為網(wǎng)友推薦收集整理而來(lái),僅供學(xué)習(xí)用途使用,請(qǐng)務(wù)必下載后兩小時(shí)內(nèi)刪除,禁止商用。6、如有侵犯你版權(quán)的,請(qǐng)及時(shí)聯(lián)系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|