日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 程序員小哈
[導讀]最近很多網(wǎng)友后臺詢問Proteus仿真的內(nèi)容,借此機會我做了一個例子,跟大家分享一下,感興趣的可以后臺留言“MAX7219”可以得到完整的仿真工程,包括: Proteus原理圖,主芯片為STM32F103R6 Keil 5代碼工程,使用的是庫函數(shù)的方式編程。 仿真實現(xiàn)的功能點: MA

最近很多網(wǎng)友后臺詢問Proteus仿真的內(nèi)容,借此機會我做了一個例子,跟大家分享一下,感興趣的可以后臺留言“MAX7219”可以得到完整的仿真工程,包括:

  • Proteus原理圖,主芯片為STM32F103R6
  • Keil 5代碼工程,使用的是庫函數(shù)的方式編程。

仿真實現(xiàn)的功能點:

  • MAX7219芯片驅(qū)動8個數(shù)碼管;

  • STM32和DS1302結合,獲得實時時鐘,并顯示在數(shù)碼管上;

  • 兩個LED指示系統(tǒng)的當前的工作模式

    注意:鬧鐘的具體功能未實現(xiàn),可自行設計添加。

    • 全滅為默認模式0,實時獲取時間并顯示;
    • 左亮右滅為模式1,為設置時間模式,按前三個按鍵可以修改對應的時分秒;
    • 左滅右亮為模式2,為設置鬧鐘模式;
  • 系統(tǒng)中共有四個按鍵,按鍵4為模式修改鍵。

本文重點介紹一下MAX7219芯片的使用方法,使用MAX7219芯片驅(qū)動數(shù)碼管,電路很簡單,程序也不難,是理想的驅(qū)動數(shù)碼管的芯片,DS1302實時時鐘芯片的驅(qū)動留著以后再介紹。

MAX7219簡介

MAX7219是MAXIM公司生產(chǎn)的串行輸入/輸出共陰極數(shù)碼管顯示驅(qū)動芯片,一片MAX7219可驅(qū)動8個7段(包括小數(shù)點共8段)數(shù)字LED、LED條線圖形顯示器、或64個分立的LED發(fā)光二級管。

該芯片具有10MHz傳輸率的三線串行接口可與任何微處理器相連,只需一個外接電阻即可設置所有LED的段電流。

它的操作很簡單,MCU只需通過模擬SPI三線接口就可以將相關的指令寫入MAX7219的內(nèi)部指令和數(shù)據(jù)寄存器,同時它還允許用戶選擇多種譯碼方式和譯碼位。

此外它還支持多片7219串聯(lián)方式,這樣MCU就可以通過3根線(即串行數(shù)據(jù)線、串行時鐘線和芯片選通線)控制更多的數(shù)碼管顯示。

各引腳的功能為:

DIN : 串行數(shù)據(jù)輸入端

DOUT : 串行數(shù)據(jù)輸出端,用于級連擴展

LOAD : 裝載數(shù)據(jù)輸入

CLK: 串行時鐘輸入

DIG0~DIG7: 8位LED位選線,從共陰極LED中吸入電流

SEG A~SEG G DP:  7段驅(qū)動和小數(shù)點驅(qū)動

ISET:通過一個10K電阻和Vcc相連,設置段電流

時序圖分析

時序圖中我們要注意的地方:

  • 發(fā)送數(shù)據(jù)期間Max7219_pinCS引腳要拉低;
  • 發(fā)送數(shù)據(jù),首先發(fā)送高位,即先發(fā)送兩個字節(jié)數(shù)據(jù)的D15位,最后發(fā)送D0位;
  • 在Max7219_pinCLK引腳上升沿的時候,送出數(shù)據(jù)。

由上面的分析,我們得到向MAX7219寫入一個字節(jié)函數(shù)的具體實現(xiàn)如下:

//功能:向MAX7219寫入字節(jié)
//入口參數(shù):DATA
//出口參數(shù):無
//說明:
void Write_Max7219_byte(u8 DATA)         
{
 u8 i;    
 Max7219_pinCS=0;  
 for(i=8;i>=1;i--)
 { 
  Max7219_pinCLK=0;
  
  if(DATA&0x80)
  {
   Max7219_pinDIN = 1;
  }
  else
  {
   Max7219_pinDIN = 0;
  }  

  DATA=DATA<<1;
  Max7219_pinCLK=1;
 }
}


