單片微機原理與接口技術-v1.0_第1頁
單片微機原理與接口技術-v1.0_第2頁
單片微機原理與接口技術-v1.0_第3頁
單片微機原理與接口技術-v1.0_第4頁
單片微機原理與接口技術-v1.0_第5頁
已閱讀5頁,還剩303頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

單片微機原理與接口技術主講:王曉榮Email:wang@課程群:263301060參考教材:例說51單片機(第3版)(C語言版) D301實驗室網(wǎng)絡設置無線網(wǎng)絡:D301_2、D301_3、D301_4無線網(wǎng)絡密碼:D301D303入網(wǎng)登錄賬號:zdh25入網(wǎng)登錄密碼:301303什么是單片機1什么是單片機一個單片的微型計算機MCU(MicrocontrollerUnit)STC89C52芯片文字說明STC:公司名89C52RC:芯片型號[39]40C:最大晶振40M,民用級(I為工業(yè)級)PDIP:封裝類型40:引腳數(shù)STC89C52與AT89S51STC89C52和AT89S51都是MCS51內核所有以MCS51為內核的單片機統(tǒng)稱為51單片機STC89C52兼容AT89S51的所有功能。STC89C52功能更多,更強。AT89S51比STC89C52的功能少,更適合入門學習。本課程的講解以AT89S51為主。單片機系統(tǒng)設計案例1單片機系統(tǒng)設計案例*例題:LED_asm功能:實現(xiàn)8個LED同時閃爍(用匯編語言)硬件設計簡介軟件設計硬件設計1單片機共40個引腳引腳號:缺口朝上,左邊最上面的引腳為1號引腳,然后按逆時針順序。其中有2個電源引腳,32個IO(輸入輸出)引腳。課堂練習請找出電源引腳和32個IO引腳電源引腳20號引腳接電源負極(GND)40號引腳接電源正極(VCC)輸入輸出口單片機內部均是二進制操作。AT89S51是8位單片機,即一次可同時處理8位二進制數(shù)。因此,單片機的IO口共4個,每個口剛好8個引腳。4個口分別叫做:P0、P1、P2、P3課堂練習參考資料[1],觀察學習板上8個LED(發(fā)光二極管)接到了單片機的哪個口上?JUMP16就是8個跳帽,在學習板上找到對應的跳帽。請將JUMP3的跳帽放在正確的位置。LEDLightEmittingDiode發(fā)光二極管當LED流過的電流達3mA以上時,可以正常發(fā)光。當流過的電流大于100mA時,LED容易損壞。課堂練習在學習板上找到LED和限流電阻。參考資料[1],當單片機P1的引腳電壓為VCC時,LED能否正常發(fā)光?當單片機P1的引腳電壓為0時,LED能否正常發(fā)光?LED上的電流是多少?RST引腳9號引腳當RST引腳保持高電平的時間超過10ms時,AT89S51的程序從頭開始運行(復位)。高電平和低電平單片機引腳識別信號時,只能根據(jù)引腳的電壓識別為“0”或“1”。一般情況下,當引腳的電壓大于2.8V時,即認為是“1”(高電平),小于0.8V時,即認為是“0”(低電平)。課堂練習在學習板上找到9號引腳思考:如何實現(xiàn)單片機一上電,程序自動從頭開始運行?即:上電瞬間9號引腳保持10ms以上的高電平后,一直保持為低電平。9號引腳的阻抗可以認為是∞。復位電路9號引腳電壓變化曲線圖思考如何給單片機添加一個復位鍵,使按下該鍵時,單片機重新運行程序?復位鍵課堂練習請在學習板上找到復位電路中的電容、電阻和按鍵。看看電阻上數(shù)字貼片電阻的標號103其中,3代表在10后面添上3個0103的阻值即:10KΩ思考:102的阻值是?101的阻值是?晶振電路提供時間基準晶振頻率越高,程序跑的越快學習板使用的晶振是11.0592MHz其電路由1個晶振和2個電容組成課堂練習參考資料[1],看看單片機的晶振電路是如何連接的?如果想讓程序運行速度提高1倍,可將晶振更換為多大?可以通過更換晶振,讓學習板的運行速度提高4倍嗎?EA引腳31號引腳31號引腳為高電平時,執(zhí)行單片機內部程序31號引腳為低電平時,執(zhí)行單片機外邊程序課堂練習參考資料[1],看看單片機的EA引腳是如何連接的?單片機的最小系統(tǒng)復位電路、晶振電路、EA引腳、電源都是單片機正常工作必不可少的,稱為單片機的最小系統(tǒng)。課堂練習請在稿紙上畫出例題硬件設計草圖。軟件設計1課堂練習*參考[2],編寫例題的實現(xiàn)程序。版本號版本號:v0.0.0當版本號帶有第3個數(shù)字時,為調試版本,當修改程序時,需保存老版本,并增加該數(shù)字的值在新版本上修改。當程序調試成功,可以發(fā)布時,可增加中間的數(shù)字,并去掉第3個數(shù)字。當可發(fā)布的版本有重大改進,可增加第1個數(shù)字。例題講解/**/為程序注釋MCS51的匯編語言由111條指令組成[3-4]LOOP:MOV0x90,#0x00“LOOP:”是該指令的標號,方便程序跳轉“MOV0x90,#0x00”對應指令“MOVdirect,#data”direct為存儲單元的地址,#data為數(shù)據(jù)“0x”代表16進制2進制單片機對數(shù)據(jù)的處理都是以二進制形式進行的。8位單片機1次可以處理8個2進制數(shù)。而8個2進制數(shù)太長,使用不便而2位16進制數(shù)恰好可代表8位2進制數(shù)因此,匯編語言中,一般以16進制代替2進制課堂練習將下列16進制數(shù)轉換為2進制數(shù):0x12,0xaf,0x88將下列2進制數(shù)轉換為16進制數(shù):0b110001110b01010100LOOP:MOV0x90,#0x00該指令的意思是:將地址為0b1001000的存儲單元中寫入0x00000000數(shù)據(jù)每個存儲單元可以存放8位的2進制數(shù)(高電平表示1,低電平表示0)課堂練習每個存儲單元存放的最小的數(shù)是多少?最大的數(shù)是多少?按要求,寫指令:將片內0x30單元中存入數(shù)據(jù)“0x33”將片內0x30單元中的數(shù)據(jù)存入0x40存儲單元中將片內0x123單元中存入數(shù)據(jù)“0x55”AT89S51片內無0x123存儲單元MOVdirect,#datadirect和data都是8位的,因此值的范圍是:0~255,即:0x00~0xff內部存儲單元MCS51內核支持對內部256個存儲單元的讀寫操作,其中,低128個存儲單元為RAM區(qū),高128個存儲單元為專用寄存器區(qū)但不同的芯片內部實際存儲單元數(shù)量不同。AT89S51內部有128B的RAM和20多個專用寄存器,實際使用約150個存儲單元專用寄存器專用寄存器是指有專門用途的存儲單元例題講解其余指令講解課堂練習*修改例題,在學習板上實現(xiàn)前4個LED和后4個LED交替閃爍。課后練習在學習板上實現(xiàn)流水燈功能(用匯編語言編寫)。AT89S51內部結構簡介1AT89S51的內部結構圖*單片機的內部結構單片機的內部結構主要有以下幾部分:CPU(CentralProcessingUnit,中央處理器)ROM(Read-OnlyMemory,只讀存儲器)RAM(RandomAccessMemory,隨機存取存儲器)其它內部設備單片機系統(tǒng)設計單片機系統(tǒng)設計包括:硬件設計(上圖中的綠色部分)軟件設計(上圖中的黃色部分)硬件設計:設計單片機及外部設備的硬件電路軟件設計:用C語言或匯編語言編寫程序并燒寫到ROM中CPUCPU也稱為內核內核為MCS51的單片機統(tǒng)稱為51系列單片機AT89S51、STC89C52均為51系列單片機CPU的作用:讀取指令,執(zhí)行指令*指令[5]指令是用以字節(jié)為單位的二進制代碼來表示的。MCS51核可識別111條指令。每條指令的長度為1-3B。思考例題“LED_asm”由多少條指令組成?這些指令一共是多少字節(jié)?每條指令的二進制代碼是?查看調試環(huán)境,觀察指令對應的指令代碼。參考[4],寫出“MOV0X07,0X06”的二進制代碼,并理解該指令的含義。ROMROM:用于存放指令代碼*AT89S51的內部ROM為4KMCS51核可讀取(不能寫)ROM中的指令代碼。思考AT89S51單片機能存放多少條指令?STC89C52單片機能存放多少條指令?MOV指令MOV指令專用于內部存儲空間的讀寫,其讀寫的地址和數(shù)據(jù)只能是8位的二進制數(shù)。不同芯片,片內RAM不同不同的芯片實際使用的內存空間和專用寄存器數(shù)量并不相同AT89S51芯片片內帶有128B的RAM和20多個專用寄存器一般芯片集成的內部設備越多,專用寄存器就越多。RAM相當于內存,斷電后RAM中的內容丟失(斷電后ROM中的內容仍保持不變)作用:提供CPU執(zhí)行程序時所需的存儲空間。例題*打開項目“LED_asm”,觀察內部存儲空間數(shù)據(jù)的變化。在“Memory”窗口中“Address”右邊的編輯框寫入“d:0”,觀察內部存儲空間的數(shù)據(jù)??纯?x90處的初始值是多少?點擊“”1次,運行1條指令,觀察0x90處的變化。指令周期每條指令執(zhí)行時間為1-2個機器周期(乘除指令除外)1個機器周期=12*晶振振蕩周期思考如果晶振選用12MHz,執(zhí)行1條單片機指令需要多長時間?*如果晶振選用12MHz,參考[4],計算案例中延時子程序的精確延時時間是多少?利用調試環(huán)境,觀察計算結果是否正確。如果將#0xFF換成#0x00,精確延時時間是多少?內部設備CPU通過對專用寄存器的讀寫間接控制內部設備。外部設備外部設備通過引腳連接到部分內部設備上CPU通過對專用寄存器的讀寫間接控制內部設備,進而控制外部設備。例題功能:實現(xiàn)8個LED同時閃爍(C語言)課堂練習在例題基礎上修改,使LED閃爍的更快一點在例題基礎上修改,使LED閃爍的更慢一點為什么當延時超過70000時,會不正常?課堂練習用C語言編寫程序實現(xiàn)流水燈功能。課后練習利用匯編語言和C語言兩種語言實現(xiàn)LED每隔1秒定時閃爍,并在學習板上試驗。復習:C語言思考LED電路限流電阻取多大比較合適?限流電阻取100R可以嗎?LED可以反接嗎?單片機IO口簡介2單片機IO口簡介單片機有4個輸入輸出口(P0、P1、P2、P3),每個口8個引腳,共32個引腳均可接LED電路。單片機P1.x的內部結構P1.x的內部結構P1.x主要由1個D鎖存器,兩個三態(tài)門,1個上拉電阻(約30K)和1個場效應管組成。可實現(xiàn)的功能:寫引腳,讀引腳,讀鎖存器。今天,我們僅研究寫引腳。AT89S51引腳的驅動能力[5]當引腳流過的電流過大時,容易引起單片機工作不穩(wěn)定,甚至損毀。AT89S51引腳的驅動能力:P0口-P3口的每個引腳:<10mAP1口-P3口的8個引腳合計:<15mAP0口的8個引腳合計:<26mASTC89C52引腳的驅動能力[6]STC89C52引腳的驅動能力:P0口的每個引腳:<12mAP1口-P3口的每個引腳:<6mA回答思考題限流電阻取100R可以嗎?答:不可以,超過AT89S51芯片引腳的驅動能力。當該芯片P1口僅接1個LED時,限流電阻一般可取為:330R–1K。LED可以反接嗎?答:不可以,由于內部上拉電阻較大,使電流太小,LED不亮。LED電路思考限流電阻取500R可以嗎?答:可以取470R或510R[6],最好不要取500R,500R的電阻不好買,價格較高讓蜂鳴器發(fā)出聲音1例題*無源蜂鳴器發(fā)出聲音。課堂練習將例題下載到學習板上觀察效果。音頻[1]P240音頻的范圍:20HZ~200kHZ人耳辨認的音頻:<20kHZ人的聲音音頻:300Hz-3400Hz蜂鳴器蜂鳴器分為有源蜂鳴器和無源蜂鳴器。這里的“源”是指震蕩源。有源的一通電就會叫;無源的必須用頻率為1K~5K的信號才能鳴叫。學習板上是無源蜂鳴器。蜂鳴器的內阻約為幾十R,驅動電壓一般1.5V-15V都可以。有源蜂鳴器無源蜂鳴器無源電磁蜂鳴器工作原理1個線圈,1個鉬片方波信號通過線圈,使鉬片以給定的頻率振動,發(fā)出聲音。硬件電路參考[42],看看學習板上蜂鳴器的電路圖。思考學習板為什么采用三極管驅動蜂鳴器?三極管1三極管的管腳三極管的特性曲線放大區(qū)飽和區(qū)截止區(qū)0uA100uA80uA60uA40uA20uAICBOvCEiC64224681012VCE=VBE0三極管的特性3個區(qū)域:截止區(qū)、放大區(qū)、飽和區(qū)截止區(qū)(VBE

