久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

單片機原理及應(yīng)用教案-第5章

時間:2019-05-12 17:52:42下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《單片機原理及應(yīng)用教案-第5章》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《單片機原理及應(yīng)用教案-第5章》。

第一篇:單片機原理及應(yīng)用教案-第5章

第5課

教學(xué)內(nèi)容:

2.4.8 MCS-51單片機指令的時序 第3章 匯編語言程序設(shè)計 3.1基本知識

3.2分支程序設(shè)計實例分析

3.3循環(huán)程序設(shè)計實例分析

教學(xué)目標(biāo):

了解:MCS-51單片機指令時序;程序設(shè)計方法;匯編語言格式及匯編方法

掌握:分支程序設(shè)計要點,先分支后賦值程序設(shè)計,先賦值后分支程序設(shè)計;循環(huán)程序設(shè)計要點,實例2程序設(shè)計方案。

課時安排:

課時

教學(xué)重點:

分支和循環(huán)程序設(shè)計方法

教學(xué)提示:

一、重點內(nèi)容與要點分析

(一)MCS-51單片機指令的時序

執(zhí)行指令的最小時間單元是機器周期。每個機器周期由12個時鐘周期構(gòu)成,分為6個S狀態(tài)。一般每個機器周期中ALE和/PSEN信號有效兩次。指令長度有單字節(jié)、雙字節(jié)、三字節(jié)三種情況。執(zhí)行指令的時間有單周期、雙周期、四周期三種情況。單字節(jié)指令的執(zhí)行時間有單周期、雙周期、四周期三種情況;雙字節(jié)指令的執(zhí)行時間有單周期、雙周期兩種情況;三字節(jié)指令的執(zhí)行時間都為雙周期。具體指令的長度和執(zhí)指時間見附錄。

(二)匯編語言程序設(shè)計

掌握:分支程序設(shè)計、循環(huán)程序設(shè)計、子程序設(shè)計。1.畫出清晰的程序流程圖

一般地,開發(fā)者都是首先對自己開發(fā)的項目進行仔細地分析了解,在心里有個大概的框架后就開始編程序。但是程序是很難一步到位的,當(dāng)需要改變一點小小的漏洞或者是要加入一個新的功能時,編程者往往顯得不知所措,不知從何下手,重新整理自己的思路而耗費大量的時間。因此最好在進行編程前畫出整個項目的流程圖,這樣自己分析和解決問題的過程一目了然,而且要盡量詳細具體,重要的地方應(yīng)作上標(biāo)記,便于以后作修改時能很快明白自己的思路。總之在編程過程中,有了流程圖,就有了自己的主線,即使以后需要作大的變動,根據(jù)在流程圖中的標(biāo)記和說明,可以輕松地解決問題,以免在焦頭爛額之際,思路不清晰而陷入困境。2.變量定義的直觀性

大家肯定聽說過Windows編程中的匈牙利命名法,它突出的特點就是變量名稱的直觀性,從變量的名稱就能知道該變量的基本含義和用途,這樣方便自己和別人理解程序,提高效率。其實在匯編程序中也可以實現(xiàn),使用偽指令EQU和BIT即可。EQU用于定義字節(jié)常量,此變量可以代表地址,也可以代表立即數(shù),只是使用時要注意如果是立即數(shù)的話,必須要在變量名稱前面加上#號。還要注意在以字母開始的變量值前面加上0,如FFH應(yīng)寫成0FFH,否則會報錯。BIT用于定義位變量。請看下面這段程序: SPEED_1 EQU 10H SPEED_2 EQU 20H SPEED_3 EQU 30H COUNT_H EQU 8DH COUNT_L EQU 10H ALARM_1 BIT 83H ALARM_2 BIT 84H ALARM_3 BIT 85H 一看就知道上面變量的基本含義,SPEED肯定和速度有關(guān),COUNT和計數(shù)有關(guān),ALARM和報警有關(guān)。當(dāng)使用MOV A,SPEED_1時,SPEED_1是地址變量,即將10H地址單元中的數(shù)據(jù)送到寄存器A中。MOV A,#SPEED_1語句中,SPEED_1代表立即數(shù),因為它前面有#號,即將立即數(shù)10H送到寄存器A中。注意:字符串變量的長度不能太長,一般宜在12個英文字母左右,否則編譯會出錯。

這樣做還有一個好處是修改特別方便,當(dāng)程序需要變動存儲單元時,不用在每個使用此變量的地方輪流去修改,而只要在變量表中將相應(yīng)的地址更改即可,如:如果以后需要加上一個存儲單元而占用10H,將10H地址變成別的地址數(shù)值,假設(shè)為11H,按照一般的寫法需要在程序中將地址10H逐個換成11H,特別麻煩。如果建立變量表的話,只需將該字符串變量對應(yīng)的地址值改變即可,因為應(yīng)用程序中使用的是字符串變量。例如,如果在程序中使用了10個MOV A,10H賦值語句,如果沒有使用變量表,需要將10個10H地址值變成11H,如果是使用了變量表,只需將字符串變量對應(yīng)的地址值由10H變成11H即可。

3.間接尋址的使用

一般提到間接尋址大家首先會想到DPTR,這是個16位的外部RAM地址寄存器。但是我要說的是內(nèi)部的RAM地址寄存器,51系列單片機中8052單片機內(nèi)部有256字節(jié)的RAM,我們可以用直接尋址訪問其中00H-7FH字節(jié)單元,而80H-FFH范圍內(nèi)的內(nèi)部RAM地址和特殊功能寄存器的地址空間是重疊的,因此51規(guī)定對于特殊功能寄存器的訪問只能用直接尋址方式,而對于80H-FFH范圍內(nèi)的內(nèi)部RAM地址只能用間接尋址,一般使用的指令是: MOVX @Ri,A 和MOVX A,@Ri

例如將內(nèi)部RAM地址81H的數(shù)據(jù)送到寄存器A,程序如下:

MOV R0,#81H MOVX A,@R0

將寄存器A的數(shù)據(jù)送到內(nèi)部RAM地址81H,程序如下: MOV R0,#81H MOVX @R0,A 4.中斷現(xiàn)場的保護

在使用多種中斷方式后,這個問題尤其顯得重要,因為如果有一個寄存器的數(shù)據(jù)沒有保護好,那么付出的調(diào)試代價是巨大的,這點大家肯定有體會。如果內(nèi)部RAM變量不多的話,可以將堆棧大小盡量設(shè)大些,而且最好在每次進入中斷的時候都進行壓棧,主要針對寄存器A、B、C、PSW。注意在退出中斷時執(zhí)行退棧指令。還有就是注意堆棧的大小防止溢出。

5.返回指令的使用

其實這個問題應(yīng)該是不值得提的,但是在初學(xué)者中這個問題還是比較普遍的。RET指令是子程序返回指令,但是好多人把它當(dāng)成一個萬能的回轉(zhuǎn)指令,其功能是完成從堆棧中取出以前壓入的16位地址送入PC,從而完成子程序的返回。但是有些人總是使用RET指令返回到自己預(yù)想的地方,這樣造成的后果是致命的。

二、教學(xué)方式

在課堂講授教學(xué)內(nèi)容后,留20分鐘,學(xué)生作報告。課堂講授為主,結(jié)合電子CAI課件和教學(xué)網(wǎng)站,提供教學(xué)效果。

三、作業(yè)

1.結(jié)合實例2回答以下問題:

(1)冒泡程序結(jié)束后為什么A中內(nèi)容與任何數(shù)據(jù)單元都不同?(2)ORG 0100H的作用?為什么說是偽指令?

(3)分支程序中 X=-1時,寫入 #FFH → A→31H,但最后31H單元中內(nèi)容為什么不是-1?

2.試將實例2參考程序改為能使64個數(shù)從大到小順序排列,并說明改動理由。3.試編寫能將存放在片外RAM的100個數(shù)進行從小到大順序排列的雙循環(huán)程序,并加以必要說明。

4.討論 在實例2中

(1)在1輪冒泡比較循環(huán)中,R0的最小值是多少?最大值又是多少?(2)在第10輪冒泡比較循環(huán)中,R0的最小值是多少?最大值又是多少?(3)在最后1輪冒泡比較循環(huán)中,R0的最小值是多少?最大值又是多少?

5.冒泡法排序程序,如果改變數(shù)組長度為7,數(shù)據(jù)從40單元開始存放,如何修改程序? 6.編寫程序,把累加器中的8位無符號二進制數(shù)轉(zhuǎn)換成為(兩個字節(jié))BCD碼。百位數(shù)存入HUND變量單元,十位數(shù)和個位數(shù)存入相鄰的變量單元TENONE中。這段子程序的入口地址以符號BINBCD表示。

第二篇:《單片機原理及應(yīng)用》課程教案

《單片機原理及應(yīng)用》課程教案

第三次課 2學(xué)時 主要內(nèi)容: 第二部分 單片機的原理與結(jié)構(gòu)(3)2.5 并行I/O端口 2.6 時鐘電路與時序 2.7 復(fù)位操作和復(fù)位電路 重點: P0~P3端口功能及使用中應(yīng)注意的問題 機器周期、時鐘周期、指令周期的定義,及時鐘周期、頻率的計算 復(fù)位后,特殊功能寄存器的初值 難點: P0端口的功能 2.5 并行I/O端口 4個雙向的8位并行I/O端口(Port),記作P0~P3 屬于特殊功能寄存器,還可位尋址。2.5.1 P0端口(講解時強調(diào)端口完成的功能)P0口某一位的電路包括:(1)一個數(shù)據(jù)輸出鎖存器,用于數(shù)據(jù)位的鎖存(2)兩個三態(tài)的數(shù)據(jù)輸入緩沖器。(3)一個多路轉(zhuǎn)接開關(guān)MUX,設(shè)置多路轉(zhuǎn)接開關(guān)的目的:P0口既作通用I/O口,又可作為系統(tǒng)的地址/數(shù)據(jù)線口。(4)數(shù)據(jù)輸出的驅(qū)動和控制電路,由兩只場效應(yīng)管(FET)組成,上面的場效應(yīng)管構(gòu)成上拉電路。P0口傳送地址或數(shù)據(jù)時,CPU發(fā)出控制信號為高電平,打開上面的與門,使多路轉(zhuǎn)接開關(guān)MUX打向上邊,使內(nèi)部地址/數(shù)據(jù)線與下面的場效應(yīng)管處于反相接

通狀態(tài)。這時的輸出驅(qū)動電路由于上下兩個FET處于反相,形成推拉式電路結(jié)構(gòu),大大提高負載能力。P0口作通用的I/O口使用。這時,CPU發(fā)來的“控制”信號為低電平,上拉場效應(yīng)管截止,多路轉(zhuǎn)接開關(guān)MUX打向下邊,與D鎖存器的Q*端接通。(1)作輸出口使用 來自CPU的“寫入”脈沖加在D鎖存器的CP端,內(nèi)部總線上的數(shù)據(jù)寫入D鎖存器,并向端口引腳P0.x輸出。注意:由于輸出電路是漏極開路(因為這時上拉場效應(yīng)管截止),必須外接上拉電阻才能有高電平輸出。(2)作輸入口使用 應(yīng)區(qū)分“讀引腳”和“讀端口”(或稱“讀鎖存器”)。“讀引腳”信號把下方緩沖器打開,引腳上的狀態(tài)經(jīng)緩沖器讀入內(nèi)部總線;“讀鎖存器”信號打開上面的緩沖器把鎖存器Q端的狀態(tài)讀入內(nèi)部總線。2.5.2 P1端口 字節(jié)地址90H,位地址90H~97H。P1口只作為通用的I/O口使用,在電路結(jié)構(gòu)上與P0口有兩點區(qū)別:(1)因為P1口只傳送數(shù)據(jù),不再需要多路轉(zhuǎn)接開關(guān)MUX。(2)由于P1口用來傳送數(shù)據(jù),因此輸出電路中有上拉電阻,這樣電路的輸出不是三態(tài)的,所以P1口是準(zhǔn)雙向口。因此:(1)P1口作為輸出口使用時,外電路無需再接上拉電阻。(2)P1口作為輸入口使用時,應(yīng)先向其鎖存器先寫入 “1”,使輸出驅(qū)動電路的FET截止。2.5.3 P2端口 字節(jié)地址為A0H,位地址A0H~A7H。在實際應(yīng)用中,因為P2口用于為系統(tǒng)提供高位地址,有一個多路轉(zhuǎn)接開關(guān)MUX。但MUX的一個輸入端不再是“地址/數(shù)據(jù)”,而是單一的“地址”,因為P2口只作為地址線使用。當(dāng)P2口用作為高位地址線使用時,多路轉(zhuǎn)接開關(guān)應(yīng)接向“地址”端。正因為只作為地址線使用,口的輸出用不著是三態(tài)的,所以,P2口也是一個準(zhǔn)雙向口。

