亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

您現在的位置是:首頁 > 技術閱讀 >  4位數碼管顯示模塊驅動

4位數碼管顯示模塊驅動

時間:2024-02-08

TM1637四位數碼管模塊是一個帶時鐘點的4位共陽數碼管(0.36英寸)的顯示模塊,驅動芯片為TM1637,驅動方式為IIC,因此只需2根信號線即可使單片機控制4位8段數碼管(數碼管8級亮度可調)。

模塊特點如下:

  • 顯示器件為4位共陽數碼管

  • 數碼管8級亮度可調

  • 控制接口電平可為5V或3.3V

  • IIC驅動,只需要占用兩個IO引腳即可實現驅動顯示功能

  • 帶有時鐘點,應用于電子鐘顯示很方便

TM1637管腳定義

硬件連接

模塊共4個引腳(GND、VCC、DIO、CLK),GND為地,VCC為供電電源,DIO為數據輸入輸出腳,CLK為時鐘信號腳。

用4根母對母杜邦線將4位數碼管顯示模塊和STM32核心板連接起來,如下圖、下表所示:

四位數碼管連接線STM32核心板
CLK黃色PA3
DIO藍色PA2
VCC紅色3.3V
GND黑色GND

IIC總線時序分析

因為TM1637是IIC總線驅動,所以驅動TM1637的總線時序需滿足IIC總線的規定。

下圖是指令數據傳輸過程(讀按鍵數據時序):

上面時序圖需要注意以下幾點:

  1. IIC總線對數據的有效性要求:在輸入數據時,當CLK是高電平時,DIO上的信號必須保持不變;只有CLK上的時鐘信號為低電平時,DIO上的信號才能改變。

所以我們封裝的寫字節的函數,都是在CLK引腳為低電平的時候,修改DIO的數據;

  1. 數據輸入的開始條件是CLK為高電平時,DIO由高變低;

具體代碼實現如下:

 //IIC開始void TM1637_start(void){	 CLK_1;	 DIO_1;	 delay_us(2);	 DIO_0;}
  1. 結束條件是CLK為高電平時,DIO由低電平變為高電平。

具體代碼實現如下:

//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);}
  1. TM1637的數據傳輸帶有應答信號ACK,在傳輸數據的過程中,在時鐘線的第九個時鐘芯片內部會產生一個應答信號ACK將DIO管腳拉低。

寫命令的實現

根據上面實現的IIC 寫字節函數,實現下面地址自動加1模式下向SRAM寫數據,下圖中時序圖和代碼部分,顏色、形狀相同部分相互對應。

起始信號之后,由DIO輸入TM1637的第一個字節作為一條指令。經過內部譯碼,取這個字節的B7、B6兩位比特位以區別不同的指令。

B7B6指令
01數據命令設置
10顯示控制命令設置
11地址命令設置

數據命令設置

該指令用來設置數據寫和讀,B1和B0位不允許設置01或11,有上面表格可以查到B7=0,B6=1。

比如:

0x40這個命令,就對應上表中第一行:寫數據到顯示寄存器。

地址命令設置

該指令用來設置顯示寄存器的地址,如果地址設為06H或更高,數據將被忽略,直到有效地址被設定;上電時,地址默認為00H。

比如:

0xC0這個就是地址命令,對應顯示地址00H,即第一個數碼管的地址,后面發送數據就可以給第一個數碼管設置顯示內容。

顯示控制

比如:

0x8F對應二進制1000 1111,B3=1代表開顯示,B2~B0的111代表脈沖寬度,即顯示亮度,通過表格可以得出0x8F代表最高亮度。

結果展示

這種數碼管可以顯示的內容有:0123456789AbcdEFHLnPU,下面視頻對這些內容進行了循環顯示。



資料獲取

微信公眾號后臺回復“四位數碼管”,可以下載本文對應的工程源碼。



主站蜘蛛池模板: 克什克腾旗| 若尔盖县| 南京市| 巍山| 和林格尔县| 吉林市| 玛曲县| 大宁县| 南部县| 蓬莱市| 宜昌市| 龙海市| 和龙市| 达拉特旗| 镇坪县| 昭觉县| 苍梧县| 柞水县| 尉氏县| 措勤县| 周宁县| 弥勒县| 科技| 苍梧县| 玛沁县| 拜城县| 武清区| 凯里市| 隆回县| 江西省| 双鸭山市| 宿迁市| 凤翔县| 滦南县| 桂平市| 新竹县| 昭平县| 电白县| 湟源县| 镇远县| 拜泉县|