CC2530之OLED12864程式詳解

2021-07-13 01:22:24 字數 1691 閱讀 7807

#include "code_tab.h"

#define lcd_scl p0_4 // 序列時鐘輸入

#define lcd_sda p0_5 // 序列資料輸入

#define lcd_rst p0_6 // 復位輸入端

#define lcd_dc p0_7 // 資料/命令控制

#define xlevell 0x00

#define xlevelh 0x10

#define xlevel ((xlevelh&0x0f)*16 + xlevell)

#define max_column 132

#define max_row 32

#define brightness 0xcf

#define x_width 132

#define y_width 32

#define oledwrdat(val) spiwritebyte(val, 1)

#define oledwrcmd(val) spiwritebyte(val, 0)

void delay_ms(uint ms)

return;

}/**

* oled ssd1306初始化

*/void lcdinit(void)

/*** 序列資料匯流排傳輸一位元組資料

*@param[in] byte:傳輸的資料

*@param[in] sel:0-寫命令,1-寫資料

*/static

void spiwritebyte(uchar byte, uchar sel)

}/**

* 設定顯示座標

*/void oledsetpos(uchar x, uchar y)

/**

* 全屏

*/void oledfill(uchar bmp_dat)

}/**

* 描述:顯示6*8一組標準ascii字串,顯示的座標(x,y),y為頁範圍0~7

*/void lcdp6x8str(uchar x, uchar y, uchar ch)

oledsetpos(x,y);

for(i=0; i<6; i++)

oledwrdat(f6x8[c][i]);

x += 6;

j++;

}}/**

* 描述:顯示8*16一組標準ascii字串,顯示的座標(x,y),y為頁範圍0~7

*/void lcdp8x16str(uchar x, uchar y, uchar ch)

oledsetpos(x,y);

for(i=0;i<8;i++)

oledwrdat(f8x16[c*16+i]);

oledsetpos(x,y+1);

for(i=0; i<8; i++)

oledwrdat(f8x16[c*16+i+8]);

x+=8;

j++;

}}/**

*/void lcddrawbmp(uchar x0, uchar y0, uchar x1, uchar y1, uchar bmp)

}}

CC2530使用OLED實現自動換行垂直滾動顯示

實驗平台 cc2350 螢幕引數 128 64 驅動晶元 ssd1306 使用oled時,想要重定向printf輸出到oled螢幕上,並實現橫向128列輸出完畢後或者遇到 n 時自動換行顯示,並且將已輸入內容向上移動一行,類似win的命令列視窗。實現的主要思路為ssd1306的設定顯示偏移量 set...

外部中斷 CC2530

中斷在計算機組成中都有詳細介紹。中斷分為外部中斷和內部中斷。對於cc2530片上系統來說,通用i o引腳設定為輸出時候,可以用於產生中斷,可以設定為外部訊號的上公升或下降沿出發。p0,p1,p2都有中斷使能位。對於ien1 2暫存器內的埠所有的位都是公共的。此外還包括其他很多態別的中斷 除了公共中斷...

CC2530學習筆記

第四單元 定時器計數器應用 1 定時器 計數器的分類 cc2530中共包括5個定時器 計數器,分別是定時器1 定時器2 定時器3 定時器4和睡眠定時器。2 定時器 計數器的作用 1 計數器功能 對任意時間間隔的輸入訊號的個數進行計數,一般用來對外界事件進行 計數。其輸入訊號一般來自微控制器外部開關型...