P2口也可以作為通用I/O口使用,這時,多路轉(zhuǎn)接開關(guān)接向鎖存器Q端。2.5.4 P3端口 P3口的字節(jié)地址為B0H,位地址為B0H~B7H。P3口的第二功能定義,應(yīng)熟記。P3口的第二功能定義: 口引腳 第二功能 P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 INT0*(外部中斷0)P3.3 INT1*(外部中斷1)P3.4 T0(定時器0外部計數(shù)輸入)P3.5 T1(定時器1外部計數(shù)輸入)P3.6 WR*(外部數(shù)據(jù)存儲器寫選通)P3.7 RD*(外部數(shù)據(jù)存儲器讀選通)2.5.5 P0~P3端口功能總結(jié) 使用中應(yīng)注意的問題:(1)P0~P3口都是并行I/O口,都可用于數(shù)據(jù)的輸入和輸出,但P0口和P2口除了可進行數(shù)據(jù)的輸入/輸出外,通常用來構(gòu)建系統(tǒng)的數(shù)據(jù)總線和地址總線,所以在電路中有一個多路轉(zhuǎn)接開關(guān)MUX,以便進行兩種用途的轉(zhuǎn)換。而P1口和P3口沒有構(gòu)建系統(tǒng)的數(shù)據(jù)總線和地址總線的功能,因此,在電路中沒有多路轉(zhuǎn)接開關(guān)MUX。由于P0口可作為地址/數(shù)據(jù)復(fù)用線使用,需傳送系統(tǒng)的低8位地址和8位數(shù)據(jù),因此MUX的一個輸入端為“地址/數(shù)據(jù)”信號。而P2口僅作為高位地址線使用,不涉及數(shù)據(jù),所以MUX的一個輸入信號為“地址”。(2)在4個口中只有P0口是一個真正的雙向口,P1~P3口都是準(zhǔn)雙向口。原因:P0口作為系統(tǒng)的數(shù)據(jù)總線使用時,為保證數(shù)據(jù)的正確傳送,需要解決芯片內(nèi)外的隔離問題,即只有在數(shù)據(jù)傳送時芯片內(nèi)外才接通;不進行數(shù)據(jù)傳送時,芯片內(nèi)外應(yīng)處于隔離狀態(tài)。為此,要求P0口的輸出緩沖器是一個三態(tài)門。在P0口中輸出三態(tài)門是由兩只場效應(yīng)管(FET)組成,所以是一個真正的雙向口。而其它的三個口P1~P3中,上拉電阻代替P0口中的場效應(yīng)管,輸出緩沖器不是三態(tài)的,因此不是真正的雙向口,只能稱其為準(zhǔn)雙向口

(3)P3口的口線具有第二功能,為系統(tǒng)提供一些控制信號。因此在P3口電路增加了第二功能控制邏輯。這是P3口與其它各口的不同之處。2.6 時鐘電路與時序 時鐘電路用于產(chǎn)生MCS-51單片機工作所必需的時鐘控制信號。2.6.1 時鐘電路 時鐘頻率直接影響單片機的速度,電路的質(zhì)量直接影響系統(tǒng)的穩(wěn)定性。常用的時鐘電路有兩種方式:內(nèi)部時鐘方式和外部時鐘方式。2.6.2 機器周期、指令周期與指令時序 單片機執(zhí)行的指令的各種時序均與時鐘周期有關(guān)

一、時鐘周期 單片機的基本時間單位。若時鐘的晶體的振蕩頻率為fosc,則時鐘周期Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns。

二、機器周期 CPU完成一個基本操作所需要的時間稱為機器周期。執(zhí)行一條指令分為幾個機器周期。每個機器周期完成一個基本操作。MCS-51單片機每12個時鐘周期為一個機器周期,一個機器周期又分為6個狀態(tài):S1~S6。每個狀態(tài)又分為兩拍:P1和P2。因此,一個機器周期中的12個時鐘周期表示為:S1P1、S1P2、S2P1、S2P2、?、S6P2。

三、指令周期 執(zhí)行任何一條指令時,都可分為取指令階段和指令執(zhí)行階段。取指令階段,PC中地址送到程序存儲器,并從中取出需要執(zhí)行指令的操作碼和操作數(shù)。指令執(zhí)行階段,對指令操作碼進行譯碼,以產(chǎn)生一系列控制信號完成指令的執(zhí)行。ALE信號是為地址鎖存而定義的,以時鐘脈沖1/6的頻率出現(xiàn),在一個機器周期中,ALE信號兩次有效(但要注意,在執(zhí)行訪問外部數(shù)據(jù)存儲器的指令MOVX時,將會丟失一個ALE脈沖)2.7 復(fù)位操作和復(fù)位電路 2.7.1 復(fù)位操作 單片機的初始化操作,擺脫死鎖狀態(tài)。

引腳RST加上大于2個機器周期(即24個時鐘振蕩周期)的高電平就可使MCS-51復(fù)位。復(fù)位時,PC初始化為0000H,使MCS-51單片機從0000H單元開始執(zhí)行程序。除PC之外,復(fù)位操作還對其它一些寄存器有影響,見表2-6(P34)。SP=07H,P0-P3的引腳均為高電平。在復(fù)位有效期間,ALE腳和PSEN*腳均為高電平,內(nèi)部RAM的狀態(tài)不受復(fù)位的影響。2.7.2 復(fù)位電路 片內(nèi)復(fù)位結(jié)構(gòu):

復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式。最簡單的上電自動復(fù)位電路:

按鍵手動復(fù)位,有電平方式和脈沖方式兩種。電平方式:

脈沖方式:

兩種實用的兼有上電復(fù)位與按鈕復(fù)位的電路。

圖2-19中(b)的電路能輸出高、低兩種電平的復(fù)位控制信號,以適應(yīng)外圍I/O接口芯片所要求的不同復(fù)位電平信號。74LS122為單穩(wěn)電路,實驗表明,電容C的選擇約為0.1mF較好。第四次課 2學(xué)時 主要內(nèi)容: 第三部分 尋址方式,指令系統(tǒng)(1)3.1 指令系統(tǒng)概述 3.2 指令格式 3.3 指令系統(tǒng)的尋址方式 3.4.1 數(shù)據(jù)傳送類指令 重點:指令系統(tǒng)的尋址方式 數(shù)據(jù)傳送類指令

難點:指令系統(tǒng)的尋址方式 第三部分 尋址方式,指令系統(tǒng)(1)介紹MCS-51匯編語言的指令系統(tǒng)。3.1 指令系統(tǒng)概述 MCS-51的基本指令共111條,按指令所占的字節(jié)來分:(1)單字節(jié)指令49條;(2)雙字節(jié)指令45條;(3)三字節(jié)指令17條。按指令的執(zhí)行時間來分:(1)1個機器周期(12個時鐘振蕩周期)的指令64條;(2)2個機器周期(24個時鐘振蕩周期)的指令45條;(3)只有乘、除兩條指令的執(zhí)行時間為4個機器周期(48個時鐘振蕩周期)。12MHz晶振:機器周期為1ms。3.2 指令格式 兩部分組成,即操作碼和操作數(shù)。操作碼用來規(guī)定指令進行什么操作,操作數(shù)則是指令操作的對象,有單字節(jié)指令、雙字節(jié)指令、三字節(jié)不同長度的指令,格式不同。(1)單字節(jié)指令:指令只有一個字節(jié),操作碼和操作數(shù)同在一個字節(jié)中。(2)雙字節(jié)指令:一個字節(jié)為操作碼,另一個字節(jié)是操作數(shù)。(3)三字節(jié)指令:操作碼占一個字節(jié),操作數(shù)占二個字節(jié)。其中操作數(shù)既可能是數(shù)據(jù),也可能是地址。3.3 指令系統(tǒng)的尋址方式 尋址方式就是在指令中說明操作數(shù)所在地址的方法。共7種尋址方式。1.寄存器尋址方式 操作數(shù)在寄存器中 MOV A,Rn ;(Rn)→A,n=0~7 表示把寄存器Rn的內(nèi)容傳送給累加器A 尋址范圍包括:(1)4組通用工作寄存區(qū)共32個工作寄存器。(2)部分特殊功能寄存器,例如A、B 以及數(shù)據(jù)指針寄存器DPTR等。

2.直接尋址方式 操作數(shù)直接以單元地址的形式給出: MOV A,40H 尋址范圍:(1)內(nèi)部RAM的128個單元(2)特殊功能寄存器。除了以單元地址的形式外,還可用寄存器符號的形式給出。例如: MOV A,80H 與 MOV A,P0是等價的。直接尋址方式是訪問特殊功能寄存器的唯一尋址方式 3.寄存器間接尋址方式 寄存器中存放的是操作數(shù)的地址,在寄存器的名稱前面加前綴標(biāo)志“@” 訪問內(nèi)部RAM或外部數(shù)據(jù)存儲器的低256個字節(jié)時,只能采用R0或R1作為間址寄存器。例如:MOV A,@Ri ;i=0或1 其中Ri中的內(nèi)容為40H,把內(nèi)部RAM中40H單元的內(nèi)容送到A。尋址范圍:(1)訪問內(nèi)部RAM低128個單元,其通用形式為@Ri(2)對片外數(shù)據(jù)存儲器的64K字節(jié)的間接尋址,例如: MOVX A,@DPTR(3)片外數(shù)據(jù)存儲器的低256字節(jié),例如: MOVX A,@Ri(4)堆棧區(qū),堆棧操作指令PUSH(壓棧)和POP(出棧)使用堆棧指針(SP)作間址寄存器。4.立即尋址方式 操作數(shù)在指令中直接給出,需在操作數(shù)前面加前綴標(biāo)志“#”。例如: MOV A,#40H 5.基址寄存器加變址寄存器間址尋址方式 本尋址方式是以DPTR或PC作基址寄存器,以累加器A作為變址寄存器。例如:指令 MOVC A,@A+DPTR 其中A的原有內(nèi)容為05H,DPTR的內(nèi)容為0400H,該指令執(zhí)行的結(jié)果是把程序存儲器0405H單元的內(nèi)容傳送給A。說明:(1)本尋址方式是專門針對程序存儲器的尋址方式,尋址范圍可達到64KB。(2)本尋址方式的指令只有3條:

MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR 6.位尋址方式 MCS-51有位處理功能,可以對數(shù)據(jù)位進行操作,例如MOV C,40H 是把位40H的值送到進位位C。尋址范圍包括:(1)內(nèi)部RAM中的位尋址區(qū)。位有兩種表示方法,例如,40H;另一種是單元地址加上位,例如,(28H).0,指的是28H單元中的最低位。它們是等價的。(2)特殊功能寄存器中的可尋址位 可尋址位在指令中有如下4種的表示方法: a.直接使用位地址。例如PSW.5的位地址為0D5H。b.位名稱的表示方法。例如:PSW.5是F0標(biāo)志位,可使用F0表示該位。c.單元地址加位數(shù)的表示方法。例如 :(0D0H).5。d.特殊功能寄存器符號加位數(shù)的表示方法。例如:PSW.5。7.相對尋址方式 在相對尋址的轉(zhuǎn)移指令中,給出了地址偏移量,以“rel”表示,即把PC的當(dāng)前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移的目的地址: 目的地址=轉(zhuǎn)移指令所在的地址 + 轉(zhuǎn)移指令的字節(jié)數(shù)+ rel 偏移量rel是一帶符號的8位二進制數(shù)補碼數(shù)。范圍是:–128 ~ +127。向地址增加方向最大可轉(zhuǎn)移(127+轉(zhuǎn)移指令字節(jié))個單元地址,向地址減少方向最大可轉(zhuǎn)移(128-轉(zhuǎn)移指令字節(jié))個單元地址。3.4 MCS-51指令系統(tǒng)分類介紹 111條指令,按功能分類,可分為下面5大類:(1)數(shù)據(jù)傳送類(28條)(2)算術(shù)操作類(24條)(3)邏輯運算類(25條)(4)控制轉(zhuǎn)移類(17條)(5)位操作類(17條)指令中符號的意義: Rn 當(dāng)前寄存器區(qū)的8個工作寄存器R0~R7(n=0~7)。Ri 當(dāng)前選中的寄存器區(qū)中可作間接尋址寄存器的2 個寄存器R0、R1(i=0,1)。

Direct 直接地址,即8位的內(nèi)部數(shù)據(jù)存儲器單元或特殊功能寄存器的地址。#data 包含在指令中的8位立即數(shù)。#data16 包含在指令中的16位立即數(shù)。rel 相對轉(zhuǎn)移指令中的偏移量,為8位的帶符號補 碼數(shù) DPTR 數(shù)據(jù)指針,可用作16位的地址寄存器。bit 內(nèi)部RAM或特殊功能寄存器中的直接尋址位。C(或Cy)進位標(biāo)志位或位處理機中的累加器。addr11 11位目的地址 addr16 16位目的地址 @ 間接尋址寄存器前綴,如@Ri,@A+DPTR(X)X中的內(nèi)容。((X))由X尋址的單元中的內(nèi)容。→ 箭頭右邊的內(nèi)容被箭頭左邊的內(nèi)容所取代。3.4.1 數(shù)據(jù)傳送類指令 使用最頻繁的一類指令,通用格式: MOV <目的操作數(shù)>,<源操作數(shù)> 屬“復(fù)制”性質(zhì),而不是“搬家”,數(shù)據(jù)傳送類指令不影響標(biāo)志位, CyOV,但不包括奇偶標(biāo)志位P。1.以累加器為目的操作數(shù)的指令 MOV A,Rn;(Rn)→A,n=0~7 MOV A,@Ri;((Ri))→A,i=0,1 MOV A,direct;(direct)→A MOV A,#data;#data→A 例如: MOV A,R6;(R6)→A,寄存器尋址 MOV A,70H;(70H)→A,直接尋址 MOV A,@R0;((R0))→A,間接尋址 MOV A,#78H;78H→A,立即尋址 2.以Rn為目的操作數(shù)的指令、Ac和

