基於數碼管和OLED的Arduino桌面級顯示裝置

2021-10-07 03:39:11 字數 2212 閱讀 4008

​ 前天才回到學校,打掃了兩天的宿舍,今天終於有空整理自己的東西了。於是我找到了塵封已久的基於數碼管和oled的arduino桌面級顯示裝置(之前做好了,但是由於各種原因被我拆掉了一些零件),今天可算是把它修復了,以後就掛宿舍欣賞了(手動滑稽)。

​ 關於數碼管程式及oled的arduino程式編寫可檢視我之前的部落格,在此我就不在多敘述。

/* 數碼管和oled多彩顯示

* 用於裝飾桌面

* oled基於adafruit庫編寫

* 數碼管基於時序編寫

*/#include

#include

#include

#define screen_width 128

// oled display width, in pixels

#define screen_height 32

// oled display height, in pixels

#define oled_reset 4

// reset pin # (or -1 if sharing arduino reset pin)

adafruit_ssd1306 display

(screen_width, screen_height,

&wire, oled_reset)

;//oled顯示屏的scl接a5,sda接a4

#define d_a 2

//一一對應電晶體的單個管

#define d_b 3

#define d_c 4

#define d_d 5

#define d_e 6

#define d_f 7

#define d_g 8

#define d_h 9

#define com1 10

//對應4位電晶體的管號位

#define com2 11

#define com3 12

#define com4 13

bool digital_tube_number[37]

[8]=

,//0

,//1

,//2

,//3

,//4

,//5

,//6

,//7

,//8

,//9

,//a10

,//b11

,//c12

,//d13

,//e14

,//f15

,//g16

,//h17

,//i18

,//j19

,//k20

,//l21

,//m22

,//n23

,//o24

,//p25

,//q26

,//r27

,//s28

,//t29

,//u30

,//v31

,//w32

,//x33

,//y34

,//不顯示

,//小數點36.};

int delay_time =2;

void

setup()

for(

int i=com1;i<=com4;i++)}

void

loop()

/* 動態顯示

* a數碼管1顯示,b數碼管2顯示,c數碼管3顯示,d數碼管4顯示,

* time1視覺暫留最短時間,time2動態時間

*/void

digital_tube_dynamic_display

(int a,

int b,

int c,

int d,

int time1,

float time2)

for(

int i=

0;i250/time1;i++)}

void

digital_tube_display_sametime

(int number)

}void

digital_tube_display

(int com,

int number)

switch

(com)

for(

int i=

0;i<

8;i++

)}

基於數碼管的簡單時鐘系統

include 標頭檔案 define uchar unsigned char 巨集定義 之後用uchar代替unsigned char 這裡指無符號字元 define uint unsigned int 巨集定義 同上 無符號整數 sbit beep p0 0 uchar dat 定義初始化顯示時...

數碼管的驅動

乙個數碼管需要點亮多長時間呢?也就是說要多長時間完成一次全部數碼管的掃瞄呢 很明顯 整體掃瞄時間 單個數碼管點亮時間 數碼管個數 答案是 10ms 以內。鬼影 的出現,主要是在數碼管位選和段選產生的瞬態造成的。解決方案有兩種 關閉段或者關閉位。示例 如下 include sbit addr0 p1 ...

驅動數碼管的實驗

課程名稱 微控制器原理與應用 專業班級 嵌入式14103班 姓 名 趙存檔 學 號 14160310317 2015 2016 學年第 1 學期 實驗專案 四 預習報告 專案名稱 驅動7段數碼管實驗 實驗目的及要求 1 掌握用proteus畫電路圖。2 用keil編寫 進行除錯。3 進行 測試 實驗...