版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
9.1單片機系統(tǒng)的設(shè)計開發(fā)過程9.2單片機系統(tǒng)的可靠性技術(shù)9.3單片機系統(tǒng)設(shè)計開發(fā)應(yīng)用舉例9.4單片機串行擴展單元介紹9.1單片機系統(tǒng)的設(shè)計開發(fā)過程
9.1.1單片機典型應(yīng)用系統(tǒng)
9.1.2單片機應(yīng)用系統(tǒng)開發(fā)過程9.2單片機系統(tǒng)的可靠性技術(shù)9.3單片機系統(tǒng)設(shè)計開發(fā)應(yīng)用舉例9.4單片機串行擴展單元介紹第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
一個完整的單片機應(yīng)用系統(tǒng)由單片機最小應(yīng)用系統(tǒng)、前向通道、后向通道、人機交互通道與計算機相互通道組成。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
單片機最小系統(tǒng)
8031最小應(yīng)用系統(tǒng)(外擴ROM)最小應(yīng)用系統(tǒng)——具有最簡單配置的單片機系統(tǒng)第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
8051和8751最小應(yīng)用系統(tǒng)第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
是單片機實現(xiàn)外部信息的輸入的通道,主要是數(shù)據(jù)采集單元、信號調(diào)理單元等前向通道
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
是單片機實現(xiàn)外部信息的輸出通道,主要有DA轉(zhuǎn)換電路、輸出驅(qū)動電路等。后向通道
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
為對應(yīng)用系統(tǒng)進行干預(yù)或了解系統(tǒng)運行狀態(tài)所設(shè)置的交互通道。主要有鍵盤、顯示器等接口電路。人機對話通道
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
是解決計算機系統(tǒng)之間信息交換目的而建立的數(shù)據(jù)傳輸通道,主要為串行口方式。相互通道
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
9.1單片機系統(tǒng)的設(shè)計開發(fā)過程
9.1單片機典型應(yīng)用系統(tǒng)
9.2單片機應(yīng)用系統(tǒng)開發(fā)過程
9.2單片機系統(tǒng)的可靠性技術(shù)9.3單片機系統(tǒng)設(shè)計開發(fā)應(yīng)用舉例9.4單片機串行擴展單元介紹第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
對于一個實際的課題和項目,從任務(wù)的提出到系統(tǒng)的選型、確定、研制直至投入運行要經(jīng)過一系列的過程。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
單片機本身無開發(fā)能力,必須借助開發(fā)工具開發(fā)應(yīng)用軟件。獨立型仿真結(jié)構(gòu),配備有EPROM讀出/寫入器、仿真插頭和其它外設(shè),通過USB接口與計算機相連。方法1:通用型單片機開發(fā)系統(tǒng)
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
方法2:軟件模擬開發(fā)系統(tǒng)
基于Proteus(Keil)仿真軟件的設(shè)計與開發(fā)工具第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
9.1單片機系統(tǒng)的設(shè)計開發(fā)過程9.2單片機系統(tǒng)的可靠性技術(shù)9.3單片機系統(tǒng)設(shè)計開發(fā)應(yīng)用舉例9.4單片機串行擴展單元介紹第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
智能儀器是一種依靠嵌入式計算機技術(shù)發(fā)展的新型電子測控單元,其基本功能是根據(jù)傳感器的實時信號和儀器設(shè)定的目標(biāo)參數(shù)進行測量與控制。智能儀器的一種典型形式第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
智能儀器結(jié)構(gòu):儀器面板(機箱)+線路板+接線端子。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
儀器面板:4~6位數(shù)碼管顯示器、3~5只薄膜按鍵和若干只LED狀態(tài)指示燈組成。智能儀器通常都不采用0~9數(shù)字按鍵方案,而是通過【增大】和【減小】兩只功能鍵,與【設(shè)置/切換】和【確認(rèn)】等鍵配合,實現(xiàn)對智能儀器內(nèi)置參數(shù)的設(shè)定與輸出控制功能。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
本例的總體設(shè)計目標(biāo):實現(xiàn)1路電壓信號實時測量/顯示/報警輸出功能。輸入信號電壓:0~5VDCAD轉(zhuǎn)換分辨率:8bit顯示信息:1位參數(shù)字符+3位十進制采樣值。控制參數(shù):下限報警值(L)和上限報警值(H)。基本功能:當(dāng)采樣值大于H時,高位報警;當(dāng)采樣值小于L時,低位報警;當(dāng)采樣值介于L和H之間時,無報警。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
參數(shù)設(shè)置與按鍵控制功能:0#鍵——進入或退出參數(shù)設(shè)置狀態(tài)鍵??上群笳{(diào)出H和L兩個參數(shù)當(dāng)前值;當(dāng)一輪循環(huán)完成后可退出參數(shù)設(shè)置狀態(tài);1#鍵——參數(shù)設(shè)置確認(rèn)鍵??杀4娈?dāng)前參數(shù)值,并轉(zhuǎn)入等待下一參數(shù)確認(rèn)狀態(tài);當(dāng)兩個參數(shù)都輪回后可退出參數(shù)設(shè)置狀態(tài);2#和3#鍵——增、減鍵,可對當(dāng)前參數(shù)值加減10計算,并更新顯示;若結(jié)果值超出0-255范圍后可自動循環(huán)處理。要求:只有壓下并隨后抬起某鍵時才能認(rèn)定為按鍵過程有效(防止連擊);只有在參數(shù)設(shè)置狀態(tài)下才對1-3#鍵的動作有響應(yīng);在按鍵未抬起或在參數(shù)設(shè)置狀態(tài)未退出期間不能影響對數(shù)據(jù)采集和控制過程——并行結(jié)構(gòu)。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
動態(tài)顯示器四聯(lián)共陰極數(shù)碼管,段碼通過鎖存器74LS245驅(qū)動后接于P0口,位碼則由4只PNP三極管驅(qū)動后接于P2.0~P2.3口。硬件設(shè)計部分第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
AD轉(zhuǎn)換器采用逐次比較方式的芯片ADC0809,其并行數(shù)據(jù)輸出端直接連接于P2口,四個控制端CLOCK、START、EOC和OE分別接于P2.4~P2.7。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
串口鍵盤四只按鍵通過串行輸入并行輸出移位寄存器74LS164與單片機接口。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
完整電路原理圖程序由兩個主要的功能模塊組成——控制模塊(control.c)和菜單模塊(menu.c)??刂颇K建立在A/D轉(zhuǎn)換和LED顯示的基礎(chǔ)上,菜單模塊建立在按鍵檢測和LED顯示的基礎(chǔ)上,而按鍵檢測又建立在串口輸出的基礎(chǔ)上。
軟件設(shè)計部分第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
隨時都能進入?yún)?shù)設(shè)置狀態(tài),且不能影響數(shù)據(jù)采集和控制輸出(即使在按鍵未抬起或在參數(shù)設(shè)置狀態(tài)未退出期間。關(guān)鍵問題是如何使控制模塊和菜單“同時”運行voidmain(){
…
while(1){ menu_thread(); control_thread();
}}交替調(diào)用兩個線程函數(shù):只有在菜單線程被調(diào)用時,菜單里的參數(shù)項才會在顯示器上刷新,而用戶通過鍵盤對菜單的操作才能夠得到程序的響應(yīng)和處理。只有控制線程被調(diào)用時,才會進行A/D采樣并刷新顯示器上的內(nèi)容,控制報警器的動作。
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
main.c中包含兩個主模塊:控制線程的代碼框架結(jié)構(gòu):‘‘‘‘第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
【分析】一般來講control_thread()被調(diào)用執(zhí)行時間不會很長,但從用戶調(diào)用menu_thread()修改若干參數(shù)直至退出的過程一定會持續(xù)較長的時間。如果menu_thread()函數(shù)設(shè)計成要等到菜單關(guān)閉才返回,那么采樣和控制的過程一定會受到嚴(yán)重的干擾。減小菜單函數(shù)占用時間的關(guān)鍵在于隨時“記住”其當(dāng)前工作狀態(tài),并及時退出菜單函數(shù),而再次進入菜單函數(shù)時則應(yīng)接著前次的狀態(tài)繼續(xù)執(zhí)行。voidmain(){
……
while(1){
menu_thread();
ontrol_thread();
}}第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
【要點】——采用兩個記錄菜單狀態(tài)的變量:_menu_status表示菜單當(dāng)前狀態(tài),其值分別為:
MENU_ON(菜單處于進行狀態(tài))
MENU_OFF(菜單處于關(guān)閉狀態(tài))_menu_idx表示當(dāng)前處理的是哪個參數(shù),其值為0~MENU_NUM。由于是靠記憶菜單狀態(tài)而不再靠等待,故無論參數(shù)設(shè)置進行到什么階段,也無論是否有鍵被按下,菜單函數(shù)都可以盡快結(jié)束,待下次進入時按前次退出時的狀態(tài)繼續(xù)進行。①如何記住菜單模塊的運行狀態(tài)第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
菜單線程的代碼主要框架:
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
menu_thread()里會調(diào)用get_key()以獲得被按下的鍵值。為滿足menu_thread()每次執(zhí)行的時間都不能很長這一要求,無論是否有鍵被按下,也無論用戶是否按下這個鍵不抬起,函數(shù)get_key()都必須既能檢測到按鍵,又能在很短的時間里返回。減小get_key()函數(shù)占用時間的關(guān)鍵在于隨時“記住”其當(dāng)前工作狀態(tài),并及時退出get_key()函數(shù)。而再次進入get_key()函數(shù)時則應(yīng)接著前次的狀態(tài)繼續(xù)執(zhí)行。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
【要點】采用記錄按鍵檢測狀態(tài)的變量_key_status,其值分別為:
CHECK_KEY_DOWN(壓下檢測任務(wù))
CHECK_KEY_UP(抬起檢測任務(wù))每個按鍵的狀態(tài)由按鍵狀態(tài)檢測函數(shù)_check_key(key_idx)進行判斷,其值分別為:
KEY_DOWN(壓下)
KEY_UP(抬起)②如何記住按鍵檢測模塊的運行狀態(tài)第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
基本思路:只有當(dāng)某個按鍵先壓下后抬起時,該按鍵才為當(dāng)前有效鍵,輸出鍵值0~3,否則輸出-1。按鍵處理程序
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
按鍵檢測原理:1、低電平送Q7端,同時高電平送到Q6,Q5和Q4。2、檢測P36是否為低電平。如果是,表示第1個按鍵被按下,否則沒按下。3、以下依次類推,直至按鍵掃描結(jié)束。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
按鍵狀態(tài)檢測函數(shù)
待查按鍵_key_idx的鍵碼需通過一個串口輸出函數(shù)serial()送出第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
整個項目由7個程序文件所組成:六個C語言文件,一個匯編語言文件。
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
實際運行效果第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
9.1單片機系統(tǒng)的設(shè)計開發(fā)過程9.2單片機系統(tǒng)的可靠性技術(shù)9.3單片機系統(tǒng)設(shè)計開發(fā)應(yīng)用舉例9.4單片機串行擴展單元介紹9.4.1串行AD轉(zhuǎn)換芯片MAX124X及應(yīng)用9.4.2串行DA轉(zhuǎn)換芯片LTC145X及應(yīng)用9.4.3串行E2PROM存儲器AT24CXX及應(yīng)用9.4.4字符型液晶顯示模塊LM1602及應(yīng)用9.4.5串行日歷時鐘芯片DS1302及應(yīng)用串行擴展單元具有體積小、占用單片機引腳少、性能和功能全面等特點,是外圍接口器件的發(fā)展方向。通過引入幾種常用的串口擴展單元以及字符型液晶顯示器模塊,并介紹其工作原理、接口電路和編程方法,可為學(xué)有余力的讀者或大學(xué)生科技創(chuàng)新活動提供一些實用性較強的應(yīng)用方案。在此基礎(chǔ)上進行靈活組合,即可開發(fā)出各種有實用價值的單片機應(yīng)用系統(tǒng)。該節(jié)可根據(jù)讀者需要作為選修或自學(xué)內(nèi)容安排。本次新增的接口器件都是可在Proteus平臺上仿真運行的,因而不僅有助于讀者學(xué)習(xí)掌握,也為讀者的應(yīng)用開發(fā)打下了堅實基礎(chǔ)。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
9.1單片機系統(tǒng)的設(shè)計開發(fā)過程9.2單片機系統(tǒng)的可靠性技術(shù)9.3單片機系統(tǒng)設(shè)計開發(fā)應(yīng)用舉例9.4單片機串行擴展單元介紹9.4.1串行AD轉(zhuǎn)換芯片MAX124X及應(yīng)用9.4.2串行DA轉(zhuǎn)換芯片LTC145X及應(yīng)用9.4.3串行E2PROM存儲器AT24CXX及應(yīng)用9.4.4字符型液晶顯示模塊LM1602及應(yīng)用9.4.5串行日歷時鐘芯片DS1302及應(yīng)用第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
1、原理簡介MAX124X是美國MaximIntegratedProducts公司的一種單通道12位串行A/D轉(zhuǎn)換器,包含兩種具體型號,即MAX1240和MAX1241。手冊其基本特性這款芯片具有低功耗(3mW)、高精度(12位)、寬電壓(2.7~5.25V)、體積?。?引腳)和接口簡單(3線)等優(yōu)點。外部引腳和內(nèi)部結(jié)構(gòu)框圖第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
待檢測模擬信號經(jīng)由AIN送到12位逐次逼近型(SAR)AD轉(zhuǎn)換器中;
在邏輯控制單元、內(nèi)部時鐘單元和參考電壓的作用下進行模數(shù)轉(zhuǎn)換,結(jié)果經(jīng)輸出移位寄存器轉(zhuǎn)為串行數(shù)據(jù)經(jīng)由DOUT輸出;/SHDN是關(guān)斷控制(引腳3),低電平時可使AD轉(zhuǎn)換器處于休眠狀態(tài)以減少功耗;
串行輸出過程中,SCLK負(fù)責(zé)提供移位時鐘脈沖,/CS提供低電平使能信號。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
工作時序
一次完整AD轉(zhuǎn)換過程的時序如下:先使片選信號/CS拉低,同時保持時鐘端SCLK為低電平,本輪AD轉(zhuǎn)換即可啟動;AD轉(zhuǎn)換完成后,數(shù)據(jù)輸出端DOUT將由低電平自動翻轉(zhuǎn)為高電平;在SCLK端送入移位時鐘脈沖,下降沿時位數(shù)據(jù)出現(xiàn)在DOUT端(高位在先);連續(xù)送入13個移位脈沖后本輪AD轉(zhuǎn)換的數(shù)據(jù)輸出完畢;使片選信號/CS拉高,為下一輪模數(shù)轉(zhuǎn)換做準(zhǔn)備?!緦嵗?】利用MAX1241芯片設(shè)計一個單片機AD轉(zhuǎn)換器,將電位器的5V可調(diào)電壓轉(zhuǎn)換為十進制數(shù)字量并動態(tài)顯示在四聯(lián)共陰極數(shù)碼管上。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
【解】MAX1241的DOUT、SCLK、/CS三個引腳分別與80C51單片機的P1.0、P1.1和P1.2相連。由于不考慮節(jié)能問題,/SHDN引腳直接接高電平。四聯(lián)共陰極數(shù)碼管的接線可參考圖9.9,原理不再贅述。編程分析:為簡單起見本例采用查詢法,AD轉(zhuǎn)換函數(shù)如下:unsignedintad(){ //AD轉(zhuǎn)換函數(shù) unsignedintresult=0; unsignedchari=0; lcs=0; //仿照轉(zhuǎn)換時序開始AD轉(zhuǎn)換 while(dout==0); //等待轉(zhuǎn)換結(jié)束 for(;i<12;i++){ //串行方式輸出轉(zhuǎn)換結(jié)果 sclk=1; //形成移位脈沖 delay(); sclk=0; result<<=1; //轉(zhuǎn)換結(jié)果拼裝到變量result中 result|=dout; } sclk=1; //發(fā)出第13個移位脈沖 delay(); sclk=0; lcs=1; //結(jié)束AD轉(zhuǎn)換 returnresult; //返回轉(zhuǎn)換結(jié)果}第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
在查詢DOUT引腳電平得知轉(zhuǎn)換結(jié)束后,用軟件方式使P1.1引腳連續(xù)輸出13個移位時鐘脈沖,期間利用result|=dout;語句將位數(shù)據(jù)拼裝成并行數(shù)據(jù)。實例1的完整程序第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
仿真運行結(jié)果第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
MAX1241僅占用3只51單片機引腳,而采樣分辨率卻較之先前介紹的ADC0809大大提高(滿度計量值由255提高到4095),因而利用該款A(yù)DC可以滿足多數(shù)工況的數(shù)據(jù)采集精度要求。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
9.1單片機系統(tǒng)的設(shè)計開發(fā)過程9.2單片機系統(tǒng)的可靠性技術(shù)9.3單片機系統(tǒng)設(shè)計開發(fā)應(yīng)用舉例9.4單片機串行擴展單元介紹9.4.1串行AD轉(zhuǎn)換芯片MAX124X及應(yīng)用9.4.2串行DA轉(zhuǎn)換芯片LTC145X及應(yīng)用9.4.3串行E2PROM存儲器AT24CXX及應(yīng)用9.4.4字符型液晶顯示模塊LM1602及應(yīng)用9.4.5串行日歷時鐘芯片DS1302及應(yīng)用TC145X是美國LINEAR公司的一種單通道12位串行D/A轉(zhuǎn)換器,包含三種具體型號,即LTC1451/LTC1452/LTC1453L。產(chǎn)品手冊其基本特性:第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
特點:低功耗(400uA)、高精度(12位)、寬電壓(2.7~5.25V)、體積?。?引腳)、接口簡單(3線)和Rail-to-Rail(軌至軌)特性(其內(nèi)部運算放大器的最大輸出電壓可以達到電源電壓Vcc)。外部引腳和內(nèi)部結(jié)構(gòu)框圖第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
該芯片由12位移位寄存器、DAC寄存器、DA轉(zhuǎn)換器和運算放大器組成。串行輸入信號在CLK移位時鐘脈沖和/CS/LD片選信號的配合下由DIN送入移位寄存器中,同時也經(jīng)由DOUT作為級聯(lián)輸出。待12位串行數(shù)據(jù)到齊后,以并行方式通過DAC寄存器進入DA轉(zhuǎn)換器。DA轉(zhuǎn)換形成的電流信號再經(jīng)運算放大器變換為電壓信號由VOUT輸出。工作時序第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
一次完整DA轉(zhuǎn)換過程的時序如下:使/CS/LD信號拉低;DIN端出現(xiàn)1bit數(shù)據(jù)(高位在先);CLK端發(fā)1正脈沖,上升沿時將數(shù)據(jù)寫入移位寄存器;上兩步重復(fù)12次,可將12位數(shù)據(jù)串入LTC145X;DA轉(zhuǎn)換后使/CS/LD信號拉高,為下一輪轉(zhuǎn)換做準(zhǔn)備?!緦嵗?】利用LTC1451芯片設(shè)計一個單片機DA轉(zhuǎn)換器,使其具有負(fù)半周正弦波信號發(fā)生功能,并通過虛擬示波器檢查波形效果。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
編程分析:先使/CS/LD引腳發(fā)一個正脈沖,然后依次在CLK和DIN引腳上發(fā)送12個移位脈沖和位數(shù)據(jù),此后再由/CS/LD發(fā)一個正脈沖,本輪DA轉(zhuǎn)換便完成了。程序中語句din=(v>>i)&0x01的作用是將并行數(shù)據(jù)分解成位數(shù)據(jù),即先將有效位數(shù)據(jù)右移至字節(jié)最低位,然后將除了最低位之外的所有高位清零(整個字節(jié)的值非0即1),結(jié)果賦值給位變量din,從而實現(xiàn)了數(shù)據(jù)的并串轉(zhuǎn)換。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
實例2的完整程序:第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
實例2的程序運行效果第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
理論上12位DAC的轉(zhuǎn)換精度是8位DAC的16倍,因而由虛擬示波器觀察到的電壓輸出波形較之先前介紹的DAC0832平滑很多。此款DAC實現(xiàn)的高精度DA轉(zhuǎn)換已在過程控制領(lǐng)域得到廣泛應(yīng)用。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
9.1單片機系統(tǒng)的設(shè)計開發(fā)過程9.2單片機系統(tǒng)的可靠性技術(shù)9.3單片機系統(tǒng)設(shè)計開發(fā)應(yīng)用舉例9.4單片機串行擴展單元介紹9.4.1串行AD轉(zhuǎn)換芯片MAX124X及應(yīng)用9.4.2串行DA轉(zhuǎn)換芯片LTC145X及應(yīng)用9.4.3串行E2PROM存儲器AT24CXX及應(yīng)用9.4.4字符型液晶顯示模塊LM1602及應(yīng)用9.4.5串行日歷時鐘芯片DS1302及應(yīng)用E2PROM指的是“電可擦除可編程只讀存儲器”,即“ElectricallyErasableProgrammableRead-OnlyMemory”。其特點是存儲器中的數(shù)據(jù)信息在失電情況下不會丟失,且存儲內(nèi)容可用電信號擦寫(早期產(chǎn)品需用紫外線擦除,專用編程電壓寫入)。E2PROM還不能取代普通RAM,原因是其工藝復(fù)雜,耗費的門電路過多,且有效重編程次數(shù)也相對較低。根據(jù)數(shù)據(jù)總線的不同E2PROM分為串行和并行兩種形式。串行E2PROM按總線形式又分為三種,即I2C總線、Microwire總線及SPI總線,本節(jié)以美國ATMEL公司I2C總線系列中的AT24CXX為例介紹其原理與應(yīng)用。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
AT24CXX的基本特性第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
這款芯片具有寬電壓(1.8~5.5V)、接口簡單(2線)、體積?。?引腳)和可靠性高(可存儲100年)等優(yōu)點。外部引腳和內(nèi)部結(jié)構(gòu)框圖第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
該芯片主要由片內(nèi)控制單元(啟動停止邏輯、串行控制邏輯、器件地址比較器、數(shù)據(jù)地址/計數(shù)器)和EEPROM陣列等組成。串行輸入信號SDA在同步脈沖信號SCL和WP寫保護信號的配合下,通過片內(nèi)控制單元進行EEPROM指定單元的讀寫操作;片內(nèi)升壓單元可提供編程高電壓(因而系統(tǒng)只用單電源即可);AT24CXX的芯片地址由A0~A2三個引腳的電平狀態(tài)決定(接Vcc或接地);寫保護信號WP為1時可使整個存儲區(qū)變?yōu)橹豢勺x取。AT24CXX對外通信采用I2C總線。I2C總線是Philips公司開發(fā)的兩線制串行通訊接口,是InterIntegratedCircuitBus的縮寫,即“內(nèi)部集成電路總線”。所有器件通過SDA和SCL兩根線連接到I2C總線上,典型總線結(jié)構(gòu):第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
在I2C總線協(xié)議中,允許總線上掛接多個從器件(如存儲器),每個從器件均有惟一“從片地址”。采用總線仲裁方式后,可允許同時存在多個主器件(如微控制器),不過在單片機系統(tǒng)中多為“一主多從”結(jié)構(gòu)。I2C總線通信時序第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
通信時序由多個邏輯環(huán)節(jié)組成:主器件啟動了
I2C總線后,所有從器件均處于接收狀態(tài),接收主器件發(fā)送來的尋址信息SLA(ServiceLevelAgreement),并與自身的“從片地址”比較:如果相符,則通過SDA引腳回送低電平的“應(yīng)答信號”;反之,不做任何響應(yīng)。尋址信息SLA的字節(jié)組成第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
圖中D3~D0是器件類型識別符的編碼,用戶無權(quán)更改。對于AT24CXX,其值均為1010B;A2~A0是用戶設(shè)計的從器件片選地址;由器件類型識別符和器件片選地址組成的7位地址最多可區(qū)分128個從器件;R/W是控制數(shù)據(jù)傳輸方向的讀寫標(biāo)志位。若主器件和從器件都是I2C總線接口設(shè)備,通信時序中的邏輯環(huán)節(jié)可以由內(nèi)置硬件自動完成。對于無I2C總線接口的主器件如51單片機,為使其能與AT24CXX通信,可以利用兩條I/O口線通過軟件方法模擬I2C總線時序。多片AT24CXX與80C51的模擬I2C總線接口關(guān)系。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
三塊AT24CXX芯片的SLA分別為:1010000xB(AT24C01A),101001xxB(AT24C04)和10101xxxB(AT24C08),圖中接線標(biāo)注為NC的代表懸空,電平可為任意值。I2C總線端口輸出為開漏結(jié)構(gòu),總線上必須有外接上拉電阻,其值可選5~10K(P1~P3口已有內(nèi)置上拉電阻可以不再外接)?!緦嵗?】在第4章實例5的基礎(chǔ)上增加1只掉電存儲器AT24C01C電路,通過編程使其具有掉電鎖存按鍵次數(shù)的功能,即每次開機的計數(shù)初值均為前次退出程序時的最終值(首次運行時初值為0)。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
【解】根據(jù)產(chǎn)品數(shù)據(jù)手冊,AT24C01C是1k位器件,其容量為128字節(jié)8。圖中器件的從片地址為1010000B;SCL和SDA引腳接在P3.0和P3.1端口;WP引腳接地(可讀寫狀態(tài))。編程分析:由于80C51沒有I2C接口故只能采用I/O口模擬方法才能與AT24C01C通信,為此需要根據(jù)I2C總線時序編寫若干個子程序,主要包括:啟動子程序,STR_24C021終止子程序,STOP_24C021寫單字節(jié)數(shù)據(jù)子程序,WBYTE_24C021讀單字節(jié)數(shù)據(jù)子程序,RDBYTE_24C021寫N字節(jié)數(shù)據(jù)子程序,_WRITE_E2PROM讀N字節(jié)數(shù)據(jù)子程序,_READ_E2PROM第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
為提高讀寫速度,本例采用匯編方法進行編程,所有子程序都存放在名為e2prom.asm的匯編文件中。聲明兩個讀、寫N字節(jié)函數(shù):voidread_e2prom(unsignedcharrom_addr,unsignedcharram_addr,unsignedcharsize);//讀函數(shù)voidwrite_e2prom(unsignedcharrom_addr,unsignedcharram_addr,unsignedcharsize);//寫函數(shù)上述讀、寫N字節(jié)函數(shù)分別與讀、寫N字節(jié)數(shù)據(jù)子程序同名,且各有三個調(diào)用參數(shù),分別代表ROM地址、RAM地址和讀寫字節(jié)數(shù),使用時可將E2PROM中擬訪問的地址、C51變量的地址和字節(jié)數(shù)依次帶入其中。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
實例3的部分程序第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
計數(shù)值在E2PROM中的存放地址被指定為0x12,開機時從E2PROM中讀取1次計數(shù)值,以后每當(dāng)按鍵值更新就立即將E2PROM中的保存值刷新。實例3的運行效果第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
程序運行表明,AT24C01很好地實現(xiàn)了數(shù)據(jù)掉電存儲功能:停止Proteus運行,然后重新開始,前次運行時的最終計數(shù)值就作為本次的初值了。這一功能在智能儀表掉電參數(shù)保存方面具有很大應(yīng)用價值。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
9.1單片機系統(tǒng)的設(shè)計開發(fā)過程9.2單片機系統(tǒng)的可靠性技術(shù)9.3單片機系統(tǒng)設(shè)計開發(fā)應(yīng)用舉例9.4單片機串行擴展單元介紹9.4.1串行AD轉(zhuǎn)換芯片MAX124X及應(yīng)用9.4.2串行DA轉(zhuǎn)換芯片LTC145X及應(yīng)用9.4.3串行E2PROM存儲器AT24CXX及應(yīng)用9.4.4字符型液晶顯示模塊LM1602及應(yīng)用9.4.5串行日歷時鐘芯片DS1302及應(yīng)用字符型液晶顯示模塊是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X10的點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距(光標(biāo))的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。是一款可以顯示兩行,每行16個字符的液晶模塊,外形尺寸為803614。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
LM1602字符型液晶顯示模塊LM1602采用標(biāo)準(zhǔn)的16引腳接口第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
第1腳:VSS為電源地;第2腳:VCC接5V電源正極;第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(通過一個10K電位器可調(diào)整到適當(dāng)值);第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器;第5腳:RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作;第6腳:E(或EN)端為使能(enable)端,由高電平變?yōu)榈碗娖綍r讀寫操作有效;第7~14腳:D0~D7為8位雙向數(shù)據(jù)端;第15腳:背光源正極;第16腳:背光源負(fù)極。LM1602的液晶屏有16x2個顯示位,每個顯示位對應(yīng)于一個RAM單元(顯示緩沖區(qū)),其地址為,上排對應(yīng)于00~0x0f,下排對應(yīng)于0x40~0x4f,向?qū)?yīng)RAM地址寫入顯示代碼便可顯示相應(yīng)的字符。實際上,地址0x10~0x27和0x50~0x67也屬于顯示緩沖區(qū)范圍,但寫入的顯示代碼需要運用移屏指令將其移到可顯示區(qū)域才能正常顯示。顯示緩沖區(qū)地址分布如圖所示。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
為了區(qū)分對顯示緩沖區(qū)的讀、寫兩種操作,系統(tǒng)規(guī)定,寫操作時的地址最高位必須為1,讀操作時為0(實際上是將操作命令與操作地址合成為一條指令)。因此,第一行第一個字符的寫指令應(yīng)是0x00+0x80=0x80。第二行第一個字符的讀指令應(yīng)是0x40+0x00=0x40,而寫指令應(yīng)是0x40+0x80=0xC0,其它以此類推。LM1602模塊內(nèi)部已經(jīng)存儲了192個點陣字符圖形,具體包括:①常用鍵盤符號;②阿拉伯?dāng)?shù)字;③大小寫英文字母;④日文假名等。每個字符都有一個固定的字符代碼,其中代碼0x20~0x7f對應(yīng)于字符①~③(規(guī)則與標(biāo)準(zhǔn)ASCII碼相同),代碼0xa0~0xff對應(yīng)于字符④(非ASCII碼)。編程時可直接將字符代碼寫到顯示緩沖區(qū)中,也可將字符串變量的內(nèi)容寫到顯示緩沖區(qū)中(統(tǒng)稱為寫數(shù)據(jù))。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
為管理LM1602,系統(tǒng)內(nèi)共設(shè)有11條操作指令,其中最常用的幾條指令代碼及其作用匯總?cè)缦拢?x38 設(shè)置16X2顯示,5X7點陣字形,8位數(shù)據(jù)接口0x01 清屏0x0F 開顯示,顯示光標(biāo),光標(biāo)閃爍0x08 只開顯示0x0e 開顯示,顯示光標(biāo),光標(biāo)不閃爍0x0c 開顯示,不顯示光標(biāo)0x06 地址加1,當(dāng)寫入數(shù)據(jù)的時候光標(biāo)右移0x02 光標(biāo)復(fù)位回到地址原點,但緩沖區(qū)中內(nèi)容不變0x18 光標(biāo)和顯示一起向左移動1位第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
無論是待顯示的數(shù)據(jù)還是指令代碼都需要寫入LM1602后才能發(fā)揮作用,寫數(shù)據(jù)和寫指令操作時需要有RS、RW和E三個引腳的時序信號配合才能完成。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
這表明,80C51單片機在對LM1602進行讀寫操作時,除需連接D0~D7的8根數(shù)據(jù)線外,還需3條I/O口線發(fā)出這些時序信號。【實例4】在下圖電路的基礎(chǔ)上,通過編程實現(xiàn)如下功能:從屏幕第一行第一列開始用模擬打字速度顯示字符串“MicroController”,從第二行第一列開始顯示“Proteus–KeilC”,隨后光標(biāo)返回到屏幕左上角處且呈閃爍狀態(tài)。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
【解】編程分析:根據(jù)題意要求,先確定所需的操作指令代碼如下:第一行第一列的寫指令代碼是0x80,第二行第一列的寫指令代碼是0xc0,設(shè)置162顯示模式的指令代碼是0x38,開顯示且光標(biāo)閃爍的指令代碼是0x0f,寫數(shù)據(jù)后光標(biāo)右移1位的指令代碼是0x06,光標(biāo)返回屏幕左上角的指令代碼是0x02。為將這些指令代碼分別送入指令寄存器,需要構(gòu)建一個寫指令函數(shù):voidwrite_com(unsignedcharcom){ //寫指令函數(shù)
P0=com; //指令代碼送入端口 RS=0;RW=0;EN=1; //模擬寫指令時序 delay(200); EN=0;}可見,寫指令函數(shù)的執(zhí)行過程是,先將傳入的指令代碼com送入D0~D7口(本例是通過P0口),然后采用RS=0;RW=0;EN=1;delay(200);EN=0;五條語句模擬寫指令的時序信號。如此,指令代碼便可送入指令寄存器,進而完成指令的預(yù)期功能。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
本例中待顯示的字符都是ASCII碼字符,因此只要先將其存放在一字符串?dāng)?shù)組中,使用時按順序?qū)⑵淙〕鼋唤o寫數(shù)據(jù)函數(shù)發(fā)出即可,為此還需構(gòu)建一個寫數(shù)據(jù)函數(shù):voidwrite_dat(unsignedchardat){ //寫數(shù)據(jù)函數(shù)
P0=dat; //數(shù)據(jù)存入端口 RS=1;RW=0;EN=1; //模擬寫數(shù)據(jù)時序 delay(200); EN=0;}可見,寫數(shù)據(jù)函數(shù)與寫指令函數(shù)的結(jié)構(gòu)是相同的,只是其時序信號是用RS=1;RW=0;EN=1;delay(200);EN=0;五條語句產(chǎn)生的。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
顯示器的設(shè)置是通過初始化函數(shù)完成的,模擬打字速度的顯示則是通過延時函數(shù)實現(xiàn)的。主函數(shù)流程圖及完整程序如下:第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
實例4的仿真運行截圖第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
仿真運行表明,本實例要求的功能都已實現(xiàn),液晶顯示器的確具有信息量輸出較大的特點,且占用的單片機引腳數(shù)也比多位數(shù)碼管顯示器少很多,很適合作為單片機系統(tǒng)的人機交互界面。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
9.1單片機系統(tǒng)的設(shè)計開發(fā)過程9.2單片機系統(tǒng)的可靠性技術(shù)9.3單片機系統(tǒng)設(shè)計開發(fā)應(yīng)用舉例9.4單片機串行擴展單元介紹9.4.1串行AD轉(zhuǎn)換芯片MAX124X及應(yīng)用9.4.2串行DA轉(zhuǎn)換芯片LTC145X及應(yīng)用9.4.3串行E2PROM存儲器AT24CXX及應(yīng)用9.4.4字符型液晶顯示模塊LM1602及應(yīng)用9.4.5串行日歷時鐘芯片DS1302及應(yīng)用DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶有RAM的實時日歷時鐘的電路,采用串行方式與單片機通信產(chǎn)品手冊其基本特性第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
DS1302可對年、月、日、星期、時、分、秒進行實時計時,并具有閏年補償功能;內(nèi)部有一個大小為31字節(jié)的RAM區(qū),可用于存放臨時性數(shù)據(jù);采用三線接口與MCU進行同步通信;具有寬電壓的工作特點。外部引腳和內(nèi)部結(jié)構(gòu)框圖第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
可以看出,DS1302采用雙電源供電,電源控制模塊可實現(xiàn)Vcc1和Vcc2的供電與充電切換;X1和X2是內(nèi)部振蕩源引腳,與外部標(biāo)準(zhǔn)晶振元件(32.768kHz)一起為實時時鐘模塊RTC(REALTIMECLOCK)提供1Hz時基信號;RTC和RAM中的數(shù)據(jù)經(jīng)輸入移位寄存器ISR后實現(xiàn)雙向串行傳送;SCLK負(fù)責(zé)提供串行移位時鐘脈沖。DS1302的單字節(jié)讀寫操作時序第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
只有當(dāng)復(fù)位引腳CE為高電平時,才允許對DS1302進行數(shù)據(jù)或命令傳送;對DS1302的讀寫操作都是由命令字節(jié)引導(dǎo)的,其后才是傳送的數(shù)據(jù)字節(jié);移位脈沖的上升沿對應(yīng)于命令和數(shù)據(jù)字節(jié)寫操作的信號使能,而移位脈沖的下降沿則對應(yīng)于數(shù)據(jù)字節(jié)讀操作的信號使能。命令字節(jié)的格式第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
命令字節(jié)由8位組成,其中:D7(最高位)必須是邏輯1,如果為0,則控制字無效;D6如果為0,表示要進行日歷時鐘操作,為1表示要進行RAM數(shù)據(jù)操作;D5~D1位是被操作單元的地址,可尋址0~30字節(jié)RAM,或所有寄存器單元;D0(最低位)如為0表示要進行寫操作,為1表示進行讀操作。DS1302中有12個寄存器,其中7個寄存器與RTC信息存儲相關(guān),5個寄存器與控制、充電、時鐘突發(fā)和RAM突發(fā)等工作有關(guān)。RTC相關(guān)寄存器的地址控制字以及數(shù)據(jù)格式如下圖所示。第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)
讀、寫RTC的指令代碼是不同的,例如對于秒鐘寄存器,讀指令代碼為0x81,而寫指令代碼為0x80,其他依次類推。RTC寄存器中的數(shù)據(jù)采用壓縮BCD碼形式存放,低4位是個位BCD碼的存放區(qū)域,高4位是十位BCD碼的存放區(qū)域。由于不同時鐘信息的數(shù)值范圍不同,故并不需占用全部高4位。例如對于分寄存器,低4位表示0~9,高3位表示10~50。對于日寄存器,低4位表示0~9,高2位表示10~30。高4位中的剩余位可以具有其它特殊定義。
由此可知,從RTC中讀出的字節(jié)數(shù)據(jù)需要拆成兩個獨立BCD值后才能分別進行顯示。【實例5】在第9章實例4的基礎(chǔ)上增加一塊DS1302電路,通過編程實現(xiàn)日歷/時鐘的計時顯示功能。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度外墻涂料專業(yè)承包及售后服務(wù)合同4篇
- 2025年度農(nóng)藥產(chǎn)品質(zhì)量檢測與認(rèn)證服務(wù)合同6篇
- 2025版爬架租賃與施工安全監(jiān)督合同4篇
- 2025版戶外廣告位短期租賃及宣傳推廣合同4篇
- 2025年度洗衣機品牌授權(quán)合作合同范本下載3篇
- 二零二五年度戶外廣告牌門窗安裝及廣告發(fā)布合同3篇
- 二零二五年度民爆工程項目安全防護設(shè)施采購合同2篇
- 2025年度木屋安全監(jiān)控系統(tǒng)安裝合同4篇
- 2025年度影視特效制作合同范本集3篇
- 二零二五年度出租車合資購買與品牌推廣合同3篇
- 鋪大棚膜合同模板
- 長亭送別完整版本
- 2024年英語高考全國各地完形填空試題及解析
- 智能養(yǎng)老院視頻監(jiān)控技術(shù)方案
- 你比我猜題庫課件
- 無人駕駛航空器安全操作理論復(fù)習(xí)測試附答案
- 建筑工地春節(jié)留守人員安全技術(shù)交底
- 默納克-NICE1000技術(shù)交流-V1.0
- 蝴蝶蘭的簡介
- 老年人心理健康量表(含評分)
- 《小兒靜脈輸液速度》課件
評論
0/150
提交評論