MOV Rn,A;(A)→Rn,n=0~7 MOV Rn,direct;(direct)→Rn,n=0~7 MOV Rn,#dat;#data→Rn,n=0~7 功能:是把源操作數(shù)的內(nèi)容送入當(dāng)前一組工作寄存器區(qū)的R0~R7中的某一個寄存器。3.以直接地址direct為目的操作數(shù)的指令 MOV direct,A;(A)→direct MOV direct,Rn;(Rn)→direct, n=0~7 MOV direct1,direct2;MOV direct,@Ri;((Ri))→direct MOV direct,#data;#data→direct 功能:把源操作數(shù)送入直接地址指出的存儲單元。direct指的是內(nèi)部RAM或SFR的地址。4.以寄存器間接地址為目的操作數(shù)的指令 MOV @Ri,A;(A)→((Ri)),i=0,1 MOV @Ri,direct;(direct)→((Ri))MOV @Ri,#data;#data→((Ri))5.16位數(shù)傳送指令 MOV DPTR,#data16;#data16→DPTR 唯一的16位數(shù)據(jù)的傳送指令 ,立即數(shù)的高8位送入DPH,立即數(shù)的低8位送入DPL。6.堆棧操作指令 MCS-51內(nèi)部RAM中可以設(shè)定一個后進先出(LIFO-Last In First Out)的區(qū)域稱作堆棧.堆棧指針SP指出堆棧的棧頂位置。(1)進棧指令 PUSH direct 先將棧指針SP加1,然后把direct中的內(nèi)容送到棧指針SP指示的內(nèi)部RAM單元中。例如: 當(dāng)(SP)=60H,(A)=30H,(B)=70H時,執(zhí)行下列指令

PUSH ACC;(SP)+1=61H→SP,(A)→61H PUSH B;(SP)+1=62H→SP,(B)→62H 結(jié)果:(61H)=30H,(62H)=70H,(SP)=62H(2)出棧指令 POP direct SP指示的棧頂(內(nèi)部RAM單元)內(nèi)容送入direct字節(jié)單元中,棧指針SP減1.例如: 當(dāng)(SP)=62H,(62H)=70H,(61H)=30H,執(zhí)行下列指令: POP DPH;((SP))→DPH,(SP)-1→SP POP DPL;((SP))→DPL,(SP)-1→SP 結(jié)果:(DPTR)=7030H,(SP)=60H 7.累加器A與外部數(shù)據(jù)存儲器傳送指令 MOVX A,@DPTR;((DPTR))→A,讀外部RAM/IO MOVX A,@Ri;((Ri))→A,讀外部RAM/IO MOVX @DPTR,A;(A)→((DPTR)),寫外部RAM/IO MOVX @Ri,A;(A)→((Ri)),寫外部RAM/IO 功能:讀外部RAM存儲器或I/O中的一個字節(jié),或把A中一個字節(jié)的數(shù)據(jù)寫到外部RAM存儲器或I/O中。注意:RD*或WR*信號有效。采用DPTR間接尋址,高8位地址(DPH)由P2口輸出,低8位地址(DPL)由P0口輸出。采用Ri(i=0,1)間接尋址,可尋址片外256個單元的數(shù)據(jù)存儲器。Ri內(nèi)容由P0口輸出。8位地址和數(shù)據(jù)均由P0口輸出,可選用其它任何輸出口線來輸出高于8位的地址(一般選用P2口輸出高8位的地址)。MOV后 “X”表示單片機訪問的是片外RAM存儲器或I/O。8.查表指令 共兩條,用于讀程序存儲器中的數(shù)據(jù)表格的指令,均采用基址寄存器加變址寄存器間接尋址方式。(1)MOVC A,@A+PC

以PC作基址寄存器,A的內(nèi)容作為無符號整數(shù)和PC中的內(nèi)容(下一條指令的起始地址)相加后得到一個16位的地址該地址指出的程序存儲單元的內(nèi)容送到累加器A。注意:PSEN*信號有效。例如:(A)=30H,執(zhí)行地址1000H處的指令 1000H: MOVC A,@A+PC 本指令占用一個字節(jié),執(zhí)行結(jié)果將程序存儲器中1031H的內(nèi)容送入A。優(yōu)點:不改變特殊功能寄存器及PC的狀態(tài),根據(jù)A的內(nèi)容就可以取出表格中的常數(shù)。缺點:表格只能存放在該條查表指令后面的256個單元之內(nèi),表格的大小受到限制,且表格只能被一段程序所利用。(2)MOVC A,@A+DPTR 以DPTR作為基址寄存器,A的內(nèi)容作為無符號數(shù)和DPTR的內(nèi)容相加得到一個16位的地址,把由該地址指出的程序存儲器單元的內(nèi)容送到累加器A.例如(DPTR)=8100H(A)=40H 執(zhí)行指令 MOVC A,@A+DPTR 本指令的執(zhí)行結(jié)果只和指針DPTR及累加器A的內(nèi)容有關(guān),與該指令存放的地址及常數(shù)表格存放的地址無關(guān),因此表格的大小和位置可以在64K程序存儲器中任意安排,一個表格可以為各個程序塊公用。兩條指令是在MOV的后面加C,“C”是CODE的第一個字母,即代碼的意思。9.字節(jié)交換指令 XCH A,Rn XCH A,direct XCH A,@Ri 例如:(A)=80H,(R7)=08H,(40H)=F0H(R0)=30H,(30H)=OFH 執(zhí)行下列指令: XCH A,R7;(A)與(R7)互換

XCH A,40H;(A)與(40H)互換 XCH A,@R0;(A)與((R0))互換 結(jié)果:(A)=0FH,(R7)=80H,(40H)=08H,(30H)=F0H 10.半字節(jié)交換指令 XCHD A,@Ri 累加器的低4位與內(nèi)部RAM低4位交換。例如:(R0)=60H,(60H)=3EH,(A)=59H執(zhí)行完

指令,則(A)=5EH,(60H)=39H。XCHD A,@RO

第三篇:《單片機原理及應(yīng)用》課程

《單片機原理及應(yīng)用》課程

自評報告

陜西理工學(xué)院電氣工程系《單片機原理及應(yīng)用》課程組 二○一○年三月

目 錄

第一部分 課程簡介

第二部分

課程內(nèi)容與體系的改革 第三部分 實驗教材

第四部分 自評結(jié)果和評分依據(jù) 第五部分 存在的主要問題及整改措施 附件:自評評分依據(jù) 《單片機原理及應(yīng)用》課程自評報告

第一部分 課程簡介

單片機技術(shù)廣泛地應(yīng)用于工業(yè)控制、智能儀器儀表、機電一體化產(chǎn)品、家用電器等各個工業(yè)領(lǐng)域。因此,單片機原理及應(yīng)用是工科院校各專業(yè)學(xué)生的一門重要的應(yīng)用技術(shù)課程,對電類學(xué)生尤為重要,通過該課程可以了解工業(yè)高新技術(shù),培養(yǎng)綜合的工程設(shè)計能力。學(xué)生在課程設(shè)計、畢業(yè)設(shè)計、科研項目中會廣泛應(yīng)用到單片機知識,而且,進入工作后,更會廣泛接觸到單片機的工程項目。近幾年,一些用人單位直接把單片機應(yīng)用技術(shù)測試作為人才選用的條件。顯然,提高該門課程的教學(xué)質(zhì)量,對培養(yǎng)學(xué)生的綜合應(yīng)用能力,提升學(xué)生在人才需求市場中的競爭能力,具有重要意義。

《單片機原理及應(yīng)用》課程是自動化、電氣工程及其自動化、計算機科學(xué)與技術(shù)等專業(yè)的一門專業(yè)技術(shù)基礎(chǔ)課。單片機應(yīng)用技術(shù)包含著廣泛的內(nèi)容(基本原理、接口技術(shù)、開發(fā)方法、開發(fā)工具、控制技術(shù)等),而且構(gòu)成完整的知識體系。也就是說,缺少某一個方面或某一個環(huán)節(jié)的知識,將會影響實踐應(yīng)用能力。再者,單片機產(chǎn)品及其應(yīng)用技術(shù)發(fā)展日新月異。在一門課程的有限教學(xué)時間內(nèi),如何讓學(xué)生比較系統(tǒng)全面的掌握單片機應(yīng)用知識,同時能反映比較新的應(yīng)用技術(shù),培養(yǎng)學(xué)生的工程設(shè)計能力,必須加強課程建設(shè)力度,在課程內(nèi)容與課程體系上進行重大改革。

《單片機原理及應(yīng)用》課程在自動化、電氣工程及其自動化、計算機科學(xué)與技術(shù)3個本、專科專業(yè)中開設(shè)學(xué)時為40-60學(xué)時。多年來,該課程組師資隊伍建設(shè)穩(wěn)步提高,教學(xué)和實驗條件逐步完善,現(xiàn)已形成了相對穩(wěn)定的較高教學(xué)水平的師資隊伍和完全滿足實驗教學(xué)條件的實驗平臺。

目前,《單片機原理及應(yīng)用》課程組共有6名課程主講教師和多位實驗技術(shù)人員,其中教授1人、副教授2人、講師3人,研究生5人,實驗師多人,承擔(dān)校內(nèi)相關(guān)3個專業(yè)本、專科學(xué)生的單片機原理及應(yīng)用課程教學(xué)與實驗任務(wù)。

《單片機原理及應(yīng)用》課程組在多年的具體教學(xué)與實踐過程中,在課程建設(shè)和教學(xué)改革方面取得了較為顯著的成效。從2000年開始,課程改革小組注重教育思想和教學(xué)觀念的轉(zhuǎn)變,開展了課程教學(xué)內(nèi)容、課程體系、教學(xué)方法及教學(xué)手段的改革研究與實踐,對課程的教學(xué)內(nèi)容與體系進行了優(yōu)化。目前已初步建立了以培養(yǎng)學(xué)生工程素質(zhì)和綜合應(yīng)用能力為教學(xué)目標(biāo)的新的課程體系,在教材建設(shè)、實踐性教學(xué)環(huán)節(jié)建設(shè)方面取得了可喜的成果。李建忠教授把課程組研究的理論成果變成了現(xiàn)實成果,編著的《單片機原理及應(yīng)用》(第二版被評為國家十一五規(guī)劃教材)一書被全國30多個省市的100多所高校采用,在國內(nèi)產(chǎn)生較大影響。組織的實踐教學(xué)環(huán)節(jié)在本院多屆學(xué)生中也取得了顯著的成效。

《單片機原理及應(yīng)用》教學(xué)儀器設(shè)備豐富,實驗開出率100%,同時開設(shè)一定的設(shè)計性、綜合性實驗。實驗室規(guī)章制度健全,管理人員到位,教學(xué)服務(wù)及時,為實驗課程教學(xué)提供了有力保障。

隨著“單片機原理及應(yīng)用”課程內(nèi)容和課程體系改革的進行,課程教學(xué)質(zhì)量逐步明顯提高。伴隨著教學(xué)質(zhì)量的提高,浮現(xiàn)出了許多科研項目。例如,智能型家用有毒氣體探測語音報警呼救裝置、機車防帶電過分相裝置、消失模澆注充型速度的微機化測試的研制,科研項目的進行又推動了教學(xué)質(zhì)量的進一步提高。教師在教學(xué)中,結(jié)合自己的科研生動地講解原理、方法、技術(shù)。近幾年課程組成員結(jié)合自己的科研項目,在單片機應(yīng)用技術(shù)方面發(fā)表論文多篇。

第二部分 課程內(nèi)容與體系的改革

教材是教育思想、教育理念體現(xiàn)的載體,是一門課程教學(xué)內(nèi)容與體系、教學(xué)方法及手段的集中表現(xiàn)。一本好的教材不能局限在知識的傳遞上,還應(yīng)表現(xiàn)在科學(xué)思維方法、獲取知識的方法、綜合能力和創(chuàng)新設(shè)計能力培養(yǎng)方法的傳遞上,便于運用新的教學(xué)方法和手段組織實施教學(xué)。這是課程組改革研究的一個理論成果。