<0.7V):關斷狀態(tài)(IC=0)放大區(qū):電流被控狀態(tài)(IC=βIB)飽和區(qū):導通狀態(tài)典型的三極管開關電路思考設:Vin為5V,R1為1K,R2為100K,放大倍數(shù)為50時,VCE為多大?三極管處于什么區(qū)?當R2為1K時,VCE為多大?三極管處于什么區(qū)?當Vin為0V時,VCE為多大?三極管處于什么區(qū)?思考學習板蜂鳴器電路中:三極管在什么情況下導通?導通時,三極管IB約為多大?三極管工作在什么區(qū)?三極管允許的最大ICE是多少?參考[7]建議由于蜂鳴器中有電感線圈,最好將蜂鳴器并聯(lián)1個4.7k左右的電阻,以保護三極管。課本中的蜂鳴器驅動電路1驅動電路1[1]P73說明泄放電阻的作用:使三極管快速關斷。思考:上圖基極電流是多大?答:約1mA(4.3/3.3k-0.7/3.3k)驅動電路2[課本]P73說明思考:左圖電阻上的電流是多大?答:(5v-0.7v-0.7v)/1k思考:左圖用1個三極管可以嗎?答:不可以,驅動能力不夠例題講解講解例題程序。課堂練習修改例題實現(xiàn):鳴叫1秒鐘,停2秒,循環(huán)。音調[1]P241不同頻率的聲音有不同的音調。C調中音Do,Re,Mi,Fa,So,La,Si的頻率分別是:523Hz,587Hz,659Hz,698Hz,784Hz,880Hz,988Hz課堂練習修改例題實現(xiàn):提高蜂鳴器鳴叫音調。例題利用學習板實現(xiàn):無源蜂鳴器發(fā)出簡單的音樂。課堂練習將例題程序下載到學習板上觀察效果。熟悉例題程序蜂鳴器和揚聲器蜂鳴器:線圈帶動鉬片振動。揚聲器(喇叭):線圈帶動紙盆振動。蜂鳴器:音質差揚聲器(喇叭):音質好課后練習掌握P1.x寫引腳的原理。*熟悉IO口的驅動能力。參考例題,在學習板上實現(xiàn):讓蜂鳴器播放一首簡單的曲子。內部讀寫空間6AT89S51的內部結構圖內部讀寫空間內部讀寫空間內部RAM存儲空間分為兩部分:內部RAM區(qū)專用寄存器區(qū)內部RAM區(qū):128B(0x00-0x7f)專用寄存器區(qū):散布著若干個專用寄存器。專用寄存器區(qū)的剩余空間未被使用。思考已經(jīng)學過的專用寄存器有哪些?程序計數(shù)器PC作用:指揮CPU到指定的位置取指令。CPU從ROM中取1個字節(jié)數(shù)據(jù)后,PC值自動加1PC占用2個字節(jié),默認值為:0x0000課堂練習調試項目“LED_asm”,觀察PC值的變化。內部RAM提供存儲空間,幫助運行程序。主要包括:定義的各種全局變量和臨時變量函數(shù)的參數(shù)和返回值程序的斷點等提問*AT89S51的內部讀寫空間是多大?AT89S51的內部RAM是多大?堆棧區(qū)1堆棧區(qū)*作用:子程序或中斷程序調用時保護斷點和保護現(xiàn)場堆棧區(qū)的地址:0x08-0x7f(默認)堆棧區(qū)的大小可通過改變SP的值來實現(xiàn)。SP(0x81):堆棧指針,默認值是0x07通過課堂練習來熟悉SP和堆棧區(qū)的作用。課堂練習*觀察例題“LED_asm”的RAM變化添加指令“MOVSP,#0X60”后,觀察RAM的變化。添加堆棧區(qū)操作指令,觀察RAM的變化。普通存儲區(qū)1普通存儲區(qū)內部RAM均可作為普通存儲區(qū)。熟悉普通存儲區(qū)的相關指令。(direct)累加器A累加器A是使用最頻繁的寄存器,與A相關的指令最多。專用寄存器思考:我們已經(jīng)學過的專用寄存器有哪些?答:P0,P1,P2,P3,PSW,SP,PC,ACC其余專用寄存器我們會陸續(xù)學習七段LED數(shù)碼管1七段LED數(shù)碼管七段LED數(shù)碼管的內部結構

