void函数调用时显示不允许使用不完整的_4位数码管显示模块驱动
TM1637四位數(shù)碼管模塊是一個(gè)帶時(shí)鐘點(diǎn)的4位共陽(yáng)數(shù)碼管(0.36英寸)的顯示模塊,驅(qū)動(dòng)芯片為T(mén)M1637,驅(qū)動(dòng)方式為IIC,因此只需2根信號(hào)線(xiàn)即可使單片機(jī)控制4位8段數(shù)碼管(數(shù)碼管8級(jí)亮度可調(diào))。
模塊特點(diǎn)如下:
顯示器件為4位共陽(yáng)數(shù)碼管
數(shù)碼管8級(jí)亮度可調(diào)
控制接口電平可為5V或3.3V
IIC驅(qū)動(dòng),只需要占用兩個(gè)IO引腳即可實(shí)現(xiàn)驅(qū)動(dòng)顯示功能
帶有時(shí)鐘點(diǎn),應(yīng)用于電子鐘顯示很方便
TM1637管腳定義
硬件連接
模塊共4個(gè)引腳(GND、VCC、DIO、CLK),GND為地,VCC為供電電源,DIO為數(shù)據(jù)輸入輸出腳,CLK為時(shí)鐘信號(hào)腳。
用4根母對(duì)母杜邦線(xiàn)將4位數(shù)碼管顯示模塊和STM32核心板連接起來(lái),如下圖、下表所示:
| CLK | 黃色 | PA3 |
| DIO | 藍(lán)色 | PA2 |
| VCC | 紅色 | 3.3V |
| GND | 黑色 | GND |
IIC總線(xiàn)時(shí)序分析
因?yàn)門(mén)M1637是IIC總線(xiàn)驅(qū)動(dòng),所以驅(qū)動(dòng)TM1637的總線(xiàn)時(shí)序需滿(mǎn)足IIC總線(xiàn)的規(guī)定。
下圖是指令數(shù)據(jù)傳輸過(guò)程(讀按鍵數(shù)據(jù)時(shí)序):
上面時(shí)序圖需要注意以下幾點(diǎn):
所以我們封裝的寫(xiě)字節(jié)的函數(shù),都是在CLK引腳為低電平的時(shí)候,修改DIO的數(shù)據(jù);
具體代碼實(shí)現(xiàn)如下:
//IIC開(kāi)始void TM1637_start(void){ CLK_1; DIO_1; delay_us(2); DIO_0;}具體代碼實(shí)現(xiàn)如下:
//IIC停止void TM1637_stop(void){ CLK_0; delay_us(2); DIO_0; delay_us(2); CLK_1; delay_us(2); DIO_1; delay_us(2);}寫(xiě)命令的實(shí)現(xiàn)
根據(jù)上面實(shí)現(xiàn)的IIC 寫(xiě)字節(jié)函數(shù),實(shí)現(xiàn)下面地址自動(dòng)加1模式下向SRAM寫(xiě)數(shù)據(jù),下圖中時(shí)序圖和代碼部分,顏色、形狀相同部分相互對(duì)應(yīng)。
起始信號(hào)之后,由DIO輸入TM1637的第一個(gè)字節(jié)作為一條指令。經(jīng)過(guò)內(nèi)部譯碼,取這個(gè)字節(jié)的B7、B6兩位比特位以區(qū)別不同的指令。
| 0 | 1 | 數(shù)據(jù)命令設(shè)置 |
| 1 | 0 | 顯示控制命令設(shè)置 |
| 1 | 1 | 地址命令設(shè)置 |
數(shù)據(jù)命令設(shè)置
該指令用來(lái)設(shè)置數(shù)據(jù)寫(xiě)和讀,B1和B0位不允許設(shè)置01或11,有上面表格可以查到B7=0,B6=1。
比如:
0x40這個(gè)命令,就對(duì)應(yīng)上表中第一行:寫(xiě)數(shù)據(jù)到顯示寄存器。
地址命令設(shè)置
該指令用來(lái)設(shè)置顯示寄存器的地址,如果地址設(shè)為06H或更高,數(shù)據(jù)將被忽略,直到有效地址被設(shè)定;上電時(shí),地址默認(rèn)為00H。
比如:
0xC0這個(gè)就是地址命令,對(duì)應(yīng)顯示地址00H,即第一個(gè)數(shù)碼管的地址,后面發(fā)送數(shù)據(jù)就可以給第一個(gè)數(shù)碼管設(shè)置顯示內(nèi)容。
顯示控制
比如:
0x8F對(duì)應(yīng)二進(jìn)制1000 1111,B3=1代表開(kāi)顯示,B2~B0的111代表脈沖寬度,即顯示亮度,通過(guò)表格可以得出0x8F代表最高亮度。
結(jié)果展示
這種數(shù)碼管可以顯示的內(nèi)容有:0123456789AbcdEFHLnPU,下面視頻對(duì)這些內(nèi)容進(jìn)行了循環(huán)顯示。
總結(jié)
以上是生活随笔為你收集整理的void函数调用时显示不允许使用不完整的_4位数码管显示模块驱动的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Flink-Sink_将结果输出到Kaf
- 下一篇: 在统计学中参数的含义是指_《统计学》名词