在理論研究的指導(dǎo)下,確定以教材建設(shè)為龍頭進行課程內(nèi)容與體系的優(yōu)化。由于單片機應(yīng)用技術(shù)知識包含的內(nèi)容廣泛,單片機產(chǎn)品及其應(yīng)用技術(shù)發(fā)展速度快,如何在有限的計劃課時內(nèi)讓學(xué)生比較完整的掌握單片機應(yīng)用技術(shù)知識體系,同時了解一些比較新應(yīng)用技術(shù),吸取了國內(nèi)外先進的教學(xué)思想和教學(xué)經(jīng)驗,廣泛收集和查閱國內(nèi)外優(yōu)秀教材和有關(guān)教學(xué)資料,又結(jié)合我們多年積累的教學(xué)經(jīng)驗和教訓(xùn),比較全面地考慮了各種因素,對課程內(nèi)容與課程體系進行整體優(yōu)化,編著了《單片機原理及應(yīng)用》(第二版被評為國家十一五規(guī)劃教材)、《單片機原理及應(yīng)用實踐教程》,形成了一套新的課程教學(xué)體系。教材內(nèi)容體系進行了優(yōu)化組合。既體現(xiàn)了系統(tǒng)全面,包含了基本原理、接口技術(shù)、開發(fā)方法、開發(fā)工具、控制技術(shù)等,又進行了濃縮精練,論述嚴謹透徹。教材內(nèi)容的組織上采用“以點見面,觸類旁通”的精練濃縮方法。例如,在每一章節(jié)前都概述出相關(guān)的一般性內(nèi)容和方法,然后再以具體的內(nèi)容或典型的實例進行說明。始終貫穿應(yīng)用觀點。例如,在單片機原理的講解中,著重強調(diào)站在應(yīng)用角度,掌握單片機的功能特性和配置結(jié)構(gòu)。即用戶站在單片機芯片外部看它所提供給用戶的使用功能和資源,達到正確、合理的使用單片機所提供的硬、軟件資源。這不僅給學(xué)生強調(diào)了達到應(yīng)用的學(xué)習(xí)目標(biāo),而且給學(xué)生樹立了一個學(xué)習(xí)掌握應(yīng)用知識的正確學(xué)習(xí)方法界面。這一點經(jīng)教學(xué)實踐檢驗,取得了良好的教學(xué)效果。又例如,在應(yīng)用技術(shù)的講解中,大多數(shù)選自生產(chǎn)和科研中的應(yīng)用實例,使學(xué)生學(xué)后就能用。注重科學(xué)思維方法、獲取知識的方法、綜合能力和創(chuàng)新設(shè)計能力的培養(yǎng)方法的傳遞。掌握一門學(xué)科知識的學(xué)習(xí)方法,其實質(zhì)是找出并抓住學(xué)科知識的內(nèi)在聯(lián)系,形成一個完整體系。該書突出了這方面的特色。例如,在指令系統(tǒng)的講述中,大多數(shù)教材采取按功能類逐條指令羅列講解,使初學(xué)者很難理解記憶。其實,指令系統(tǒng)中有一些操作指令的子集合是具有特征規(guī)律的,不同操作指令的子集合之間也具有一些可比性特征規(guī)律,在該書的講述中用歸納、類推、類比方法進行縱向歸類,橫向類推、比較。這不僅能使學(xué)生掌握知識,而且學(xué)習(xí)了科學(xué)思維方法和學(xué)習(xí)方法。在講解基礎(chǔ)知識的基礎(chǔ)上,反映新的應(yīng)用技術(shù)成果。例如,緊密結(jié)合基礎(chǔ)知識講解了單片機應(yīng)用程序開發(fā)設(shè)計方法。

第三部分 實驗教材

在廣泛調(diào)研現(xiàn)有實驗教材經(jīng)驗與問題的基礎(chǔ)上,引入新的教育理念,針對現(xiàn)代工程人才的培養(yǎng)模式、人才素質(zhì)及能力的要求,課程組認為實驗教材不能局限在對基礎(chǔ)知識的驗證上、不能局限在基本實驗的操作指導(dǎo)上、不能局限在某一門課程知識的動手實踐能力的培養(yǎng)上、不能局限在理論教材的輔助功能作用上,還應(yīng)給學(xué)生提供廣闊的、自由靈活的動手實踐空間,要培養(yǎng)學(xué)生在基本理論知識的基礎(chǔ)上能夠吸收、使用新技術(shù)方法,培養(yǎng)學(xué)生一般的工程實踐能力和創(chuàng)新設(shè)計能力,使實驗教材成為相對獨立的綜合實踐能力培養(yǎng)的指導(dǎo)書。在這樣的思想指導(dǎo)下,組織編寫了《單片機原理及應(yīng)用實踐教程》的,于2001年5月在本院內(nèi)部印刷使用。在多年的使用中取得了良好的效果。

《單片機原理及應(yīng)用實踐教程》一書主要具有以下特色:(1)知識的系統(tǒng)完整性與實踐過程的系統(tǒng)完整性并重 實驗內(nèi)容的編寫上緊密結(jié)合理論教學(xué),按照單片機原理及應(yīng)用課程知識的內(nèi)在聯(lián)系,保持了知識的系統(tǒng)完整性。從宏觀結(jié)構(gòu)上,實驗內(nèi)容分為單片機系統(tǒng)功能、單片機系統(tǒng)擴展、單片機系統(tǒng)配置和綜合應(yīng)用四大實驗組。在每個實驗組中又按照基礎(chǔ)→綜合→工程應(yīng)用的方式安排了多個實驗項目,每個實驗項目中又按照基本原理、知識提要、基本技術(shù)、方法論證、實驗結(jié)果分析的方式進行組織。這樣,使該書成為學(xué)習(xí)、掌握單片機原理及應(yīng)用知識的很有價值的參考書。從實踐應(yīng)用過程看,該書宏觀上反映了單片機應(yīng)用系統(tǒng)的開發(fā)環(huán)境、開發(fā)方法、開發(fā)過程。在每一個實驗項目中,又反映出了一個單片機應(yīng)用系統(tǒng)立題概要分析、功能結(jié)構(gòu)論證分析、器件選擇、硬軟件設(shè)計、系統(tǒng)調(diào)試、性能分析與測試、文檔收集與整理的全過程。使學(xué)生能夠?qū)W習(xí)、掌握到一個單片機應(yīng)用系統(tǒng)開發(fā)設(shè)計過程中各個環(huán)節(jié)的技術(shù)方法。

(2)知識掌握和科學(xué)思維能力培養(yǎng)并重

在每個實驗項目中都提示出所依據(jù)的基本原理知識,所采用的方法和技術(shù),通過實驗來加深對基本知識的理解,達到熟練掌握。在每個實驗項目后,提出一些很有價值的思考問題,主要圍繞實驗現(xiàn)象觀察與分析,培養(yǎng)學(xué)生科學(xué)細致地觀察與分析問題的方法和能力。每個實驗既給出了參考方案,又要求學(xué)生在參考方案的基礎(chǔ)上自行設(shè)計、調(diào)試,充分發(fā)揮學(xué)生的主觀能動性和創(chuàng)造力、有意識地培養(yǎng)學(xué)生對工程問題的分析與設(shè)計方法。每個實驗都要求學(xué)生按照嚴格的格式寫出實驗報告,在實驗報告中深入細致地分析、論證有關(guān)實驗現(xiàn)象與結(jié)果,通過實驗報告的書寫,培養(yǎng)學(xué)生嚴謹求實的科學(xué)方法和態(tài)度。

(3)既面向驗證性實驗又面向開放性、設(shè)計性實驗

根據(jù)單片機原理與應(yīng)用的知識結(jié)構(gòu),實驗內(nèi)容分為單片機系統(tǒng)功能、單片機系統(tǒng)擴展、單片機系統(tǒng)配置和綜合應(yīng)用四個實驗組。每個實驗組又按照基本原理、技術(shù)、方法的應(yīng)用,綜合應(yīng)用、工程設(shè)計的思路方式安排了多個實驗項目,為學(xué)生提供了廣泛的實驗內(nèi)容,即可以供課程實驗使用,也可以供開放實驗、設(shè)計實驗使用。

(4)實驗教學(xué)的目標(biāo)確定在以下幾個方面:

驗證基本理論、方法和技術(shù)。通過驗證性實驗,使學(xué)生加深對基本理論、方法和技術(shù)理解,能夠熟練應(yīng)用,并使學(xué)生進一步認識到:基本理論、方法和技術(shù)來源于實踐,又對實踐有強大的推動作用,在實踐中得到發(fā)展,得到創(chuàng)新。

基本實踐能力的培養(yǎng)。基本實踐能力包含:掌握小型單片機應(yīng)用系統(tǒng)開發(fā)研制所采用的基本環(huán)境、方法、手段及所使用的儀器設(shè)備。

綜合工程實踐能力的培養(yǎng)。綜合工程實踐能力包含:掌握復(fù)雜單片機工程應(yīng)用系統(tǒng)開發(fā)研制所采用的先進的環(huán)境、方法、手段及所使用的儀器設(shè)備,并能進行工程決策分析。

創(chuàng)新設(shè)計能力的培養(yǎng)。創(chuàng)新設(shè)計能力包含:在一些關(guān)鍵的技術(shù)環(huán)節(jié)上能夠激發(fā)出超常的思想方法或采用前沿性的技術(shù)手段分析解決問題。

(5)實驗教學(xué)的實施方式

根據(jù)現(xiàn)代工程人才的培養(yǎng)模式、人才素質(zhì)及能力的要求,我們設(shè)計出了形式多樣的實驗教學(xué)方式。

指導(dǎo)型實驗。這類實驗納入單片機原理及應(yīng)用課程的教學(xué)計劃和教學(xué)大綱,在老師的指導(dǎo)下,進行規(guī)定要求實驗,實驗后要寫出實驗報告。實驗?zāi)繕?biāo)是基本實踐能力的培養(yǎng)。

開放型實驗。這類實驗是學(xué)生根據(jù)自己的要求自發(fā)地進行實驗,實驗室必須隨時滿足學(xué)生的實驗要求。在這種實驗中,學(xué)生可根據(jù)自己的情況實現(xiàn)多種目標(biāo)。

設(shè)計型實驗。這類實驗學(xué)生帶著自己的設(shè)計問題,進入實驗室進行調(diào)試或測試,一般結(jié)合課程設(shè)計、畢業(yè)設(shè)計、大學(xué)生科技活動項目進行。實驗要有明確的目標(biāo),主要培養(yǎng)學(xué)生綜合工程實踐能力和創(chuàng)新設(shè)計能力。

第四部分 自評結(jié)果和評分依據(jù)

為了進一步提高課程教學(xué)質(zhì)量,努力做好課程建設(shè)與評估,電氣工程系專門成立了院系、教研室(課程組)兩級評估領(lǐng)導(dǎo)小組,負責(zé)對申報課程的指導(dǎo)、監(jiān)督和審查。課程組全體任課教師認真學(xué)習(xí)、領(lǐng)會相關(guān)課程建設(shè)與評估精神,認真對照精品課程建設(shè)評估指標(biāo)體系的各項要求,總結(jié)多年來課程建設(shè)的成果,結(jié)合課程建設(shè)過程中存在的實際問題,進行了認真細致地資料整理、自查自評。通過本次自查自評活動,真正達到了“以評促改,以評促建”的目的。

自評結(jié)果:Q=102分(≥100),符合并達到了校級精品課程的條件。詳見附件:課程自評表。

第五部分 存在的主要問題及整改措施

1.網(wǎng)絡(luò)教學(xué)和資源共享方面還需進一步的豐富和完善。實現(xiàn)與本課程相關(guān)的信息查詢、輔導(dǎo)答疑、作業(yè)練習(xí)等多種功能,方便學(xué)生網(wǎng)上學(xué)習(xí)。

2.實驗教學(xué)設(shè)備更新不夠,試驗教學(xué)手段還不夠豐富、不夠先進,理論教學(xué)內(nèi)容和體系還需要進一步整合、優(yōu)化;

3.進一步加大教學(xué)改革力度,轉(zhuǎn)變教育教學(xué)理念,探索高教理論,不斷改進和提高教師的理論與實踐教學(xué)方法和手段。

同時還需要認清形勢,剖析自我,虛心向兄弟院校學(xué)習(xí)先進的課程建設(shè)經(jīng)驗,彌補自己的差距和不足,加快課程建設(shè)步伐,使《單片機原理及應(yīng)用》課程教學(xué)全面上臺階、上水平。

附件:自評評分依據(jù) 師資結(jié)構(gòu):19分/20 1.1師資結(jié)構(gòu):A級,4分/4 課程組職稱結(jié)構(gòu)合理,有教授、副教授、講師、高級實驗師、實驗師共8人,主要由教授、副教授、講師上課。

1.2教學(xué)水平:A級,5 分/6 教學(xué)水平高,高、中級職稱教師均開課2門以上;教學(xué)工作量飽滿,教案齊全;有教改及科研項目。

1.3學(xué)術(shù)水平:A級,6 分/6近3年發(fā)表論文篇,人均6篇;主編、參編教材9部;完成省廳級科研項目3項,校級科研基金項目3項,院教改項目7項。

1.4教風(fēng)建設(shè):A級,4分/4 教風(fēng)良好;教研室制度健全,堅持教學(xué)研究活動,每年教研活動大于18次,有記錄;能堅持相互聽課、評教;能收集學(xué)生對教學(xué)的反饋信息,并改進教學(xué);教學(xué)組無任何教學(xué)事故。教學(xué)條件:24分/25 2.1教學(xué)大綱:A級,6分/6 教學(xué)大綱符合專業(yè)培養(yǎng)目標(biāo)和教學(xué)計劃的基本要求,并能結(jié)合教學(xué)計劃適時修訂、完善;大綱能反映課程體系結(jié)構(gòu),項目完整,層次清晰,重點、難點突出,要求明確;教學(xué)過程中能夠嚴格執(zhí)行大綱。

2.2教材及教學(xué)參考書:A級,7 分/7 選用學(xué)校自編國家級規(guī)劃教材及相應(yīng)教學(xué)參考書,滿足不同專業(yè)的培養(yǎng)計劃要求,使用效果好。

2.3課程教學(xué)管理及教學(xué)文件:A級,5分/6 教學(xué)參考資料豐富、齊全,能反映本課程發(fā)展現(xiàn)狀;課程有完整的教學(xué)工作總結(jié),教師有教學(xué)日歷和教案。