七段LED數(shù)碼管說明上圖中,“6”,“9”通常更習慣添上一橫。七段LED數(shù)碼管當采用共陽極七段LED數(shù)碼管時,顯示“0”的代碼是:0xc0思考:顯示“1”的代碼是?思考:顯示“2”的代碼是?例題七段LED數(shù)碼管+1功能:實現(xiàn)1位七段LED數(shù)碼管顯示值定時自動加一。課堂練習在最右邊的數(shù)碼管上實現(xiàn):光標循環(huán)轉動。其它輸出口的內部結構2其它輸出口的內部結構當作為輸出口使用時,P2口、P3口的內部結構同P1口完全相同。P0口當作為輸出口使用時,同P1口的區(qū)別只是:沒有上拉電阻。單片機P0.x口的內部結構多個七段LED數(shù)碼管組合4四位七段LED數(shù)碼管模塊

內部結構*七段LED數(shù)碼管電路觀察學習板上的七段LED數(shù)碼管電路[1]課堂練習無源蜂鳴器發(fā)出簡單的音樂,并將音符在七段碼顯示器中顯示。動態(tài)顯示技術4課堂練習在學習板上實現(xiàn):1個數(shù)碼管顯示“9”在學習板上實現(xiàn):移動的“9”。在學習板上實現(xiàn):快速移動的“9”?,F(xiàn)象當速度快到一定程度,會發(fā)現(xiàn)所有數(shù)碼管均顯示“9”,且無閃爍。原因:當每個七段LED數(shù)碼管循環(huán)亮1ms,滅的時間在20ms以內時,肉眼看不出閃爍。動態(tài)顯示技術利用這一特性,也可以實現(xiàn)不同的數(shù)碼管顯示不同的數(shù)字。這一技術,也稱為“動態(tài)顯示技術”。例題*利用學習板實現(xiàn):顯示“12345678”

