08 OLED實驗 模擬IIC

2021-10-03 15:09:33 字數 3185 閱讀 3504

硬體連線:

pa5        scl

pa7        sda

/*

@brief 初始化oled與微控制器的io介面

@param 無

@retval 無

*/static

void

oled_gpio_init

(void

)

/*

@brief 模擬iic起始訊號

@param 無

@retval 無

*/static

void

oled_iic_start

(void)/*

@brief 模擬iic停止訊號

@param 無

@retval 無

*/static

void

oled_iic_stop

(void)/*

@brief 模擬iic讀取從機應答訊號

@param 無

@retval 無

*/static

unsigned

char

iic_wait_ack

(void)/*

@brief iic寫入乙個位元組

@param iic_byte:寫入的位元組

@retval 無

*/static

void

write_iic_byte

(unsigned

char iic_byte)

oled_sclk_clr()

;//時鐘線置低

delay(1

);//延遲1us

while

(iic_wait_ack()

);//從機應答}/*

@brief iic寫入命令

@param iic_command:寫入的命令

@retval 無

*/static

void

write_iic_command

(unsigned

char iic_command)

/* @brief iic寫入資料

@param iic_data:資料

@retval 無

*/static

void

write_iic_data

(unsigned

char iic_data)

/*

@brief 對oled寫入乙個位元組

@param dat:資料

cmd:1,寫誒資料;0,寫入命令

@retval 無

*/void

oled_wr_byte

(unsigned

char dat,

unsigned

char cmd)

else}/*

@brief 設定資料寫入的起始行、列

@retval 無

*/void

oled_set_pos

(unsigned

char x,

unsigned

char y)

/* @brief 開顯示

@param 無

@retval 無

*/void

oled_display_on

(void)/*

@brief 關顯示

@param 無

@retval 無

*/void

oled_display_off

(void)/*

@brief 清屏

@param 無

@retval 無

*/void

oled_clear

(void)}

/* @brief 顯示乙個字元

@param x:起始列

y:起始頁,size = 16佔兩頁;size = 12佔1頁

chr:字元

@retval 無

*/void

oled_showchar

(unsigned

char x,

unsigned

char y,

unsigned

char chr)

//如果列數超出了範圍,就從下2頁的第0列開始

if(size ==16)

//字元大小如果為 16 = 8*16

else

//字元大小為 6 = 6*8}/*

@brief 顯示字串

@param x:起始列

y:起始頁

@retval 無

*/void

oled_showstring

(unsigned

char x,

unsigned

char y,

unsigned

char

*chr)

//如果x大於等於128,切換頁,從該頁的第一列顯示

j++;//下乙個字元}}

/* @brief 顯示中文

@param x:起始列;乙個字型佔16列

y:起始頁;乙個字型佔兩頁

no:字型的序號

@retval 無

*/void

oled_showchinese

(unsigned

char x,

unsigned

char y,

unsigned

char no)

oled_set_pos

(x,y+1)

;//畫第二頁

for(t=

0;t<

16;t++

)//迴圈16次,畫第二頁的16列}/*

@brief oled初始化函式

@param 無

@retval 無

*/void

oled_init

(void

)

int

main

(void

)}

北郵08複試模擬problem B

第二題 統計字母 submit 4279 accepted 1257 time limit 1000ms memory limit 65535k description 給定乙個只有小寫英文本母組成的字串,串長為n。請你編寫程式求出這個字串中出現次數最多的字母。input 輸入的第一行為t 0 t ...

北郵08複試模擬problem C

第三題 二叉樹前序遍歷 submit 2541 accepted 674 time limit 1000ms memory limit 65535k description 給定一棵有n個結點的二叉樹,結點的編號為0 n 1。請你編寫程式輸出二叉樹的前序遍歷序列。input 輸入的第一行是乙個正整數...

Redis 08 模擬登入案例

使用者在2分鐘內,僅允許輸入錯誤密碼5次。如果超過次數,限制其登入1小時。12306 登入錯誤次數key user logincount fail 使用者名稱 鎖定限制登入key user logintime lock 使用者名稱 執行登入功能時 1判斷當前登入的使用者是否被限制登入 1.1如果沒有...