2.4教學(xué)設(shè)備和手段:A級,6分/6 使用多媒體、板書講解和現(xiàn)場教學(xué)等手段;與實驗室共同開發(fā)研制有相應(yīng)的實驗教學(xué)設(shè)備,且符合本校學(xué)生情況,使用效果好,完全能滿足正常的教學(xué)需要。3 考核:15分/17 3.1考試說明:A級,3分/3 在教學(xué)大綱的指導(dǎo)下,能按要求進行命題考試工作,命題質(zhì)量高,考分分布合理。3.2題庫(卷庫)建設(shè):B級,4分/5 有與教材配套使用的高質(zhì)量的試題庫,試題庫完全符合教學(xué)要求。3.3命題與評分:A級,4分/4 考試命題形式多樣,有外校試題、教研室組織命題、試題庫組題等,全部為考教分離;有評分標(biāo)準(zhǔn),流水閱卷,有效控制了評分誤差。3.4試卷分析:B級,3分/5 試題內(nèi)容體現(xiàn)教學(xué)大綱的基本要求,難度適中,有一定的可信度和區(qū)分度;成績分布基本合理。4 教學(xué)改革:分/13 4.1教改方案:A級,4分/5 在切實可行的教改計劃,且能運用在教學(xué)過程中,有一定的總結(jié)。4.2教改效果:A級,7分/8 有專業(yè)教改項目的實施,完成教改項目7項,教改效果比較顯著,獲校教學(xué)成果獎二等獎3項。5 教學(xué)效果:21分/25 5.1講課質(zhì)量:A級,9分/10 根據(jù)師生對講課質(zhì)量的綜合評價,課程組總體講課水平較高。5.2課外指導(dǎo):A級,5分/6 對學(xué)生課外學(xué)習(xí)有明確具體的要求,并認真落實、檢查;堅持課外輔導(dǎo)、答疑,效果較好。

5.3教學(xué)獲獎情況:A級,4分/4近幾年獲院級以上教學(xué)成果獎、講課大賽獎、教案評比獎的人數(shù)占課題組人數(shù)的70%;有畢業(yè)生調(diào)查信息表,畢業(yè)生反映本課程教學(xué)效果優(yōu)良。

5.4學(xué)習(xí)質(zhì)量:B級,3分/5 在嚴格組織考試、評分的情況下,學(xué)生考試成績真實,客觀反映了學(xué)生學(xué)習(xí)的現(xiàn)狀;學(xué)生基本知識掌握較扎實,但綜合解題能力一般。6 特色指標(biāo):A級,16分/20(1)兼顧教學(xué)的典型性和技術(shù)先進性

教學(xué)內(nèi)容的典型性有利于學(xué)生理解相關(guān)基礎(chǔ)知識,掌握基本原理和方法,觸類旁通。隨著單片機應(yīng)用技術(shù)日異月新的發(fā)展,在未來的實際工作中又會廣泛接觸到新技術(shù)、新器件。在理論教學(xué)和實踐充分考慮了典型性問題,同時在每個實驗的實現(xiàn)方案中又提示學(xué)生在典型性問題的基礎(chǔ)上采用一些新器件、新方法自行設(shè)計,讓學(xué)生接觸一些先進性技術(shù)、方法。

(2)基礎(chǔ)訓(xùn)練與實際應(yīng)用相結(jié)合

在注重單片機原理、實用接口技術(shù)的基礎(chǔ)上、還突出教學(xué)內(nèi)容的實踐性和實用性。大多數(shù)實驗內(nèi)容都取材于生產(chǎn)和科研實際。綜合應(yīng)用實驗集中鍛煉學(xué)生了解實際系統(tǒng)要求,設(shè)計應(yīng)用系統(tǒng)的能力。有助于開拓視野,強化工程觀念,培養(yǎng)創(chuàng)新能力和協(xié)作精神,提高綜合素質(zhì)。

(3)注重綜合工程實踐能力和創(chuàng)新設(shè)計能力的培養(yǎng)

大多數(shù)實驗內(nèi)容都取材于生產(chǎn)和科研實際,使學(xué)生所學(xué)就能所用。

每一個實驗項目的實驗過程都突出一個單片機工程應(yīng)用系統(tǒng)開發(fā)設(shè)計的各個關(guān)鍵技術(shù)環(huán)節(jié),尤其突出調(diào)試方法和手段。每一個實驗項目中都設(shè)置了若干問題,讓學(xué)生充分發(fā)揮主觀能動力和創(chuàng)新思維能力進行調(diào)試。每一個實驗項目除給出參考實驗方案外,還提示采用不同的方案、不同的器件、不同的方法自行設(shè)計、調(diào)試,給學(xué)生留下創(chuàng)新發(fā)揮的空間。

電氣工程系

《單片機原理及應(yīng)用》課程組

2010.3

第四篇:單片機原理及應(yīng)用課程設(shè)計

智能電子鐘(LCD顯示)

1、設(shè)計內(nèi)容及要求...............................................................................................2 1.1、設(shè)計內(nèi)容..............................................................................................2 1.2、設(shè)計要求..............................................................................................2 1.3、撰寫設(shè)計報告......................................................................................2

2、總體方案設(shè)計...................................................................................................2 2.1、方案圖................................................................................................2 2.2、面板布置圖.........................................................................................2 2.3、方案討論.............................................................................................3 2.4、明晰任務(wù).............................................................................................4

3、電路原理圖......................................................................................................4

4、程序框圖.........................................................................................................5 4.1、顯示子程序流程圖............................................................................5 4.2、實時時鐘芯片 1302 讀/寫數(shù)據(jù)流程圖............................................6

5、編程序................................................................................................................6

6、調(diào)試....................................................................................................................6 6.1、軟件調(diào)試.............................................................................................6 6.2、仿真調(diào)試..............................................................................................7

7、自我感想............................................................................................................7

8、參考書目............................................................................................................8 附錄:C 語言編程源程序.......................................................................................8 1.設(shè)計內(nèi)容及要求 1.1、設(shè)計內(nèi)容:

以AT89C51 單片機為核心,制作一個 LCD 顯示的智能電子鐘。1.2、設(shè)計要求:

(1)計時:秒、分、時、天、周、月、年。(2)閏年自動判別。

(3)五路定時輸出,可任意關(guān)斷(最大可到16路)。(4)時間、月、日交替顯示。(5)自定任意時刻自動開/關(guān)屏

(6)計時精度:誤差≤1秒/月(具有微調(diào)設(shè)置)

(7)鍵盤采用動態(tài)掃描方式查詢。所有的查詢、設(shè)置功能均由功能鍵K1、K2完成 1.3、撰寫設(shè)計報告

單片機課程設(shè)計是以課題或項目設(shè)計方式開展的一門課程,具有較強的綜合性、實踐性,是工科、工程類院校或職業(yè)類院校電類專業(yè)在校生的必修課,是將單片機原理與應(yīng)用課程的理論知識轉(zhuǎn)變?yōu)閼?yīng)用技術(shù)的重要教學(xué)環(huán)節(jié)。這一環(huán)節(jié)不但能加深對單片機原理的理解,而且還能培養(yǎng)學(xué)生的實踐動手能力,開發(fā)學(xué)生的分析、解決問題的能力。單片機課程設(shè)計環(huán)節(jié)的訓(xùn)練能夠讓學(xué)生知道單片機工程項目的制作過程,使學(xué)生盡早了解單片機系統(tǒng)的開發(fā)過程。

2.總體方案設(shè)計 2.1、方案圖

2.2、面板布置圖

2.3、方案討論

方案一:采用實時時鐘芯片

實時時鐘芯片具備年、月、日、時、分、秒計時功能和多點計時功能,計時數(shù)據(jù)的更新每秒自動進行一次,不需程序干預(yù)。計算機可通過中斷或查詢方式讀取計時數(shù)據(jù)進行顯示,因此計時功能的實現(xiàn)無需占用 CPU 的時間,程序簡單。此外,實時時鐘芯片多數(shù)帶有鋰電池做后備電源,具備永不停止的計時功能;具有可編程方波輸出功能,可用做實時測控系統(tǒng)的采樣信號等;有的實時時鐘芯片內(nèi)部還帶有非易失性 RAM,可用來存放需長期保存但有時也需變更的數(shù)據(jù),由于功能完善,精度高,軟件程序設(shè)計相對簡單,且計時不占用 CPU 時間,因此,在工業(yè)實時測控系統(tǒng)中多采用這一類專用芯片來實現(xiàn)實時時鐘功能。

方案二:軟件控制

利用單片機內(nèi)部的定時/計數(shù)器進行中斷定時,配合軟件延時實現(xiàn)時、分、秒的計時及秒表計時。該方案節(jié)省硬件成本,且能使設(shè)計者對單片機的指令系統(tǒng)能有更深入的了解,從而掌握單片機應(yīng)用技術(shù) MCS-51 匯編語言程序設(shè)計方法,因此,本系統(tǒng)設(shè)計采用此種軟件控制方法來實現(xiàn)計時。而由于 Atmel 公司 的AT89C51 是一種自帶 4KB Flash 存儲器的低電壓、高性能的 CMOS 8 位微處理器。該器件采用 Atmel 高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn) 的MCS-51 指令集和輸出引腳相兼容。AT89C51 將多功能 8 位 CPU 和閃存集成在單個芯片中,是一種高效的微控制器,使用也更方便,壽命更長,可以反復(fù)擦除 1000 次。形成了功能強大、使用靈活和具有較高性能價格比的微控制器。它的功能強大而且也比較容易購買,故本設(shè)計中所選的單片機為 AT89C51 單片機。2.4、明晰任務(wù)

采用 AT89C51 單片機作為系統(tǒng)的控制核心。時鐘數(shù)據(jù)通過市場上流行的時鐘芯片 DS1302 來獲取。DS1302 是 DALLAS 公司推出的涓流充電時鐘芯片,內(nèi)含一個實時時鐘/日歷和 31 字節(jié)靜態(tài) RAM,可以通過串行接口與計算機進行通信,使得管腳數(shù)量減少。實時時鐘/日歷電路能夠計算 2100 年之前的秒、分、時、日、星期、月、年的,具有閏年自動判斷調(diào)整的能力。定時電路能夠?qū)崿F(xiàn)自定任意時刻自動開/關(guān)屏,采用 LCD LM016L 顯示年、月、周、天、時、分、秒。通過按鍵開關(guān)實現(xiàn)微調(diào),確保計時精度:誤差≤1 秒/月。DS1302 時鐘芯片的主要功能特性:

(1)能計算 2100 年之前的年、月、日、星期、時、分、秒的信息;每月的天數(shù)

和閏年的天數(shù)可自動調(diào)整;時鐘可設(shè)置為 24 或 12 小時格式。(2)31B 的 8 位暫存數(shù)據(jù)存儲 RAM。(3)串行 I/O 口方式使得引腳數(shù)量最少。

(4)DS1302 與單片機之間能簡單地采用同步串行的方式進行通信,僅需 3 根線。

(5)寬范圍工作電壓 2.0-5.5V。

(6)工作電流為 2.0A 時,小于 300nA。

(7)功耗很低,保持數(shù)據(jù)和時鐘信息時功率小于 1mW。

3.電路原理圖

4.程序框圖

4.1、顯示子程序流程圖

4.2、實時時鐘芯片 1302 讀/寫數(shù)據(jù)流程圖

5.編程序 源程序見附錄部分 6.調(diào)試 6.1、軟件調(diào)試

目前設(shè)計過程中容易造成元件和儀器儀表的損壞,而借助 Keil 和 Proteus進行單片機系統(tǒng)的開發(fā),可以節(jié)省設(shè)計成本,提高設(shè)計速度。Keil 軟件包是一個功能強大的開發(fā)平臺,它包括項目管理器、CX51 編譯器、AX51 宏匯編器、BL51/LX51 連接定位器、RTX51 實時操作系統(tǒng)、Simulator 軟件模擬器及 Monitor51 硬件目標(biāo)調(diào)試器。它是一種集成化程度高的文件管理編譯環(huán)境,主要功能為編譯 C 語言源程序,匯編程序或混合語言源程序,連接和定位目標(biāo)文件和庫,創(chuàng)建 HEX 文件,調(diào)試目標(biāo)程序等。Keil 是目前最好的 51 單片機開

發(fā)工具之一。Keil 支持軟件模擬仿真(Simulator)和用戶目標(biāo)調(diào)試(Monitor51)兩種工作模式。前者不需要任何單片機硬件即可完成用戶程序仿真、調(diào)試,后者利用硬件目標(biāo)板中的監(jiān)控程序可以直接調(diào)試目標(biāo)硬件系統(tǒng)。Proteus 是一個完整的嵌入式系統(tǒng)軟件、硬件設(shè)計仿真平臺,它包括原理圖輸入系統(tǒng) ISIS、帶擴展的 Prospice 混合模型仿真器、動態(tài)元件庫、高級圖形分析模塊和處理器虛擬系統(tǒng)仿真模型 VSM。ISIS 是 Proteus 系統(tǒng)的中心,具有超強的控制原理設(shè)計環(huán)境。ProteusVSM 最重要的特點是能把微處理器軟件作用在處理器上,并和該處理器的任何模擬和數(shù)字元件協(xié)同仿真,仿真執(zhí)行目標(biāo)碼就像在真正的單片機系統(tǒng)上運行一樣,VSM CPU 模型能完整仿真 I/O 接口、中斷、定時器、通用外部設(shè)備口及其他與 CPU 有關(guān)的外部設(shè)備,甚至能仿真多個處理器。6.2、仿真調(diào)試 Proteus 仿真