。例題*電子鐘(軟件延時)。課堂練習*參考“電子鐘(軟件延時)”例題,實現(xiàn):0~99循環(huán)顯示。課本中的數(shù)碼管驅動電路1驅動電路[課本]P125說明限流電阻采用100R不宜接單片機,需另加驅動芯片。課本中P136、P137圖中將數(shù)據(jù)端直接接到單片機,不妥。學習板中選用470R,可以直接接單片機。繼電器1學習板上的繼電器打開[1]分析電路圖。學習板上的繼電器有多少個引腳?7、8接電感線圈用萬用表測量一下電感線圈的電阻。電感通電后,使鐵芯吸合,控制常開開關和常閉開關的動作。用萬用表找到常閉開關的引腳。思考二極管起什么作用?答:釋放當三極管關斷時儲存在電感中的能量,以保護三極管。常開開關和常閉開關可以通多大的電流?答:見繼電器上文字說明。下面這個繼電器能接空調嗎?課堂練習編程使學習板上的繼電器保持吸合狀態(tài),并用萬用表觀察常開引腳和常閉引腳的變化。輸入口的應用1P1、P2、P3輸入口的內部結構1單片機P1.x的內部結構三態(tài)門三態(tài)門的真值表:ENINOUT00001110高阻

11高阻讀引腳指令舉例:MOVA,P1CPU端:1.將#0x90送地址總線2.給“/R”低電平信號3.三態(tài)門片選端產(chǎn)生低電平信號5.將數(shù)據(jù)總線數(shù)據(jù),讀入累加器AP1.x端4.三態(tài)門導通,引腳信號直接送數(shù)據(jù)總線注意:讀P1引腳時,需確保P1引腳的場效應管關閉按鈕開關的輸入電路按鈕開關按鈕開關的輸入電路P1口、P2口、P3口,因內部有上拉電阻,也可省略外部上拉電阻。開關的動作硬件去抖動軟件去抖動軟件去抖動方法見例題。例題*用按鍵控制七段LED數(shù)碼管的顯示值變化。課堂練習*用2個按鍵控制七段LED數(shù)碼管的光標循環(huán)轉動(按下第1個按鍵后順時針轉動,按下第2個按鍵后逆時針轉動)。P0輸入口的內部結構1單片機P0.x口的內部結構P0輸入口的內部結構P0口作為輸入口,與P1口的區(qū)別僅僅是無內部上拉電阻。練習講解用2個按鍵控制七段LED數(shù)碼管的光標循環(huán)轉動(按下第1個按鍵后順時針轉動,按下第2個按鍵后逆時針轉動)。行列式鍵盤1行列式鍵盤接口技術如果按鍵數(shù)量較多(一般多于8個),可采用行列式鍵盤減少IO口的使用。行列式鍵盤的內部結構。4x4鍵盤的內部結構硬件連接上圖接法16個按鍵,只需8個IO口。思考:4x4鍵盤電路與單片機的接法。4x4鍵盤電路接法*4x4鍵盤電路接法將單片機的X0~X3作為輸出口,Y0~Y3作為輸入口。輸出口送掃描信號確定按鍵的列。輸入口讀取信號確定按鍵的行。例題*按鍵顯示鍵值。觀察學習板上行列式鍵盤電路圖。例題*加法計算器。課堂練習或課后練習在學習板上參照例題實現(xiàn)有加減乘除功能的計算器(按例題的規(guī)范寫)。中斷的應用1中斷的應用AT89S51的中斷外部中斷AT89S51的中斷11什么是中斷(interrupt)?中斷就是暫時停下目前所執(zhí)行的程序,先去執(zhí)行特定的程序(即中斷子程序),完成特定的程序后,再返回接著剛才停下的程序。AT89S51有5個中斷:2個外部中斷、2個定時/計數(shù)中斷、1個串行中斷。中斷名稱(中斷號)為:外部中斷0(0),定時/計數(shù)中斷0(1),外部中斷1(2),定時/計數(shù)中斷1(3),串行中斷(4)中斷流程AT89S51的外部中斷11AT89S51的外部中斷外部中斷輸入引腳外部中斷0:P3.2(12)外部中斷1:P3.3(13)例題外部中斷實現(xiàn)發(fā)光二極管的亮滅變化。思考已經(jīng)學過的專用寄存器有?答:P0、P1、P2、P3、A、B、SP、PC、DPL、DPH、PSW。今天我們再學幾個專用寄存器。TCON(0x88)TCON:----IE1IT1IE0IT0默認值:0x00IT0、IT1:0:電平觸發(fā)(低電平有效)1:脈沖觸發(fā)(下降沿有效)IE0、IE1:有外部中斷請求時,自動置”1”中斷函數(shù)執(zhí)行后,自動清”0”IE(0xA8)IE:EA //ESET1EX1ET0EX0默認值:0x000-4號中斷的開關及總開關0:關閉;1:打開中斷優(yōu)先級AT89S51有2個搶占式優(yōu)先級。搶占式優(yōu)先級同級別優(yōu)先順序:0-4搶占式優(yōu)先級低或相等時搶占式優(yōu)先級設置專用寄存器:IP(0xB8)IP(0xB8):///PSPT1PX1PT0PX0默認值:0x000:低優(yōu)先級;1:高優(yōu)先級亞優(yōu)先級當搶占式優(yōu)先級相同時,AT89S51的5個中斷亞優(yōu)先級是:0#>1#>2#>3#>4#亞優(yōu)先級高的中斷不能嵌套中斷,但可以先得到運行。外部中斷函數(shù)調用過程當外部中斷0(1)開關打開時,如果IE0(IE1)為“1”, 則自動調用外部中斷0(1)函數(shù),并自動清IE0(IE1)課堂練習上述例題改用外部中斷1實現(xiàn)。例題外部中斷實現(xiàn)發(fā)光二極管的亮滅變化(匯編)。外部中斷原理當外部中斷0(1)開關打開且IE0(IE1)為“1”時, 自動執(zhí)行“LCALL0x0003(0x0013)”指令,并清IE0(IE1)。中斷向量表系統(tǒng)復位0x0000外部中斷00x0003定時/計數(shù)中斷00x000B外部中斷10x0013定時/計數(shù)中斷10x001B串行中斷0x0023關于中斷向量表寫C語言程序,由于中斷向量表的調用是自動完成,無需知道中斷向量表,但中斷向量表調用原理必須熟悉。課堂練習在學習板中實現(xiàn)例題功能。再改用外部中斷1實現(xiàn)。例題外部中斷實現(xiàn)發(fā)光二極管的亮滅變化(查詢法)。中斷法同查詢法比較中斷法優(yōu)于查詢法課堂練習用外部中斷0和外部中斷1實現(xiàn):1個七段LED數(shù)碼管顯示值加1和減1。課后練習在學習板上實現(xiàn):8位七段LED數(shù)碼管光標循環(huán)轉動,當有外部中斷信號時,停止轉動,再有外部中斷信號時,繼續(xù)轉動。關于中斷程序中斷程序過長現(xiàn)象分析。如何使中斷程序盡可能短?答:對于非急需處理的內容,可以在中斷程序中做個標志,然后放到主程序中處理。定時/計數(shù)器的應用1定時/計數(shù)器的工作方式定時/計數(shù)器有4種工作方式:工作方式0(已淘汰)工作方式1工作方式2工作方式3(很難用到)定時/計數(shù)器工作方式1工作原理TL0、TH0(TL1、TH1)組成16位大存儲單元啟動定時計數(shù)器0(1)后,大存儲單元內容自動加1(定時器每隔1個機器周期加1;計數(shù)器每數(shù)1個脈沖加1)當大存儲單元溢出時,TF0(TF1)自動置“1”例題定時器實現(xiàn)每隔1秒LED亮滅變化。TMOD(0x89)TMOD:GATEC//TM1M0GATEC//TM1M0默認值:0x00C//T:定時計數(shù)選擇M1M0:工作方式選擇GATE:啟動方式設定0:軟件啟動(常用)1:外部中斷啟動TCON(0x88)TCON:TF1 TR1 TF0 TR0 IE1IT1IE0IT0默認值:0x00TR0、TR1:0:關閉定時計數(shù)器1:啟動定時計數(shù)器TF0、TF1:定時計數(shù)器溢出時,自動置”1”中斷函數(shù)執(zhí)行后,自動清”0”定時中斷函數(shù)調用過程當定時計數(shù)中斷0(1)開關打開時,如果TF0(TF1)為“1”,則自動調用定時計數(shù)中斷0(1)函數(shù),并自動清IE0(IE1)課堂練習上述例題用工作方式2實現(xiàn)。課堂練習上述例題用定時器1工作方式2、定時時間改為0.5秒實現(xiàn)。定時計數(shù)器工作方式2工作原理啟動定時計數(shù)器0(1)后,TL0(TL1)自動加1(定時器每隔1個機器周期加1;計數(shù)器每數(shù)1個脈沖加1)當TL0(TL1)溢出時,TF0(TF1)自動置“1”,同時自動將TH0(TH1)單元內容加載到TL0(TL1)中同工作方式1的區(qū)別:8位;自動重新加載工作方式2中斷調用時間間隔較短,一般用于計數(shù)器例題將工作方式1的例題改為工作方式2,實現(xiàn)同樣功能。課堂練習用定時器1的工作方式2實現(xiàn),LED每隔0.5秒亮滅變化。例題用計數(shù)器0的工作方式2實現(xiàn)每數(shù)5個脈沖LED亮滅變化課堂練習用計數(shù)器1的工作方式2實現(xiàn)每數(shù)3個脈沖LED亮滅變化例題利用定時器實現(xiàn)可調時的電子鐘功能。課堂演示射擊小游戲。討論:如何定義變量?顯示如何實現(xiàn)?敵人如何前進?如何實現(xiàn)消滅第1個敵人?如何計分?課堂練習在學習板上實現(xiàn)可調時的電子鐘編程實現(xiàn)射擊小游戲。在學習板上實現(xiàn)射擊小游戲。課后練習在學習板上實現(xiàn)“利用定時器實現(xiàn)可調時的電子鐘功能”。在學習板上實現(xiàn)“利用定時器實現(xiàn)可調時的電子鐘功能+秒表功能”。在學習板上實現(xiàn)“利用定時器實現(xiàn)可調時的電子鐘功能+秒表功能+數(shù)數(shù)功能”。在學習板上實現(xiàn)“利用定時器實現(xiàn)可調時的電子鐘功能+秒表功能+數(shù)數(shù)功能+射擊小游戲功能”。外部RAM的擴展1外部RAM的擴展單片機與外部設備通訊方式外部總線外部總線的IO口結構外部RAM的擴展外部總線方式擴展外部輸出設備{不講}外部總線方式擴展外部輸入設備{不講}外部RAM的擴展如果內部RAM空間不夠用,可采取以下兩種方法解決:使用內部RAM更大的單片機。增加外部RAM芯片。第2種方法由于成本的問題,現(xiàn)在已經(jīng)淘汰,學習的目的是熟悉單片機的原理。擴展的外部RAM芯片同單片機之間使用外部總線方式通訊。外部總線外部總線包括:外部數(shù)據(jù)總線【八位】外部地址總線【最大十六位】外部控制總線外部數(shù)據(jù)總線外部數(shù)據(jù)總線的通訊接口是P0口。單片機P0.x口的內部結構外部地址總線外部地址總線的低8位接口是P0口。外部地址總線的高8位接口是P2口。外部控制總線外部控制總線共3根:/P/S/E/N:讀ROM/W/R(P3.6):寫外部RAM/R/D(P3.7):讀外部RAM例題給AT89S51擴展1片6264芯片(外部RAM芯片)關于6264芯片6264引腳圖62648KB(64Kb)RAM芯片,共28個引腳:地址線13根:A12~0數(shù)據(jù)線8根:I/O7~0讀允許:/O/E寫允許:/W/E片選:/C/S1,CS2電源:VCC,GND空引腳:NC思考為什么是13個地址引腳?答:2^13=8K總線接法相關指令共4條:MOVX @DPTR, A(常用)MOVX A, @DPTR(常用)MOVXA,@RiMOVX@Ri,A例題*分析下面MOVX指令的執(zhí)行過程:MOVA,#0x33MOVDPTR,#0x1234MOVX@DPTR,A“MOVX@DPTR,A”指令執(zhí)行過程*CPU端將#0x34送P0口(推挽式),#0x12送P2口(內部上拉電阻)將#0x33送P0口(推挽式)給(/W/R)引腳(P3.6)短暫低電平信號6264端當/W/E引腳出現(xiàn)低電平信號時,立刻將此時I/O7~0

