版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2篇端口設(shè)計(jì)目錄2.1、端口結(jié)構(gòu)介紹2.2、端口存放器講解2.3、端口實(shí)例講解2.1、端口結(jié)構(gòu)介紹AVR系列單片機(jī)的IO端口結(jié)構(gòu)比根本51系列單片機(jī)的端口要復(fù)雜一些,以ATmega16單片機(jī)為例,它有4組8位IO端口,分別是PORTA、PORTB、PORTC和PORTD。結(jié)構(gòu)介紹:圖2-1
圖2-2
以下圖2-3為AVR系列單片機(jī)端口結(jié)構(gòu)示意圖,每組IO口配備三個(gè)8位特殊功能存放器,它們分別是方向控制存放器DDRx〔x代表A~D〕,數(shù)據(jù)存放器PORTx,和輸入引腳存放器PINx。例如端口A的特殊功能存放器為DDRA、PORTA和PINA。圖2-3AVR系列單片機(jī)端口結(jié)構(gòu)通過(guò)這組存放器,我們可以使每個(gè)端口實(shí)現(xiàn)雙向數(shù)字IO通道或雙向模擬量通道功能。ATmega16單片機(jī)的大局部端口具有除根本IO功能外的第二功能,關(guān)于第二功能的使用這里不作介紹。下面說(shuō)明端口的根本IO輸入輸出和模擬量輸入輸出的工作過(guò)程。①同步數(shù)字輸出。作為輸出時(shí),總線給方向存放器D觸發(fā)器F9寫(xiě)1,三態(tài)門(mén)F1翻開(kāi),總線來(lái)的數(shù)據(jù)經(jīng)D觸發(fā)器F10到達(dá)輸出端Pxn,此時(shí)上拉電阻是關(guān)斷的。②數(shù)字輸入。作為輸入時(shí),總線給方向存放器D觸發(fā)器F9寫(xiě)0,三態(tài)門(mén)F1關(guān)斷,上拉電阻根據(jù)需要由PUD選擇是否導(dǎo)通,在休眠信號(hào)SLEEP無(wú)效時(shí),模擬開(kāi)關(guān)M1翻開(kāi),MOS管T2截止,從Pxn來(lái)的輸入信號(hào)經(jīng)整形電路F7和同步鎖存器進(jìn)入三態(tài)門(mén)F4成為同步輸入信號(hào)。③模擬量輸入輸出。在模擬量輸入輸出模式下,通過(guò)設(shè)置使上拉電阻、三態(tài)門(mén)F1和模擬開(kāi)關(guān)M1都處于關(guān)斷狀態(tài),管腳Pxn直接連通單片機(jī)內(nèi)部相關(guān)模擬量輸入輸出單元,為單片機(jī)內(nèi)部模擬比較器、A/D轉(zhuǎn)換器及D/A轉(zhuǎn)換器等功能單元提供與外圍連接的通道。2.2、端口存放器講解位[7:0]:PA口的每一位的輸入或輸出定義。
0:表示該位為輸入方式。
1:表示該位為輸出方式。位[7:0]:PA口輸入緩沖器的值。
0:該位輸入為0。
1:該位輸入為1。位[7:0]:PA口輸出緩沖器的值。
0:該位輸出為0。
1:該位輸出為1。2.3、端口實(shí)例講解、流水燈設(shè)計(jì)、數(shù)碼管設(shè)計(jì)、單一按鍵設(shè)計(jì)、矩陣鍵盤(pán)設(shè)計(jì)、流水燈設(shè)計(jì)1、發(fā)光二級(jí)管的知識(shí)講解2、設(shè)計(jì)任務(wù)3、硬件設(shè)計(jì)4、軟件算法設(shè)計(jì)發(fā)光二極管的參數(shù)與普通二極管大致相同,我們要掌握的是它的開(kāi)啟電壓和工作電流。電流太大容易燒毀,太小亮度不夠。以磷化鉀做成的LED為例:開(kāi)啟電壓:工作電流:允許最大電流:
1、發(fā)光二級(jí)管的知識(shí)講解發(fā)光二極管限流電阻的選?。喝缦聢D:可以求出限流電阻的取值范圍。發(fā)光二極管限流電阻的選?。憾丝谠O(shè)置引腳狀態(tài)說(shuō)明輸入電流輸入上拉無(wú)效,為高阻狀態(tài)上拉有效,外部引腳拉低輸出電流灌電流(吸收電流)輸出推挽0輸出,吸收電流輸出電流輸出推挽1輸出,輸出電流ATmega16端口的輸入/輸出電流:設(shè)計(jì)任務(wù):序號(hào)實(shí)例要求例1流水燈端口直接閃亮例2流水燈順時(shí)針轉(zhuǎn)例3流水燈逆時(shí)針例4按鍵控制轉(zhuǎn)向例5按鍵控制流水燈間隔數(shù)1例6按鍵控制流水燈間隔數(shù)2硬件設(shè)計(jì):圖2-4硬件設(shè)計(jì)順時(shí)針設(shè)計(jì)算法:逆時(shí)針設(shè)計(jì)算法:、數(shù)碼管設(shè)計(jì)1、數(shù)碼管根底知識(shí)講解2、設(shè)計(jì)任務(wù)3、硬件設(shè)計(jì)4、軟件設(shè)計(jì)①、數(shù)碼管的分類②、數(shù)碼管的判別③、數(shù)碼管的驅(qū)動(dòng)④、數(shù)碼管的字型碼1、數(shù)碼管根底知識(shí)講解:①、數(shù)碼管的分類:按發(fā)光二極管單元連接方式分為:
共陽(yáng)極數(shù)碼管
共陰極數(shù)碼管
共陽(yáng)數(shù)碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成共陽(yáng)極(COM)的數(shù)碼管。圖2-5共陽(yáng)數(shù)碼管共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成共陰極(COM)的數(shù)碼管。圖2-6共陰數(shù)碼管②、數(shù)碼管的判別:
共陽(yáng)數(shù)碼管在判別時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。
共陰數(shù)碼管在判別時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮。③、數(shù)碼管的驅(qū)動(dòng):數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)和動(dòng)態(tài)兩類靜態(tài)顯示驅(qū)動(dòng)。動(dòng)態(tài)顯示驅(qū)動(dòng)靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示那么需要5×8=40根I/O端口來(lái)驅(qū)動(dòng),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),我們常用74LS164/74HC595來(lái)驅(qū)動(dòng)數(shù)碼管。動(dòng)態(tài)顯示驅(qū)動(dòng)
動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃“a,b,c,d,e,f,g,dp”的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。
在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。④、數(shù)碼管的字型碼:圖2-7實(shí)物圖圖2-8引腳圖數(shù)碼管的字型碼——共陽(yáng)極:我們這里只講靜態(tài)驅(qū)動(dòng)〔74HC164驅(qū)動(dòng)〕的字型碼數(shù)碼管的字型碼——共陰極:74ls164引腳圖和真值表:2-9引腳圖2-10真值表TTLCMOSVOH≥2.4VVCCVOL≤0.4VGNDVIH≥2.0V0.7VCCVIL≤0.8V0.2VCC輸入電平輸出電平74LSTTLTTL74HCCMOSCMOS74HCTTTLCMOSTTL與CMOS區(qū)別74系列芯片電平區(qū)別TTL電平和CMOS電平的區(qū)別:74ls164工作時(shí)序:圖2-11工作時(shí)序2、設(shè)計(jì)任務(wù):序號(hào)實(shí)例要求例1設(shè)計(jì)程序,數(shù)碼管全顯示例2設(shè)計(jì)程序,數(shù)碼管一位顯示例3設(shè)計(jì)程序,查詢按鍵0到9999例4設(shè)計(jì)程序,查詢按鍵數(shù)碼管全部顯示例5設(shè)計(jì)程序,查詢按鍵加減例6設(shè)計(jì)程序,按鍵中斷查詢法實(shí)現(xiàn)3、硬件設(shè)計(jì):圖2-12硬件設(shè)計(jì)數(shù)碼管顯示程序:4、軟件設(shè)計(jì)、單一按鍵設(shè)計(jì)1、單一按鍵原理2、設(shè)計(jì)任務(wù)3、軟件算法設(shè)計(jì)1、單一按鍵原理通常的按鍵所用開(kāi)關(guān)為機(jī)械彈性開(kāi)關(guān),當(dāng)機(jī)械觸點(diǎn)斷開(kāi)、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開(kāi)關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開(kāi)時(shí)也不會(huì)一下子斷開(kāi)。因而在閉合及斷開(kāi)的瞬間均伴隨有一連串的抖動(dòng),抖動(dòng)時(shí)間的長(zhǎng)短由按鍵的機(jī)械特性決定,一般為5ms~10ms。按鍵穩(wěn)定閉合時(shí)間的長(zhǎng)短那么是由操作人員的按鍵動(dòng)作決定的,一般為零點(diǎn)幾秒至數(shù)秒。鍵抖動(dòng)會(huì)引起一次按鍵被誤讀屢次。為確保CPU對(duì)鍵的一次閉合僅作一次處理,必須去除鍵抖動(dòng)。在鍵閉合穩(wěn)定時(shí)讀取鍵的狀態(tài),并且判別到鍵釋放穩(wěn)定后再作處理。硬件消抖
在鍵數(shù)較少時(shí)可用硬件方法消除鍵抖動(dòng)。RS觸發(fā)器為常用的硬件去抖,由于需要增加硬件設(shè)備,增大了系統(tǒng)的復(fù)雜性,所以硬件消抖一般不常用。軟件消抖如果按鍵較多,常用軟件方法去抖,即檢測(cè)出鍵閉合后執(zhí)行一個(gè)延時(shí)程序,5ms~10ms的延時(shí),讓前沿抖動(dòng)消失后再一次檢測(cè)鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,那么確認(rèn)為真正有鍵按下。2、設(shè)計(jì)任務(wù)——按鍵消抖:圖2-13按鍵消抖按鍵消抖程序:
if(!AJ1)
{
__delay_cycles(80000);//延時(shí)10ms消抖
if(!AJ1)//確認(rèn)有鍵按下
{
while(!AJ1);//等待按鍵釋放
}}3、軟件算法設(shè)計(jì)——查詢法ATmega16單片機(jī)有21個(gè)中斷源,在這21個(gè)中斷中,包含1個(gè)非屏蔽中斷〔RESET〕,3個(gè)外部中斷〔INT0、INT1、INT2〕和17個(gè)內(nèi)部中斷。這些中斷的優(yōu)先級(jí)按照向量號(hào)排列,向量號(hào)越小優(yōu)先級(jí)越高。本例用到的中斷源為外部中斷請(qǐng)求1〔INT1〕。ATmega16的中斷源:ATmega16的中斷存放器:位6:SE:休眠使能控制位。0:CPU工作在正常模式;1:CPU工作在休眠模式,由SM2、SM1、SM0決定休眠方式〔請(qǐng)參閱手冊(cè)〕。位3-2:ISC11-0:決定INT1的中斷觸發(fā)方式:位1-0:ISC01-0:決定INT0的中斷觸發(fā)方式,同INT1。位7/6/5:INTx:外部中斷x使能位。0:不允許INTx中斷;1:允許INTx中斷。位4-3:保存。位1:IVSEL:中斷向量選擇位。0:中斷向量位于Flash存儲(chǔ)器的起始址;1:中斷向量轉(zhuǎn)移到Boot區(qū)的起始地址。位0:IVCE:中斷向量修改使能位。 0:不能改變IVSEL的值; 1:能改變IVSEL的值。位7/6/5:INTx:外部中斷x標(biāo)志位。0:INTx中斷沒(méi)有發(fā)生;1:INTx中斷發(fā)生。位4-0:保存。 當(dāng)狀態(tài)存放器SREG的位I、通用中斷控制存放器GICR中斷使能位INT1為1,并且INTx位為1時(shí),MCU即跳轉(zhuǎn)到相應(yīng)的中斷向量。進(jìn)入中斷效勞程序之后該標(biāo)志自動(dòng)清零。此外,標(biāo)志位也可以通過(guò)寫(xiě)入1來(lái)清零。軟件設(shè)計(jì)——中斷法://外部中斷INT1效勞程序#pragmavector=INT1_vect__interruptvoidINT1_isr(void){SREG_Bit7=0;//關(guān)閉全局中斷flag=1;//標(biāo)志位置位while(!AJ1);//等待按鍵釋放SREG_Bit7=1;//全局中斷翻開(kāi)}IAR中斷效勞程序的編寫(xiě):IAR中定義中斷函數(shù)的格式是:#pragmavector=中斷向量__interruptvoid中斷效勞程序(void){中斷處理程序}外部中斷1的效勞程序:#pragmavector=INT1_vect__interruptvoidINT1_Server(void){}、矩陣鍵盤(pán)設(shè)計(jì)1、矩陣鍵盤(pán)設(shè)計(jì)原理2、設(shè)計(jì)任務(wù)3、硬件設(shè)計(jì)原理圖4、軟件算法設(shè)計(jì)前面我們已經(jīng)講述了單一按鍵電路,對(duì)于單一按鍵每個(gè)按鍵必須占用一根I/O口線,在按鍵數(shù)量較多時(shí),I/O口線浪費(fèi)較大。為了解決這個(gè)問(wèn)題,采用矩陣鍵盤(pán)。1、矩陣鍵盤(pán)設(shè)計(jì)原理2、設(shè)計(jì)任務(wù):序號(hào)實(shí)例要求例1設(shè)計(jì)程序,數(shù)碼管顯示按鍵的編號(hào)例2設(shè)計(jì)程序,按鍵的編號(hào)賦予功能,按下相應(yīng)按鍵實(shí)現(xiàn)相應(yīng)的功能3、硬件設(shè)計(jì)原理圖:圖2-14硬件設(shè)計(jì)原理4、軟件算法設(shè)計(jì):軟件處理鍵盤(pán)的方式,有編程掃描方式、定時(shí)掃描方式中斷掃描方式。1、編程掃描工作方式是利用CPU在完成其它工作的空余,調(diào)用鍵盤(pán)掃描子程序,來(lái)響應(yīng)鍵輸入要求。2、定時(shí)掃描工作方式是利用單片機(jī)內(nèi)部定時(shí)器產(chǎn)生定時(shí)中斷〔10ms〕,CPU響應(yīng)中斷后對(duì)鍵盤(pán)進(jìn)行掃描、并在有鍵按下時(shí)轉(zhuǎn)入鍵功能處理程序。3、中斷掃描工作方式即當(dāng)鍵盤(pán)上只要有鍵閉合,就向CPU發(fā)出中斷請(qǐng)求,CPU響應(yīng)中斷,立即中斷當(dāng)前正在運(yùn)行的程序,轉(zhuǎn)入執(zhí)行中斷效勞程序,判斷鍵盤(pán)上閉合鍵的鍵號(hào),并作相應(yīng)的鍵功能處理。判斷按鍵按下常用的方法有兩種,即掃描法和反轉(zhuǎn)、法,根據(jù)掃描方式的不同,掃描法又可細(xì)分為逐行掃描和逐列掃描。1、掃描法是在判定有鍵按下后逐列〔或行〕置低電平,同時(shí)讀入行〔或列〕狀態(tài),如果行〔或列〕狀態(tài)出現(xiàn)非全1狀態(tài),這時(shí)0狀態(tài)的行、列交點(diǎn)的鍵就是所按下的鍵。2、線反轉(zhuǎn)法與掃描法相比,掃描法要逐列〔或行〕掃描查詢,當(dāng)被按下的鍵處于最后一列〔或行〕時(shí),那么要經(jīng)過(guò)屢次掃描才能最后獲得此鍵所處的行列值。而線反轉(zhuǎn)法無(wú)論被按鍵是處于第一還是最后,均只須經(jīng)過(guò)兩步便能獲得此鍵所在的行列值。矩陣鍵盤(pán)處理程序具體操作流程如下:1、判斷鍵盤(pán)有無(wú)按下PA.0、PA.1、PA.2、PA.3輸出全為“0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新能源電池代加工合作協(xié)議書(shū)4篇
- 二零二五版壓力罐安裝工程風(fēng)險(xiǎn)評(píng)估與管理合同2篇
- 2025年度煤礦股權(quán)轉(zhuǎn)讓與新能源項(xiàng)目合作開(kāi)發(fā)合同4篇
- 科學(xué)教育的新篇章小學(xué)生實(shí)踐操作的重要性
- 提升員工安全意識(shí)安全演習(xí)不可或缺
- 科學(xué)補(bǔ)充蛋白質(zhì)助力孕期媽媽健康成長(zhǎng)
- 2025年度二零二五版門(mén)面裝修工程環(huán)保驗(yàn)收合同范本文檔4篇
- 專利技術(shù)獨(dú)家轉(zhuǎn)讓合同 2024年版版
- 2025年環(huán)境衛(wèi)生設(shè)施建設(shè)與維護(hù)協(xié)議3篇
- 智能機(jī)器人與寵物健康管理的結(jié)合應(yīng)用研究
- 2025年安慶港華燃?xì)庀薰菊衅腹ぷ魅藛T14人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級(jí)下冊(cè)數(shù)學(xué)第七章 相交線與平行線 單元測(cè)試卷(含答案)
- GB/T 44351-2024退化林修復(fù)技術(shù)規(guī)程
- 從跨文化交際的角度解析中西方酒文化(合集5篇)xiexiebang.com
- 中藥飲片培訓(xùn)課件
- 醫(yī)院護(hù)理培訓(xùn)課件:《早產(chǎn)兒姿勢(shì)管理與擺位》
- 空氣自動(dòng)站儀器運(yùn)營(yíng)維護(hù)項(xiàng)目操作說(shuō)明以及簡(jiǎn)單故障處理
- 2022年12月Python-一級(jí)等級(jí)考試真題(附答案-解析)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識(shí)
- Hypermesh lsdyna轉(zhuǎn)動(dòng)副連接課件完整版
- 小學(xué)六年級(jí)數(shù)學(xué)計(jì)算題100道(含答案)
評(píng)論
0/150
提交評(píng)論