7.自我感想

經(jīng)歷過這么多天不間斷的課程設(shè)計,我們有挺多感觸的,從最基本上說我們看到了,也意識到了自己的不足,對于不斷克服的各種阻礙也讓我們體會到了課程設(shè)計的意義所在。對于只接觸課本只動筆桿的我們,面臨實際的設(shè)計尺寸,讓我們很是尷尬,都說理論聯(lián)系實際,真正到聯(lián)系的時候才發(fā)現(xiàn)挺困難的,不過正是理論知識的各種補充才讓我們能最終完成任務(wù),然后深深地體會到理論對現(xiàn)實的指導(dǎo)作用。我們現(xiàn)在最缺乏的就是實際工作經(jīng)驗,而理論聯(lián)系實踐并不像我們想象的那么簡單,他需要堅實的理論基礎(chǔ)和實際工作經(jīng)驗。堅實的理論基礎(chǔ)決定了我必須堅持學(xué)習(xí)新的知識新的理論,完善了自己的知識結(jié)構(gòu),才能在以后的實際中輕松面對,才能設(shè)計出更好的更有益于人們生活與工作的機械,才能跟上時代的步伐,不被淘汰。在這個一邊忙著復(fù)習(xí)忙著考試又要準(zhǔn)備課程設(shè)計的日子里,真真正正的體會到了時間的寶貴,有點像高中忙忙碌碌的生活,不過能按時完成課程設(shè)計對我們來說也是一個莫大的安慰。嚴謹和細心是做機械設(shè)計的必要態(tài)度,要想做好一件事,就必須一絲不茍、態(tài)度認真。俗話說:“失之毫厘,謬之千里。”在機械設(shè)計上尤其應(yīng)該注意。在以后的工作中,你的很小的一個疏忽將會造成一個公司很大的損失,甚至給用戶帶去生命危險,而自己也會為自己的不負責(zé)任行為付出代價。再者就是設(shè)計中要嚴謹和細心,對于機械是不能出差錯的,任何的微小誤差都可能產(chǎn)生不可預(yù)計的后果,當(dāng)然對于我們來說就是設(shè)計中要走一些彎路,而且在這個嚴重缺少時間又惦記回家問題的我們來說也是一個很嚴重的后果。不過,困難雖是難免的,但我們有信心就能并且已經(jīng)戰(zhàn)勝了困難,完成了這個無比揪心的課程設(shè)計。因為時間等各種關(guān)系設(shè)計中難免有些不足還請老師助教給予批評和幫助。

8.參考文獻

《MCS-51 系列單片機原理及應(yīng)用》 孫涵芳 主編 《新概念 51 單片機 C 語言教程》 郭天祥 主編 《51 單片機課程設(shè)計》 周向紅 主編 《單片機原理及其應(yīng)用教程》 張元良 主編 附錄:C 語言編程源程序

#include #include //--------#define uint unsigned int #define uchar unsigned char //--------/*ucharcode table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf 8, 0x80,0x98,0x88,0x83,0xc6,0xa1,0x86,0x8e};// 共 陽極數(shù)碼管代碼 */ ucharcode xingqi[8]={0x00,0x07,0x01,0x02,0x03,0x04,0x05, 0x06};//星期顯示代碼 uchar miao,shi,fen,date,month,day,year,year10,set,mun,set_shi,set_fen,time_ flag;// 全 局 定 義

uint year_data,t;//-----sbit SCLK=P3^5;//DS1302 通訊線定義 sbit DIO=P3^6;sbit RST=P3^7;sbit speak=P0^0;sbit DS=P2^0;//595 通訊線定義 sbit SH_CP=P2^1;sbit ST_CP1=P2^2;sbit ST_CP2=P2^3;sbit ST_CP3=P2^4;sbit ST_CP4=P2^5;sbit ST_CP5=P2^6;sbit ST_CP6=P2^7;sbit ST_CP7=P3^0;sbit ST_CP8=P3^1;sbit OE1=P1^0;sbit OE2=P1^1;sbit OE3=P1^2;sbit OE4=P1^3;sbit OE5=P1^4;sbit OE6=P1^5;sbit OE7=P1^6;sbit OE8=P1^7;sbit K1=P3^2;//按鍵接口定義 sbit K2=P3^3;sbit K3=P3^4;sbit K4=P0^1;sbit K5=P0^2;//-----void write_595(uchar temp)//寫 74HC595 一個字節(jié) { uchar temp_595,i;temp_595=temp;for(i=0;i<8;i++)

{

SH_CP=0;

_nop_();_nop_();_nop_();if(temp_595&0x80){ DS=1;} else { DS=0;} _nop_();_nop_();_nop_();SH_CP=1;temp_595<<=1;} } //--------------void delay(uint z)//Nms 延時 { uint x,y;for(x=z;x>0;x--)for(y=112;y>0;y--);} //-------------void delaynus(uint z)//ums 延時 { uint x,y;for(x=z;x>0;x--)for(y=10;y>0;y--);} //---------------void write(uchar date)//寫入 DS1302 一個字節(jié) { uchar temp,i;RST=1;SCLK=0;temp=date;for(i=0;i<8;i++){ SCLK=0;if(temp&0x01)DIO=1;else DIO=0;SCLK=1;temp>>=1;} } //-----uchar read()//讀出 DS1302 一個字節(jié) { uchar a,temp;RST=1;for(a=8;a>0;a--){ temp>>=1;SCLK=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();SCLK=0;if(DIO){ temp=temp|0x80;} else { temp=temp|0x00;} } return(temp);} //---void write_1302(uchar add,uchar dat)//寫 DS1302 數(shù)據(jù) { RST=0;SCLK=0;RST=1;write(add);write(dat);SCLK=1;RST=0;} //----------uchar read_1302(uchar add)// 讀 DS1302 數(shù)據(jù) { uchar temp;RST=0;SCLK=0;RST=1;write(add);temp=read();SCLK=1;RST=0;return(temp);} //------------void display()//顯示子程序 { miao=read_1302(0x81);//讀秒 fen=read_1302(0x83);//讀分

shi=read_1302(0x85)&0x3f;//讀時 date=read_1302(0x87);//讀日 month=read_1302(0x89);//讀月 year=read_1302(0x8d);//讀年 day=read_1302(0x8B);//讀星期 write_595(miao);//顯示秒 ST_CP1=0;ST_CP1=1;ST_CP1=0;delaynus(10);write_595(fen);//顯示分 ST_CP2=0;ST_CP2=1;ST_CP2=0;delaynus(10);write_595(shi);//顯示時 ST_CP3=0;ST_CP3=1;ST_CP3=0;delaynus(10);write_595(date);//顯示日 ST_CP4=0;ST_CP4=1;ST_CP4=0;delaynus(10);write_595(month);//顯示月 讀 ST_CP5=0;ST_CP5=1;ST_CP5=0;delaynus(10);write_595(year);//顯示年 ST_CP6=0;ST_CP6=1;ST_CP6=0;delaynus(10);write_595(xingqi[day]);//顯示星期 ST_CP7=0;ST_CP7=1;ST_CP7=0;delaynus(10);} //----------void ds1302_init()//1302 初始化 { RST=0;SCLK=0;/* write_1302(0x80,0x00);//設(shè)置初始值 SEC write_1302(0x82,0x00);//設(shè)置初始值 MIN write_1302(0x84,0x00);//設(shè)置初始值 HR write_1302(0x86,0x00);//設(shè)置初始值 DATE write_1302(0x88,0x00);//設(shè)置初始值 MONTH write_1302(0x8A,0x00);//設(shè)置初始值 DAY */ write_1302(0x8C,0x10);//設(shè)置初始值 YEAR } //--------------void PORT_INIT()//端口初始化 { P0=0XFE;P1=0X00;P2=0X00;P3=0XFC;} void time_init()//定時器初始化 { TMOD=0x11;//設(shè)置定時 器 01 都為工作方式 1 TH0=(65536-50000)/256;//裝入初值 TL0=(65536-50000)%256;TH1=(65536-10000)/256;//裝入初值 TL1=(65536-10000)%256;PT0=1;//T0 定時器優(yōu)先級最高 EA=1;//開總中斷

ET0=1;//開定時器 0 中斷 ET1=1;//開定時器 1 中斷 TR0=1;//啟動定時器 0 TR1=1;// 啟動定時器 1 } //--------------void main(void)//主程序 { PORT_INIT();ds1302_init();time_init();year=read_1302(0x8d);//讀年數(shù)據(jù) year_data=0x2000|year;write_595(year_data>>8);//顯示 2010 年的 20 字樣 ST_CP8=0;ST_CP8=1;ST_CP8=0;set_shi=0x09;//鬧鐘初始值設(shè)定 set_fen=0x39;time_flag=0;//標(biāo)志位 set=0;while(1){ switch(set){ case 0: //設(shè)置秒 { display();// 顯 示 子 程 序

if((shi==set_shi)&&(fen==set_fen)&&(time_flag==0))小時和分鐘 { speak=~speak;if((K2==0)&&(time_flag==0))//按鍵 K2 停 止鬧鐘響 { P0&=0XFE;time_flag=1;} delay(10);} } break;} if(fen==set_fen+1)// 當(dāng) 不 按 下 鬧 鐘 停止按鍵,一分鐘后自動停止鬧 鐘 { P0&=0XFE;time_flag=0;} } } //--------void time0()interrupt 1 // 定時 器 0 中斷 { TR0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;mun++;if(mun==15){ mun=0;switch(set){ case 1: //設(shè)置秒閃爍 {OE1=1;delay(300);OE1=0;} break;case 2: //設(shè)置分閃爍 { OE2=1;delay(300);OE2=0;} break;case 3: //設(shè)置時閃爍 { OE3=1;delay(300);OE3=0;} break;case 4: //設(shè)置日閃爍 { OE4=1;delay(300);OE4=0;} break;case 5: //設(shè)置月閃爍 { OE5=1;delay(300);OE5=0;} break;case 6: //設(shè)置年閃爍 { OE6=1;OE8=1;delay(300);OE6=0;OE8=0;} break;case 7: //設(shè)置星期閃爍 { OE7=1;delay(200);OE7=0;} break;case 8: //設(shè)置鬧鐘閃爍 { OE2=1;OE3=1;delay(200);OE2=0;OE3=0;} break;} } TR0=1;} //-----------void time1()interrupt 3 // 定時器 1 中斷 { TR1=0;//先關(guān)定時器 TH1=(65536-20000)/256;TL1=(65536-20000)%256;//-if(K1==0){ delay(10);if(K1==0){ set++;if(set==9){ set=0;write_1302(0x80,miao);//設(shè)置初始值 SEC write_1302(0x82,fen);//設(shè)置初始值 MIN write_1302(0x84,shi);//設(shè)置初始值 HR write_1302(0x86,date);//設(shè)置初始值 DATE write_1302(0x88,month);// 設(shè)置初始值 MONTH write_1302(0x8A,day);//設(shè)置初始值 DAY write_1302(0x8C,year_data);//設(shè)置初始值 YEAR } t=50000;while((!K1)&&t){ t--;} } } //-------if(K2==0){ delay(10);if(K2==0){ switch(set){ case 1: { miao++;if((miao&0x0f)>0x09){ miao+=0x10;miao&=0xf0;} if(miao==0x60){ miao=0x00;} write_595(miao);ST_CP1=0;ST_CP1=1;ST_CP1=0;} break;case 2: { fen++;if((fen&0x0f)>0x09){ fen+=0x10;fen&=0xf0;} if(fen==0x60){ fen=0x00;} ST_CP2=0;ST_CP2=1;ST_CP2=0;} break;case 3: { if((read_1302(0x85)&0x80)==0x00){ shi++;if((shi&0x0f)>0x09){ shi+=0x10;shi&=0xf0;} if(shi==0x24)//24 小時制 { shi=0x00;} } else { shi=(shi|0x80)+1;if((shi&0x0f)>0x09){ shi+=0x10;shi&=0xf0;} if(shi==0x12)//12 小時制 { shi=0X80;} } write_595(shi);//顯示時 ST_CP3=0;ST_CP3=1;ST_CP3=0;} break;case 4: { date++;if((date&0x0f)>0x09){ date+=0x10;date&=0xf0;} if((date==0x32)&&((month==0x01)||(month==0x03)||(month==0x05)||(month ==0x07)||(month==0x08)||(month==0x10)||(month==0x12))){ date=0x01;} else if((date==0x31)&&((month==0x04)||(month==0x06)||(month==0x09)||(month ==0x11))){ date=0x01;} else if((date==0x29)&&(month==0x02)&&((year_data|read_1302(0x8d))%100!=0)& &((year_data|read_1302(0x8d))%400!=0)){ date=0x01;} else if((date==0x30)&&(month==0x02)&&((year_data|read_1302(0x8d))%100==0)& &((year_data|read_1302(0x8d))%400==0)){ date=0x01;} write_595(date);ST_CP4=0;ST_CP4=1;ST_CP4=0;} break;case 5: { month++;if((month&0x0f)>0x09){ month+=0x10;month&=0xf0;} if(month==0x13){ month=0x01;} write_595(month);ST_CP5=0;ST_CP5=1;ST_CP5=0;} break;case 6: { year_data++;if((year_data&0x000f)==0x0a){ year_data+=0x0010;year_data&=0xfff0;} if((year_data&0x00ff)==0xa0){ year_data+=0x0100;//向前進 1 year_data&=0xff00;//后面尾數(shù)歸 0 } write_595(year_data);ST_CP6=0;ST_CP6=1;ST_CP6=0;write_595(year_data>>8);ST_CP8=0;ST_CP8=1;ST_CP8=0;} break;case 7: { day++;if((day&0x0f)==0x08){ day=0x01;} write_595(xingqi[day]);ST_CP7=0;ST_CP7=1;ST_CP7=0;} break;} t=50000;while((!K2)&&t){ t--;} } } //-------------------------if(K3==0){ delay(10);if(K3==0){ switch(set){ case 1: { miao--;if((miao&0x0f)==0x0F){ miao&=0xf9;//減到 0 后,再減一次就歸 0, } if(miao==0xF9)//當(dāng)全部減到 00 時,再 減一次就為 59 { miao=0x59;} write_595(miao);ST_CP1=0;ST_CP1=1;ST_CP1=0;} break;case 2: { fen--;if((fen&0x0f)==0x0F){ fen&=0xf9;} if(fen==0xF9){ fen=0x59;} write_595(fen);ST_CP2=0;ST_CP2=1;ST_CP2=0;} break;case 3: { if((read_1302(0x85)&0x80)==0x00){ shi--;if((shi&0x0f)==0x0F){ shi&=0xf9;} if(shi==0xF9)//24 小時制 { shi=0x23;} } else { shi=(shi|0x80)-1;if((shi&0x0f)==0x0F){ shi&=0xf9;} ST_CP4=0;} break;case 5: { month--;if((month&0x0f)==0x0F){ month&=0xf9;} if(month==0x00){ month=0x12;} write_595(month);ST_CP5=0;ST_CP5=1;ST_CP5=0;} break;case 6: { year_data--;if((year_data&0x000f)==0x0F){ year_data&=0xfff9;} if((year_data&0x00f0)==0xF0){ year_data&=0xf999;} write_595(year_data);ST_CP6=0;ST_CP6=1;ST_CP6=0;write_595(year_data>>8);ST_CP8=0;ST_CP8=1;ST_CP8=0;} break;case 7: { day--;if((day&0x0f)==0x00){ day=0x07;} write_595(xingqi[day]);ST_CP7=0;ST_CP7=1;ST_CP7=0;} break;} t=50000;while((!K3)&&t)//松手檢測 { t--;} } } //---switch(set){ case 8: { if(K4==0){ delay(10);if(K4==0){ if((read_1302(0x85)&0x80)==0x00){ set_shi++;if((set_shi&0x0f)>0x09){ set_shi+=0x10;set_shi&=0xf0;} if(set_shi==0x24)//24 小時制 { set_shi=0x00;} } else { set_shi=(set_shi|0x80)+1;if((set_shi&0x0f)>0x09){ set_shi+=0x10;set_shi&=0xf0;} if(set_shi==0x12)//12 小時制 { set_shi=0X80;} write_595(set_shi);// 顯示鬧 鐘的時 ST_CP3=0;ST_CP3=1;ST_CP3=0;t=50000;while((!K4)&&t){ t--;} } } //----if(K5==0){ delay(10);if(K5==0){ set_fen++;if((set_fen&0x0f)>0x09){ set_fen+=0x10;set_fen&=0xf0;}

if(set_fen==0x60)

{

set_fen=0x00;

} write_595(set_fen);ST_CP2=0;ST_CP2=1;ST_CP2=0;t=50000;while((!K5)&&t){ t--;} } set_shi+=0x10;set_shi&=0xf0;} if(set_shi==0x12)//12 小時制 { set_shi=0X80;} write_595(set_shi);// 顯示鬧 鐘的時 ST_CP3=0;ST_CP3=1;ST_CP3=0;t=50000;while((!K4)&&t){ t--;} } } //----if(K5==0){ delay(10);if(K5==0){ set_fen++;if((set_fen&0x0f)>0x09){ set_fen+=0x10;set_fen&=0xf0;}