引腳上的數(shù)#0x33寫到此時A12~0引腳選中的存儲單元(#0x1234)中。例題*分析下面MOVX指令的執(zhí)行過程:MOVDPTR,#0x1234MOVXA,@DPTR“MOVXA,@DPTR”指令執(zhí)行過程*CPU端將#0x34送P0口(推挽式),#0x12送P2口(內部上拉電阻)給(/R/D)引腳(P3.7)短暫低電平信號將P0口數(shù)據(jù)送A。6264端當/O/E引腳出現(xiàn)低電平信號時,立刻將此時A12~0引腳選中的存儲單元(#0x1234)中的數(shù)送到I/O7~0

引腳。例題繪制擴展6264的硬件示意圖。參見例題:6264思考按上述硬件圖,下面指令可以寫6264嗎?MOVA,#0x33MOVDPTR,#0x3234MOVX@DPTR,A答:可以,寫到了6264的#0x1234單元中。課堂練習外接兩片6264,畫出硬件圖。外接8片6264,畫出硬件圖。UART串行通信15UART串行通信UART(Universal

Asynchronous

Receiver

Transmitter,通用異步串行口)一般由波特率產(chǎn)生器、UART接收器、UART發(fā)送器組成硬件連接(3根線):1根用于發(fā)送,1根用于接收,還有1根地線。AT89S51帶有1個UART接口。課堂練習查閱資料,找到AT89S51芯片中與UART相關的引腳。UART接口例題利用UART實現(xiàn)單片機與單片機的串行通訊(查詢法)功能:主機:當按“上”鍵時,讀取從機顯示值;當按“下”鍵時,對從機顯示值清零。從機:按上下鍵,調整顯示值,同時接收并執(zhí)行主機命令。課題練習在學習板上實現(xiàn)例題功能。例題程序講解專用寄存器:SCONUART的工作方式專用寄存器:SBUFSCON(0x98)SM0SM1SM2RENTB8RB8TIRI