由于串行發(fā)送數(shù)據(jù),每次發(fā)送兩個字節(jié),即16位,串行數(shù)據(jù)格式如下:


所以我們封裝了一個完整的向MAX7219寫入數(shù)據(jù)的函數(shù),具體實現(xiàn)如下:

//功能:向MAX7219寫入數(shù)據(jù)
//入口參數(shù):address、dat
//出口參數(shù):無
//說明:
void Write_Max7219(u8 address,u8 dat)

    Max7219_pinCS=0;
 
    Write_Max7219_byte(address);
 
    Write_Max7219_byte(dat);
 
    Max7219_pinCS=1;
}

寄存器地址映射

MAX7219內(nèi)部的寄存器如下圖所示,主要有:譯碼控制寄存器、亮度控制寄存器、掃描界限寄存器、關斷模式寄存器、測試控制寄存器。

編程時只有正確操作這些寄存器,MAX7219才可正常工作。

  • 譯碼控制寄存器【Decode Mode】(X9H)

MAX7219有兩種譯碼方式:B譯碼方式和不譯碼方式。

當選擇不譯碼時,8個數(shù)據(jù)位分別一一對應7個段和小數(shù)點位;

B譯碼方式是BCD譯碼,直接送數(shù)據(jù)就可以顯示。

實際應用中可以按位設置選擇B譯碼或是不譯碼方式。


MAX7219的譯碼控制寄存器


Code B Font



由上面兩個表對比我們可知,不譯碼方式下數(shù)字0應該發(fā)送如下數(shù)據(jù):


下面的仿真實例中,咱們使用的是B譯碼的方式,直接發(fā)送對應的數(shù)據(jù)即可。

Write_Max7219(DECODE_MODE,0xff);       //選用全譯碼模式


由上分析,我們可知,如果我們想要讓第一個數(shù)碼管顯示數(shù)字2,則只需執(zhí)行如下語句即可實現(xiàn):

Write_Max7219(0x010x02);


  • 亮度控制寄存器【Intensity Register Format】(XAH)

共有16級可選擇,用于設置LED的顯示亮度,從0xX0~0xXF,0xXF最亮。

咱們仿真中使用的初始亮度如下:

Write_Max7219(INTENSITY,0x04); 


  • 掃描界限寄存器【Scan-Limit Register Format】(XBH)

此寄存器用于設置顯示的LED的個數(shù)(1~8),比如當設置為0xX4時,LED 0~5顯示。因為仿真中咱們用了8個數(shù)碼管,所以掃描界限寄存器設置如下:

Write_Max7219(SCAN_LIMIT,0x07);        //8只LED全用


原理圖


仿真使用的原理圖如下:


仿真結果


仿真過程中注意事項

  1. 芯片的VCC、GND引腳不連,一般不影響仿真效果,可以看到STM32主芯片上的晶振、電源,DS1302芯片的電源和地引腳都未連對應網(wǎng)絡,但是不影響仿真效果;
  2. 代碼中的延時跟仿真中的延時不匹配,導致在真正硬件中使用的按鍵掃描代碼,在仿真過程中,點擊按鈕響應的準確度不高;
  3. 主芯片的晶振頻率不能設置過高,否則數(shù)碼管顯示將嚴重閃爍。


說實話,真心不喜歡Proteus,本文撰寫過程中,遇到各種bug,幾度想放棄本文,后來總算是相對滿意的完成了仿真工作。

如果本文幫助了你,請幫忙點個 “在看” ,小哈在此謝過各位了。

相對而言還是在硬件上直接實際操作比較爽。

本月剩下的幾天將圍繞咱們的本月活動 “智能風扇” 來更新文章,大家敬請關注。

明天將開始投票下個月的“每月活動”內(nèi)容,感興趣的留意一下。


推薦閱讀:
基于STM32固件庫的MDK5工程建立
修改Keil工程名稱并添加其他模塊文件
Proteus仿真STM32實例:簡易搶答器


免責聲明:本文內(nèi)容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