單片機的結(jié)構和技術原理
2020-07-30 16:55:25閱讀量:370
MCU根據(jù)其存儲器結(jié)構可分為哈佛(Harvard)結(jié)構和馮?諾依曼(Von Neumann)結(jié)構。現(xiàn)在的單片機絕大多數(shù)都是基于馮·諾伊曼結(jié)構的,這種結(jié)構清楚地定義了嵌入式系統(tǒng)所必需的四個基本部分:一個中央處理器核心,程序存儲器(只讀存儲器或者閃存)、數(shù)據(jù)存儲器(隨機存儲器)、一個或者更多的定時/計時器,還有用來與外圍設備以及擴展資源進行通信的輸入/輸出端口,所有這些都被集成在單個集成電路芯片上。
MCU根據(jù)指令結(jié)構又可分為CISC(Complex Instruction Set Computer,復雜指令集計算機)和RISC(Reduced Instruction Set Comuter,精簡指令集計算機微控制器)
相關閱讀>>軟硬件兼容和業(yè)界首款1元內(nèi)MCU
MCU同溫度傳感器之間通過I2C總線連接。I2C總線占用2條MCU輸入輸出口線,二者之間的通信完全依靠軟件完成。溫度傳感器的地址可以通過2根地址引腳設定,這使得一根I2C總線上可以同時連接8個這樣的傳感器。本方案中,傳感器的7位地址已經(jīng)設定為1001000。MCU需要訪問傳感器時,先要發(fā)出一個8位的寄存器指針,然后再發(fā)出傳感器的地址(7位地址,低位是WR信號)。傳感器中有3個寄存器可供MCU使用,8位寄存器指針就是用來確定MCU究竟要使用哪個寄存器的。本方案中,主程序會不斷更新傳感器的配置寄存器,這會使傳感器工作于單步模式,每更新一次就會測量一次溫度。
要讀取傳感器測量值寄存器的內(nèi)容,MCU必須首先發(fā)送傳感器地址和寄存器指針。MCU發(fā)出一個啟動信號,接著發(fā)出傳感器地址,然后將RD/WR管腳設為高電平,就可以讀取測量值寄存器。
為了讀出傳感器測量值寄存器中的16位數(shù)據(jù),MCU必須與傳感器進行兩次8位數(shù)據(jù)通信。當傳感器上電工作時,默認的測量精度為9位,分辨力為0.5 C/LSB(量程為-128.5 C至128.5 C)。本方案采用默認測量精度,根據(jù)需要,可以重新設置傳感器,將測量精度提高到12位。如果只要求作一般的溫度指示,比如自動調(diào)溫器,那么分辨力達到1 C就可以滿足要求了。這種情況下,傳感器的低8位數(shù)據(jù)可以忽略,只用高8位數(shù)據(jù)就可以達到分辨力1 C的設計要求。由于讀取寄存器時是按先高8位后低8位的順序,所以低8位數(shù)據(jù)既可以讀,也可以不讀。只讀取高8位數(shù)據(jù)的好處有二,第一是可以縮短MCU和傳感器的工作時間,降低功耗;第二是不影響分辨力指標。
MCU讀取傳感器的測量值后,接下來就要進行換算并將結(jié)果顯示在LCD上。整個處理過程包括:判斷顯示結(jié)果的正負號,進行二進制碼到BCD碼的轉(zhuǎn)換,將數(shù)據(jù)傳到LCD的相關寄存器中。

ISO1540DR/隔離式I2C | 2.78 | |
LMR14050SDDAR/DC-DC電源芯片 | 1.42 | |
LMR16030SDDAR/DC-DC電源芯片 | 1.64 | |
TPL0501-100DCNR/數(shù)字電位器 | 3.19 | |
TCA9535PWR/I/O擴展器 | 1.58 | |
MC33063ADR/DC-DC電源芯片 | 0.5622 | |
TLV3201AIDBVR/比較器 | 1.3 | |
MP1584EN-LF-Z/DC-DC電源芯片 | 15.27 | |
MP4560DN-LF-Z/DC-DC電源芯片 | 21.21 | |
MP2338GTL-Z/DC-DC電源芯片 | 8.36 |