SM0SM1:工作方式選擇REN:允許串行接收位TI:發(fā)送中斷標志位RI:接收中斷標志位 SM2,TB8,RB8:用于多機通信(很少使用)工作方式工作方式0工作方式1(常用只記住這個)工作方式2

工作方式3波特率每秒鐘傳輸?shù)奈粩?shù)。UART內部結構圖工作方式1原理(查詢法發(fā)送)將1個字節(jié)數(shù)據(jù)寫入發(fā)送SBUF(0x99)單片機內部串行接口電路自動將SBUF中數(shù)據(jù)加入起始位和停止位,并由TXD引腳串行輸出當一幀(10位)數(shù)據(jù)發(fā)送完成后,單片機內部電路自動將SCON中的TI置“1”注意:當數(shù)據(jù)正在發(fā)送時,不能寫SBUF工作方式1原理(查詢法接收)移位寄存器(8位)按位接收RXD引腳的一幀數(shù)據(jù)(忽略起始位和停止位)一幀數(shù)據(jù)讀取完成時,將單片機內部電路自動將移位寄存器中數(shù)據(jù)保存至接收SBUF(0x99)RI置位注意:當RI置位時,需及時取走SBUF中數(shù)據(jù),否則數(shù)據(jù)會被覆蓋。思考當主機向UART發(fā)送1個字節(jié)數(shù)據(jù)后,傳輸線路上的數(shù)據(jù)是多少位?起始位和停止位的電位是?信號傳輸?shù)木嚯x是多少?答:通常情況下,<30cm如何實現(xiàn)更遠距離的傳輸呢?答:可通過專用芯片對信號進行電壓轉換后再傳輸。串行通信和并行通信串行通信:一條信息的各位數(shù)據(jù)通過串口引腳被逐位順序傳送并行通信:一條信息的各位數(shù)據(jù)通過數(shù)據(jù)總線被同時傳送并行通訊幾乎消失串行通信的格式及約定(如:同步方式、通訊速率、數(shù)據(jù)塊格式、信號電平等)不同,形成了多種串行通信的協(xié)議與接口標準。串行通信的協(xié)議與接口標準常見的有:[28]UARTUSBI2CCANSPI1-WireRS-232C,RS-485,USB標準等等串行通信總線標準RS-232C總線標準RS-485總線標準USB總線標準RS-232C總線標準15RS-232C總線標準RS:RecommendedStandard232:該標準的標識

