A. 0.96寸OLED屏怎麼和51單片機接線
看說明書呀,和1602液晶屏類似,用一個完整的埠作為數據囗,另外三根控制線接單片機三個任意IO口即可。也有OLED屏是串口傳輸的。
B. stm32f103c8t6單片機最小系統的p13引腳可以驅動oled嗎
STM32F103C8T6是3.3V的單片機,不能接5V的電壓。 STM32F103C8T6 類別:集成電路(IC) 家庭:嵌入式-微控制器 芯體尺寸:32-位 速度:72MHz 外圍設備:DMA,電機控制PWM,PWM,溫度感測器 輸入/輸出數:37 程序存儲器容量:64KB (64K x 8) 程序存儲器類型:FLASH RAM容量:20K x 8 電壓-電源(Vcc/Vdd):2 V ~ 3.6 V 數據轉換器:A/D 10x12b 振盪器型:內部 工作溫度:-40°C ~ 85°C 封裝/外殼:48-LQFP 包裝:托盤
C. 大神們,見過有人用單片機控制oled動態顯示時間,溫度,心電什麼的,怎麼做到的啊
你能顯示圖片,證明可以驅動OLED,既然能驅動OLED,就應該理解驅動過程。
例如時間,一般做數組,0~9數字的對應字元數組,將根據時間將數字顯示在指定位置。當然還可以做「:」「上午」這些字元的數組。說白了就是動態組合。
D. 基於單片機的OLED驅動電路硬體設計 論文(設計)的主要任務與具體要求(有實驗環節的要提出主要技術指標要
可以幫你的
找我們詳聊
基於單片機的OLED驅動電路硬體設計
論文(設計)
E. 那位老大能提供一個stc單片機驅動oled屏(128*64)的keil c程序,要很簡單的就行
#define LCM_RW P2_0 //定義引腳
#define LCM_RS P2_1
#define LCM_E P2_2
#define LCM_Data P1
#define Busy 0x80 //用於檢測LCM狀態字中的Busy標識
#i nclude <at89x51.h>
void WriteDataLCM(unsigned char WDLCM);
void WriteCommandLCM(unsigned char WCLCM,BuysC);
unsigned char ReadDataLCM(void);
unsigned char ReadStatusLCM(void);
void LCMInit(void);
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);
void Delay5Ms(void);
void Delay400Ms(void);
unsigned char code uctech[] = {"uctech"};
unsigned char code net[] = {"uctech.icpcn.com"};
void main(void)
{
Delay400Ms(); //啟動等待,等LCM講入工作狀態
LCMInit(); //LCM初始化
Delay5Ms(); //延時片刻(可不要)
DisplayListChar(0, 5, uctech);
DisplayListChar(0, 0, net);
ReadDataLCM();//測試用句無意義
while(1);
}
//寫數據
void WriteDataLCM(unsigned char WDLCM)
{
ReadStatusLCM(); //檢測忙
LCM_Data = WDLCM;
LCM_RS = 1;
LCM_RW = 0;
LCM_E = 0; //若晶振速度太高可以在這後加小的延時
LCM_E = 0; //延時
LCM_E = 1;
}
//寫指令
void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC為0時忽略忙檢測
{
if (BuysC) ReadStatusLCM(); //根據需要檢測忙
LCM_Data = WCLCM;
LCM_RS = 0;
LCM_RW = 0;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
}
//讀數據
unsigned char ReadDataLCM(void)
{
LCM_RS = 1;
LCM_RW = 1;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
return(LCM_Data);
}
//讀狀態
unsigned char ReadStatusLCM(void)
{
LCM_Data = 0xFF;
LCM_RS = 0;
LCM_RW = 1;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
while (LCM_Data & Busy); //檢測忙信號
return(LCM_Data);
}
void LCMInit(void) //LCM初始化
{
LCM_Data = 0;
WriteCommandLCM(0x38,0); //三次顯示模式設置,不檢測忙信號
Delay5Ms();
WriteCommandLCM(0x38,0);
Delay5Ms();
WriteCommandLCM(0x38,0);
Delay5Ms();
WriteCommandLCM(0x38,1); //顯示模式設置,開始要求每次檢測忙信號
WriteCommandLCM(0x08,1); //關閉顯示
WriteCommandLCM(0x01,1); //顯示清屏
WriteCommandLCM(0x06,1); // 顯示游標移動設置
WriteCommandLCM(0x0C,1); // 顯示開及游標設置
}
//按指定位置顯示一個字元
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
Y &= 0x1;
X &= 0xF; //限制X不能大於15,Y不能大於1
if (Y) X |= 0x40; //當要顯示第二行時地址碼+0x40;
X |= 0x80; // 算出指令碼
WriteCommandLCM(X, 0); //這里不檢測忙信號,發送地址碼
WriteDataLCM(DData);
}
//按指定位置顯示一串字元
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
{
unsigned char ListLength;
ListLength = 0;
Y &= 0x1;
X &= 0xF; //限制X不能大於15,Y不能大於1
while (DData[ListLength]>0x20) //若到達字串尾則退出
{
if (X <= 0xF) //X坐標應小於0xF
{
DisplayOneChar(X, Y, DData[ListLength]); //顯示單個字元
ListLength++;
X++;
}
}
}
//5ms延時
void Delay5Ms(void)
{
unsigned int TempCyc = 5552;
while(TempCyc--);
}
//400ms延時
void Delay400Ms(void)
{
unsigned char TempCycA = 5;
unsigned int TempCycB;
while(TempCycA--)
{
TempCycB=7269;
while(TempCycB--);
};
F. keil實現oled屏不能顯示
字元錯誤。
使用51單片機驅動oled顯示屏,提供字元串顯示和浮點數顯示函數,提供主函數供參考調用方法。將OLED 模塊連接在PB6與PB7所在的埠上。打開STM32CubeMx,配置好SYS和RCC,然後將PB6配置為I2C1_SCL,PB7配置為I2C1_SDA,然後在左側I2C1選項中使能I2C。
G. 用單片機給OLED12864編寫圖形顯示程序
估計是oled驅動電壓過低造成的,OLED像素點亮數量多的時候,電流消耗加大。檢查你供給OLED的電壓。晶奧科技提供2.4寸、2.7寸、3.5寸、4.7寸oled顯示模組
H. 我用stm32103單片機,怎麼用keil32庫函數把pwm波顯示oled。不知怎麼弄在oled。
首位需要OLED 屏的驅動代碼,然後自己根據頻率和占空比畫圖顯示在屏幕上,也就是用取模軟體畫像素點