if(set_fen==0x60)

{

set_fen=0x00;

} write_595(set_fen);ST_CP2=0;ST_CP2=1;ST_CP2=0;t=50000;while((!K5)&&t){ t--;} } } } } //------------------------if(((K4==0)||(K5==0))&&(set==0)){ delay(10);if(((K4==0)||(K5==0))&&(set==0)){ write_595(set_shi);//顯示鬧鐘的時 ST_CP3=0;ST_CP3=1;ST_CP3=0;write_595(set_fen);ST_CP2=0;ST_CP2=1;ST_CP2=0;P1=0XF9;while((!K4)||(!K5));P1=0X00;} } //----------TR1=1;//退出時開定時器 } } //----------

第五篇:單片機原理與應(yīng)用課程實驗教案

《單片機原理與應(yīng)用》實驗教案

第一章 實驗安排

共8個實驗,要求8次上機完成。這8個實驗分別為: 實驗一 利用軟件仿真器調(diào)試算術(shù)運算程序 實驗二 INT0中斷實驗

實驗三 定時器/計數(shù)器定時實驗 實驗四 定時器/計數(shù)器計數(shù)實驗

實驗五 定時器/計數(shù)器T0擴展外部中斷源實驗 實驗六 串行口擴展實驗 實驗七 DAC0832數(shù)模轉(zhuǎn)換實驗 實驗八 8155接口芯片使用實驗

其中前六個實驗為驗證性實驗,第七個實驗為設(shè)計性實驗。最后一個為綜合性實驗。每個實驗3學(xué)時。

第二章 實驗須知

一、預(yù)習(xí)要求

1、實驗前認真閱讀實驗要求,明確實驗?zāi)康暮蛯嶒炄蝿?wù)。

2、擬訂實驗步驟,編好上機程序。

二、報告要求

共八個實驗,每個實驗完成后交實驗報告,寫在實驗報

告紙上,報告中應(yīng)包含以下內(nèi)容:

1、實驗名稱、實驗人姓名、學(xué)號、班級

2、實驗?zāi)康摹⑷蝿?wù)(內(nèi)容);

3、實驗步驟

記錄主要實驗過程。

4、實驗結(jié)果

(1)記錄實驗現(xiàn)象;

(2)要求寫出已調(diào)試通過的實驗程序清單(加適量注 釋)

第三章 實驗項目及內(nèi)容

實驗一 利用軟件仿真器調(diào)試算術(shù)運算程序 1.目的要求

(1)熟悉WAVE調(diào)試軟件的使用。(2)熟悉算術(shù)運算程序編程和調(diào)試的方法。2.實驗內(nèi)容

(1)有6個數(shù)據(jù)分別放在片內(nèi)RAM區(qū)50H~55H單元中,試求和,并將結(jié)果放在片內(nèi)RAM區(qū)03H(高位),04H(低位)單元中。

(2)編程將內(nèi)部RAM70H~7FH中的16個數(shù)據(jù)按從小到 大的順序重新排序。

3.主要儀器設(shè)備

PC機一臺。

4.程序清單(1)數(shù)據(jù)和.ASM ORG 0000H LJMP MAIN ORG 1000H MAIN:MOV R2,#06H MOV R3,#00H MOV R4,#00H MOV R0,#50H L1:MOV A,R4 ADD A,@R0 MOV R4,A INC R0 CLR A ADDC A,R3 MOV R3,A DJNZ R2,L1 END(2)數(shù)據(jù)排序.ASM ORG 0000H LJMP MAIN ORG 1000H MAIN:MOV R2,#70H MOV R3,#71H L2:ACALL L1 INC R2 INC R3 CJNE R3,#80H,L2 L3:SJMP L3 NOP L1:MOV A,R2 MOV R0,A MOV A,R3 MOV R1,A MOV A,@R0 L5:CLR C SUBB A,@R1 MOV A,@R0 JC L4 XCH A,@R1 MOV @R0,A L4:INC R1 CJNE R1,#80H,L5

RET END

實驗二 INT0中斷實驗(驗證性實驗

3學(xué)時,必做)

1.目的要求

(1)掌握MCS-51單片機中斷原理以及編程使用方法。(2)理解下降沿中斷和低電平中斷的區(qū)別。

2.實驗內(nèi)容

(1)編寫主程序,讀取開關(guān)SW1的狀態(tài),當(dāng)其閉合時初始化為下降沿中斷,反之,初始化為低電平中斷,且發(fā)光管滅;編寫中斷服務(wù)程序,使發(fā)光管閃爍5次,間隔250ms,即中斷服務(wù)程序的執(zhí)行時間為2.5秒。退出中斷程序時,使發(fā)光管滅。(2)用萬用表測量C點的電平,按下TR31秒鐘,然后松 開,觀察C點電平的變化。

3.實驗所用儀器

實驗板一塊、直流穩(wěn)壓電源、編程器一臺、萬用表一塊

4.程序清單(EXP7.ASM)ORG 0000H SJMP MAIN ORG 0003H LJMP INT0 MAIN:MOV SP,#60H mov p1,#0ffh NOP CLR P1.2 NOP NOP MOV C,P1.3 JC LOWER SETB IT0 SJMP CONT LOWER:CLR IT0 CONT:SETB EX0 SETB EA HERE:SJMP HERE INT0:MOV R0,#5 LP:CPL P1.2 DLY:MOV 30H,#5 DEL0:MOV R7,#100 DEL1:MOV R6,#125

DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 DJNZ 30H,DEL0 DJNZ R0,LP CLR P1.2 RETI END

實驗三 定時器/計數(shù)器定時實驗(驗證性實驗

3學(xué)時,必做)

1. 目的和要求

(1)掌握MCS-51單片機定時器/計數(shù)器定時功能的使用方法。

(2)了解定時和計數(shù)的本質(zhì)區(qū)別和聯(lián)系。

2. 實驗內(nèi)容

編寫程序,初始化定時器/計數(shù)器T0工作在定時方式1,使P1.2輸出周期為10秒的方波,即使發(fā)光管亮3秒,滅7秒。

3.實驗所用儀器

實驗板一塊、直流穩(wěn)壓電源、編程器一臺、萬用表一塊

4. 程序清單(EXP9.ASM)ORG 0000H LJMP MAIN ORG 000BH LJMP INTT0 MAIN: MOV SP,#60H CLR P1.2 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 SETB ET0 SETB EA LP: SETB P1.2 MOV A,#30 MOV 30H,#00 DL1:CJNE A,30H,DL1 CLR P1.2

MOV A,#70 MOV 30H,#00 DL2:CJNE A,30H,DL2 SJMP LP INTT0: MOV TL0,#0B0H MOV TH0,#3CH INC 30H RETI END 實驗四 定時器/計數(shù)器計數(shù)實驗(驗證性實驗

3學(xué)時,必做)

1. 實驗?zāi)康暮鸵?/p>

(1)掌握MCS-51單片機定時器/計數(shù)器計數(shù)功能的使用方法。

(2)了解定時和計數(shù)的本質(zhì)區(qū)別和聯(lián)系。

2. 實驗內(nèi)容

編寫程序,通過8個發(fā)光二極管來顯示所計脈沖個數(shù)。

3.實驗所用儀器

實驗板一塊、直流穩(wěn)壓電源、編程器一臺、萬用表一塊

4.程序清單(EXP10.ASM)

U33CLK EQU 0FF90H ORG 0000H MAIN:MOV SP,#60H MOV TMOD,#05H SETB TR0 MOV DPTR,#U33CLK RDTIMER: MOV A,TH0 MOV R0,TL0 CJNE A,TH0,RDTIMER MOV R1,A MOV A,R0 CPL A MOVX @DPTR,A SJMP RDTIMEr END

實驗五 定時器/計數(shù)器T0擴展外部中斷源實驗

(驗證性實驗

3學(xué)時,必做)

1. 實驗?zāi)康暮鸵?/p>

掌握利用定時器/計數(shù)器擴展外部中斷源使用的方法。

2. 實驗內(nèi)容

編寫主程序,使發(fā)光管滅;編寫中斷服務(wù)程序,當(dāng)執(zhí)行中斷服務(wù)程序時,發(fā)光管閃爍5次,間隔500ms,主程序運行后通過按TR3按鈕觸發(fā)中斷。

3.實驗所用儀器

實驗板一塊、直流穩(wěn)壓電源、編程器一臺、萬用表一塊

3. 程序清單(EXP11.ASM)ORG 0000H LJMP MAIN ORG 000BH LJMP INTT0 MAIN:MOV SP,#60H MOV TMOD,#05H MOV TH0,#0FFH MOV TL0,#0FFH SETB ET0

SETB EA SETB TR0 CLR P1.2 HERE:SJMP HERE INTT0:MOV R0,#10 LP:CPL P1.2 DLY:MOV 30H,#10 DEL0:MOV R7,#100 DEL1:MOV R6,#125 DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 DJNZ 30H,DEL0 DJNZ R0,LP CLR P1.2 MOV TH0,#0FFH MOV TL0,#0FFH RETI END

實驗六 串行口擴展實驗(驗證性實驗

3學(xué)時,必做)

1.實驗?zāi)康暮鸵?/p>