C:此標準已修改了三次總線電壓:“1”:-3V~-l5V“0”:+3V~+l5V通信距離:<15m通信速率:<20Kb/S應用:短距離的點對點通訊單片機轉RS-232C的芯片常見芯片:MAX232、MAX232A、MAX3232[29]3種型號價格差不多MAX232、MAX232A逐漸淘汰MAX3232成為主流國產(chǎn)約0.6元,進口約6元。MAX232/MAX232A/MAX3232硬件連接圖注意如果接MAX3232芯片,上述2號引腳需經(jīng)電容后接地。電容值也要改變。電容選擇C5:0.1uFMAX232:C1-C4:1uFMAX232A:C1-C4:0.1uFMAX3232:C1:0.1uFC2-C4:0.47uF232串口線例題查詢法實現(xiàn)單片機與PC機的串行通訊功能:PC機:當發(fā)送0x55時,讀取從機顯示值;當發(fā)送0x66時,對從機顯示值清零。從機:按上下鍵,調整顯示值,同時接收并執(zhí)行主機命令。步驟將從機程序下載到學習板中打開串口調試軟件,選擇正確的端口,并將波特率,數(shù)據(jù)位,校驗位,停止位分別設為:2400,8,無,1打開串口,在發(fā)送區(qū),發(fā)送55或66,觀察結果例題中斷法實現(xiàn)單片機與PC的串行通訊(將從機的接收改為中斷法實現(xiàn))RS485總線標準15RS-485總線標準32個節(jié)點(1發(fā)送)發(fā)送電壓(共模):VCC發(fā)送電壓(差模):±1.5V(RL=54Ω)~±6V接收電壓(共模):-7V~+12V接收電壓(差模):“1”:VA–VB≥0.2V“0”:VA–VB≤-0.2V接收器輸入阻抗為≥12kΩ

通訊距離:<1200m通訊速率:<10Mbps485通訊芯片選型SN75LBC184[39]64個節(jié)點(1發(fā)送)推薦節(jié)點數(shù):<64*0.7瞬變電壓抑制功能波特率:250Kbps推薦波特率:<=9600bps約2元(淘寶)硬件連接圖硬件連接圖說明R24為線路的匹配電阻,僅485網(wǎng)絡兩頭的設備添加此電阻。R24可以用0805貼片電阻嗎?答:不能,0805貼片電阻的功率過低。485通訊注意事項注意防靜電需隔離完全隔離隔離辦法1:添加光耦,隔離D

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論