(1)掌握MCS-51單片機串行口方式0的工作原理。(2)了解方式0的應(yīng)用,即通過串行口擴展輸出口,進行靜態(tài)顯示的方法。

(3)掌握串行移位寄存器芯片74LS164的工作原理。

2.實驗內(nèi)容

編制程序使數(shù)碼管循環(huán)依次顯示00到99,每秒加1。

3.實驗所用儀器

實驗板一塊、直流穩(wěn)壓電源、編程器一臺、萬用表一塊

4.程序清單(12.ASM)

ORG 0000H LJMP MAIN ORG 000BH LJMP intt0 MAIN:MOV SP,#60H MOV TMOD,#01H SETB ET0 SETB EA MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 LLP:MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 MOV 33H,#0 LP:MOV R0,#32H MOV R7,#2 ACALL BINBCD MOV DPTR,#TAB DSPLY: MOV A,@R0 MOVC A,@A+DPTR;cpl a MOV SBUF,A DSP1:JNB TI,DSP1 CLR TI INC R0 DJNZ R7,DSPLY LP1:MOV A,30H CJNE A,#10,LP1 MOV 30H,#00H INC 31H MOV A,31H

CJNE A,#100,LP SJMP LLP intt0:MOV TL0,#0B0H MOV TH0,#3CH INC 30H RETI;tab:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h BINBCD:MOV A,31H MOV B,#10 DIV AB MOV 33H,A MOV A,B MOV 32H,A RET END

實驗七 DAC0832數(shù)模轉(zhuǎn)換實驗(設(shè)計性實驗

3學(xué)時,必做)

1. 設(shè)計目的

(1)掌握DAC0832與MCS51單片機的接口方法。(2)掌握D/A轉(zhuǎn)換程序的設(shè)計方法。

2. 設(shè)計題與要求

認真復(fù)習(xí)所學(xué)習(xí)的DAC0832的工作方式,利用單緩沖

方式使0832輸出鋸齒波和三角波。并設(shè)計使運放LM741輸出0-5V和0--5V的波形。如果不用示波器,如何測試你所設(shè)計的電路和所編寫的程序是否正確。

3.實驗所用儀器

實驗板一塊、直流穩(wěn)壓電源、編程器一臺、萬用表一塊、示波器一臺。

4.設(shè)計原理

D/A轉(zhuǎn)換器的輸入為數(shù)字量,經(jīng)轉(zhuǎn)換后輸出為模擬量。

DAC0832為一個8位D/A轉(zhuǎn)換器,單電源供電,在+5~+15V范圍內(nèi)均可正常工作。MCS-51單片機與DAC0832的接口有3種連接方式,即直通方式、單緩沖方式及雙緩沖方式。所謂單緩沖方式就是使DAC0832的兩個輸入寄存器中有一個處于直通方式,而另一個處于受控的鎖存方式,當(dāng)然也可使兩個寄存器同時選通及鎖存。本實驗中采用該方式。要求WR1和WR2連接在一起接在89C51的WR端,CS和XFER連接在一起接在片選端,ILE接+5V。

0832可以產(chǎn)生很多波形,如:三角波、鋸齒波、梯形波等。5.設(shè)計內(nèi)容

編制程序使運放LM741輸出鋸齒波和三角波,具體步驟:斷開開關(guān)SW1,輸出鋸齒波;閉和開關(guān)SW1,輸出三角波。

6.程序清單(DAC0832.asm)CS0832 EQU 0FF9FH ORG 0000H MAIN:MOV P1,#0FFH NOP JNB P1.3,RWAVE MOV DPTR,#CS0832 MOV A,#00H LP:MOVX @DPTR,A NOP NOP INC A AJMP LP RWAVE:MOV DPTR,#CS0832 MOV A,#00H LP1:MOVX @DPTR,A NOP INC A CJNE A,#255,LP1 NOP LP3:MOVX @DPTR,A NOP

DEC A CJNE A,#00H,LP3 MOVX @DPTR,A NOP SJMP LP1 END

實驗8 8155接口芯片使用實驗(綜合性實驗

3學(xué)時,必做)

1.實驗?zāi)康暮鸵?/p>

(!)掌握MCS-51單片機系統(tǒng)I/O擴展方法。

(2)掌握并行接口芯片8155的性能以及編程使用方法。(3)掌握單片機系統(tǒng)動態(tài)LED顯示和鍵盤輸入程序的設(shè)計方法。

2.實驗內(nèi)容

編寫程序?qū)崿F(xiàn)下列功能:程序運行后數(shù)碼顯示管顯示HHMMSS(000000),即時分秒,按鍵調(diào)整其為正確的時間并繼續(xù)運行。

該實驗綜合性較強,建議學(xué)生分兩步走:第一步完成顯示,可以參考實驗六;第二步完成鍵盤掃描。

3.實驗所用儀器

實驗板一塊、直流穩(wěn)壓電源、編程器一臺、萬用表一塊

4.程序清單(EXP152.asm)CE8155 EQU 0FF80H CA8155 EQU 0FF81H CB8155 EQU 0FF82H CC8155 EQU 0FF83H HMS EQU 40H SECOND EQU 41H MINUTE EQU 42H HOUR EQU 43H ORG 0000H LJMP MAIN ORG 000BH LJMP INTT0 MAIN:MOV SP,#60H MOV A,#00000011B MOV DPTR,#CE8155 MOVX @DPTR,A MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA

SETB TR0 LP2:MOV HMS,#00H MOV SECOND,#00H MOV MINUTE,#00H MOV HOUR,#00H LP3:MOV R0,#30H MOV R7,#6 ACALL BINBCD MOV R2,#01H MOV A,R2 LOOP:MOV DPTR,#CA8155 MOVX @DPTR,A INC DPTR PUSH DPL PUSH DPH MOV DPTR,#TAB MOV A,@R0 MOVC A,@A+DPTR POP DPH POP DPL MOVX @DPTR,A ACALL DL2MS INC R0 MOV A,R2 JB ACC.5,LP1 RL A MOV R2,A AJMP LOOP lp1:acall kd1 AJMP LP3 INTT0:MOV TL0,#0B0H MOV TH0,#3CH INC HMS MOV A,HMS CJNE A,#0AH,PP MOV HMS,#00H INC SECOND MOV A,SECOND CJNE A,#60,PP MOV SECOND,#00H INC MINUTE MOV A,MINUTE CJNE A,#60,PP MOV MINUTE,#00H

INC HOUR MOV A,HOUR CJNE A,#24,PP MOV HOUR,#00H PP:RETI BINBCD:MOV A,HOUR MOV B,#10 DIV AB MOV 30H,A MOV 31H,B MOV A,MINUTE MOV B,#10 DIV AB MOV 32H,A MOV 33H,B MOV A,SECOND MOV B,#10 DIV AB MOV 34H,A MOV 35H,B RET tab:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH DL2MS:MOV R3,#5 DLT1:MOV R4,#125 DLT2:DJNZ R4,DLT2

DJNZ R3,DLT1

RET KD1:ACALL KS1 JNZ LK1 ACALL DL2MS AJMP QQ LK1:ACALL DL2MS ACALL DL2MS ACALL DL2MS ACALL DL2MS ACALL KS1 JZ QQ MOV R5,#0FEH MOV R4,#00H MOV DPTR,#CA8155 MOV A,R5 MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR JB ACC.0,LONE mm1:acall dl2ms acall dl2ms acall ks1 jnz mm1 INC HOUR MOV A,HOUR CJNE A,#24, LONE MOV HOUR,#00H LONE:MOV A,R5 RL A MOV R5,A MOV DPTR,#CA8155 MOV A,R5 MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR JB ACC.0,LONE1 mm2:acall dl2ms acall dl2ms acall ks1 jnz mm2 INC MINUTE MOV A,MINUTE CJNE A,#60,LONE1 MOV MINUTE,#00H LONE1: MOV A,R5 RL A MOV R5,A MOV DPTR,#CA8155 MOV A,R5 MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR JB ACC.0,QQ mm3:acall dl2ms acall dl2ms acall ks1 jnz mm3 INC SECOND MOV A,SECOND

CJNE A,#60,QQ MOV SECOND,#00H QQ:RET KS1:MOV DPTR,#CA8155 MOV A,#00H MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR CPL A ANL A,#03H RET END

四、考核辦法

每個實驗:預(yù)習(xí)10%、實驗操作60%、實驗報告30%。最后成績以每次實驗課程成績累加被實驗項目個數(shù)相除的辦法計算。

五、主要參考資料

1、《單片機接口技術(shù)開發(fā)實驗指導(dǎo)書》

北京科技大學(xué)C31實驗室

2、《8051實驗指導(dǎo)書》

西安唐都科教儀器公司

下載單片機原理及應(yīng)用教案-第5章word格式文檔
下載單片機原理及應(yīng)用教案-第5章.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    《單片機原理與應(yīng)用》實驗教案4

    實驗三基于單片機的交通燈設(shè)計 一、實驗?zāi)康模?通過本實驗使學(xué)生建立應(yīng)用電子產(chǎn)品系統(tǒng)開發(fā)思想,掌握可編程主控芯片產(chǎn)品、系統(tǒng)開發(fā)的開發(fā)原理、開發(fā)方法和開發(fā)過程。 二、實驗......

    《單片機原理及應(yīng)用》課程設(shè)計簡介

    《單片機原理及應(yīng)用》課程設(shè)計簡介 1、 課程編碼:130200960 2、 英文名稱:project work for 《the principle and application of single chip computer》 3、 學(xué)時/學(xué)分: 總學(xué)......

    《單片機原理及應(yīng)用》課程設(shè)計任務(wù)書(2014)

    《單片機原理及應(yīng)用》課程設(shè)計 任務(wù)書 一、 課程設(shè)計題目 見農(nóng)機111《單片機課程設(shè)計》題目分配表。 二、 課程設(shè)計的基本要求 1、根據(jù)給定的題目,在規(guī)定時間內(nèi)完成系統(tǒng)硬件......

    單片機原理及應(yīng)用課程設(shè)計教學(xué)大綱

    《單片機原理及應(yīng)用》課程設(shè)計教學(xué)大綱 課程編號:13033070 課程類別:必修課 適用專業(yè):電氣信息類 學(xué)時:10 教研室主任:姜志成大綱執(zhí)筆人:李春華 大綱審批人:付家才 一、課程設(shè)計的......

    《單片機原理及應(yīng)用》實驗報告(含五篇)

    實驗一:單片機開發(fā)裝置使用方法 (小2號,加粗) 一、 實驗?zāi)康模?號,加粗) 內(nèi)容(楷體,4號,不加粗) 字符和數(shù)字用Times new Roman 二、實驗內(nèi)容 三、實驗步驟 四、實驗結(jié)果 五、實驗分析 六......

    單片機原理及應(yīng)用試題答案(共5篇)

    、單選題(每題4分,共20道小題,總分值80分?) 1.下列指令中與進位標(biāo)志位 CY 無關(guān)的指令有。 (4分) A移位指令 B位操作指令 C十進制調(diào)整指令 D條件轉(zhuǎn)移指令 糾錯 正確答案D您的......

    單片機原理與應(yīng)用考試大綱

    文章標(biāo)題:單片機原理與應(yīng)用考試大綱第一章微型計算機基礎(chǔ)一、考核知識點:1、計算機的數(shù)據(jù)表示和數(shù)據(jù)運算2、計算機的各種編碼3、計算機的組成及工作過程二、考核要求:1、識記計......

    單片機原理及應(yīng)用(專升本)復(fù)習(xí)總結(jié)

    《單片機原理及應(yīng)用》復(fù)習(xí)單片機(Micro Controller Unit,簡稱MCU):把中央處理器(CPU)、隨機存儲器(RAM)、只讀存儲器(ROM)、輸入/輸出接口電路、定時器/計數(shù)器以及串行通信......

主站蜘蛛池模板: 久久麻豆成人精品av| 无码人妻一区二区三区线| 国内精品视频自在一区| 久久久久久久久久久免费精品| 成人精品天堂一区二区三区| 日韩精品无码免费一区二区三区| 国内免费久久久久久久久| 国产亚洲精品无码不卡| 97精品伊人久久大香线蕉app| 播放男人添女人下边视频| 国产精品青青青高清在线| 中文字幕人妻丝袜成熟乱| 国产精品-区区久久久狼| 九九久久精品无码专区| 97人伦色伦成人免费视频| 亚洲人亚洲人成电影网站色| 中文字幕一区二区三区精华液| 亚洲老妇色熟女老太| 又大又爽又黄无码a片| 久久精品中文字幕无码绿巨人| 亚洲国产精品成人午夜在线观看| 精品无码久久久久国产| 国产精品美女久久久网av| 久久久www成人免费看片| 四虎成人精品国产永久免费无码| 人人妻人人爽人人添夜夜欢视频| 亚洲aⅴ天堂av天堂无码app| 99久久精品6在线播放| av无码欧洲亚洲电影网| 免费无码av片在线观看网址| 无码a∨高潮抽搐流白浆| 拍摄av现场失控高潮数次| 国产成人久久久精品二区三区| 在线永久看片免费的视频| av天堂中av世界中文在线播放| 精品偷拍一区二区三区在线看| 国产福利姬精品福利资源网址| 岛国av无码免费无禁网站| 久久综合亚洲色一区二区三区| 天天上天天添天天爱少妇| 一本一道久久综合久久|