課程大綱教案_第1頁
課程大綱教案_第2頁
課程大綱教案_第3頁
課程大綱教案_第4頁
課程大綱教案_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

《單片機原理及應(yīng)用》教案PAGEPAGE93教案20-20學(xué)年第學(xué)期課程名稱:單片機原理與應(yīng)用課程編號::任課教師:

課程簡介單片機具有體積小、功能強、應(yīng)用面廣等許多優(yōu)點。目前,以單片機為核心的控制系統(tǒng)正以空前的速度取代經(jīng)典電子控制系統(tǒng)。學(xué)習(xí)單片機并掌握其設(shè)計應(yīng)用技術(shù)已經(jīng)成為當(dāng)代電子、自動化、計算機應(yīng)用等相關(guān)專業(yè)大學(xué)生必備的技能。為此,各院校的很多專業(yè)都設(shè)置了“單片機”課程。我院自2003年始即投入了強大的師資力量研究“單片機”的發(fā)展、教學(xué)、及其應(yīng)用,意在打造學(xué)院的品牌專業(yè)——電子信息科學(xué)與技術(shù)。發(fā)展至今,已形成了創(chuàng)新型、獨具特色、系統(tǒng)完備的教學(xué)體系。單片機課程是我院電子信息科學(xué)與技術(shù)專業(yè)學(xué)生必修的一門重要專業(yè)主干課程,也是一門理論與實際密切結(jié)合的專業(yè)基礎(chǔ)課。學(xué)生對該課程內(nèi)容掌握的程度直接影響其專業(yè)課程的學(xué)習(xí)和專業(yè)技能提高,對于人才素質(zhì)培養(yǎng)起著舉足輕重的作用。單片機課程的任務(wù)是通過課堂教學(xué)和實踐教學(xué)相結(jié)合的教學(xué)模式,使學(xué)生能清楚的了解單片機的結(jié)構(gòu)、原理與工作流程,建立起單片機系統(tǒng)的概念,最終能夠掌握自動化技術(shù)領(lǐng)域中單片機控制的基本方法、基本技能,能夠用單片機控制各種常見的執(zhí)行機構(gòu),完成產(chǎn)品的硬件電路的設(shè)計及驅(qū)動程序的編制,培養(yǎng)學(xué)生科學(xué)的思維方法,綜合運用知識的能力、實驗操作能力、綜合分析問題能力、解決問題的能力,養(yǎng)成嚴肅認真、實事求是的科學(xué)態(tài)度和嚴謹?shù)墓ぷ髯黠L(fēng),使學(xué)生在科學(xué)方法上得到初步訓(xùn)練,為后續(xù)課程的學(xué)習(xí)奠定基礎(chǔ),為未來的工作打下扎實基礎(chǔ)。

《單片機原理及應(yīng)用》教學(xué)大綱

課程編號:英文課程名:PrincipleandApplicationofSingle-chipmicrocomputer總學(xué)時:60學(xué)時(其中含實驗10學(xué)時)課程類別:專業(yè)選修課適用專業(yè):電子信息科學(xué)與技術(shù)先修課程:微機原理模擬電子技術(shù)數(shù)字電子技術(shù)一、課程性質(zhì)與目的、要求《單片機原理及應(yīng)用》是一門關(guān)于MCS-51單片機原理、應(yīng)用和系統(tǒng)開發(fā)的面向?qū)嶋H應(yīng)用的課程。通過本課程的教學(xué),使學(xué)生掌握以MCS-51為代表的單片機系統(tǒng)基本組成、工作原理、指令系統(tǒng)、程序設(shè)計的基本方法以及單片機的接口技術(shù);使學(xué)生更深入地理解計算機軟、硬件系統(tǒng)的基本組成和基本原理;使學(xué)生掌握單片機應(yīng)用系統(tǒng)開發(fā)和設(shè)計的基本方法;培養(yǎng)學(xué)生利用單片機進行自動化系統(tǒng)及電子系統(tǒng)的開發(fā)和設(shè)計能力;啟迪學(xué)生的創(chuàng)新意識;鍛煉學(xué)生的動手能力,促使學(xué)生全面素質(zhì)的提高。二、教學(xué)內(nèi)容及學(xué)時分配本課程的教學(xué)內(nèi)容共分九章。第一章概述 2課時第一節(jié)計算機和單片機的發(fā)展史 1課時第二節(jié)單片機的特點及應(yīng)用 1課時第二章MCS-51系列單片機的結(jié)構(gòu)和原理 7課時第一節(jié)80C51單片機的結(jié)構(gòu) 2課時第二節(jié)80C51的工作原理 1課時第三節(jié)80C51的存儲器 1課時第四節(jié)并行I/O口結(jié)構(gòu) 1課時第五節(jié)CPU時序及時鐘電路 1課時第六節(jié)復(fù)位(RESET)操作 0.5課時第七節(jié)節(jié)電運行方式 0.5課時第三章MCS-51系列單片機的指令系統(tǒng) 9課時第一節(jié)MCS-51單片機指令系統(tǒng)概述 0.5課時第二節(jié)尋址方式 1課時第三節(jié)MCS-51系列單片機的指令系統(tǒng) 7.5課時數(shù)據(jù)傳送類指令算術(shù)運算類指令邏輯操作類指令控制轉(zhuǎn)移類指令位操作類指令第四章匯編語言程序設(shè)計 9課時第一節(jié)程序設(shè)計概述 0.5課時第二節(jié)MCS-51系列單片機匯編語言規(guī)則 0.5課時第三節(jié)基本程序設(shè)計 5課時第四節(jié)典型程序設(shè)計 2課時第五章

MCS-51單片機硬件資源的應(yīng)用 12課時第一節(jié)MCS-51的并行口及其應(yīng)用 1課時第二節(jié)MCS-51的中斷系統(tǒng) 3課時1、中斷概述2、中斷處理的全過程3、MCS-51中斷系統(tǒng)及其中斷處理過程第三節(jié)MCS-51的定時器/計數(shù)器 5課時1、定時器的結(jié)構(gòu)與工作原理2、定時計數(shù)器的控制3、定時器的工作方式4、定時計數(shù)器的應(yīng)用第四節(jié)MCS-51的串行接口及串行通信 3課時1、串行通訊的基本原理及通訊方式2、MCS-51串行通訊的工作方式及控制3、MCS-51雙機通訊和多機通訊技術(shù)的實現(xiàn)第八章MCS51單片機的系統(tǒng)擴展 9課時第一節(jié)MCS-51單片機系統(tǒng)三總線的形成 1課時第二節(jié)

MCS-51單片機系統(tǒng)存儲器的擴展 1課時第三節(jié)I/O擴展 1課時第四節(jié)MCS-51單片機并行擴展的編址技術(shù) 1課時第五節(jié)按鍵、鍵盤及其接口 1課時第六節(jié)LED顯示器及其接口技術(shù) 1課時第七節(jié)串行擴展鍵盤、顯示器接口芯片 1課時第八節(jié)

A/D轉(zhuǎn)換器接口 1課時第九節(jié)

D/A轉(zhuǎn)換器接口 1課時第九章MCS-51單片機的開發(fā)與應(yīng)用 4課時第一節(jié)單片機開發(fā)、應(yīng)用概述 0.5課時第二節(jié)單片機的開發(fā)、應(yīng)用過程 0.5課時第三節(jié)MCS-51的仿真開發(fā)器 1課時第四節(jié)MCS-51系列單片機的開發(fā)、應(yīng)用舉例 2課時期末總復(fù)習(xí) 2課時三、教學(xué)方法以教師課堂講授與多媒體教學(xué)相結(jié)合,并配合課堂演示及學(xué)生課后大量的練習(xí)及實驗實踐。四、成績考核方式該課程是一門面向?qū)嶋H應(yīng)用的課程,平時及期中考試則以書面作業(yè)形式進行考查;期末考試以閉卷形式進行,其中筆試成績占70%,對實驗內(nèi)容掌握情況的考核,約占課程總成績的30%,結(jié)合平時實驗掌握情況及實驗報告完成情況,并在期末試卷中出有關(guān)單片機的綜合設(shè)計實驗試題的方式進行考核。五、教材與參考資料教材:[1]張毅剛,劉杰.單片機原理及應(yīng)用.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2007.8[2]李全利.單片機原理及應(yīng)用.北京:清華大學(xué)出版社,2006參考資料:[1]李朝青.單片機原理及其接口技術(shù).北京:北京航空航天大學(xué)出版社,1999.3[2]胡漢才.單片機原理及其接口技術(shù)(第二版).北京:清華大學(xué)出版社,2004.2

授課時間2007年9月5日第1次課授課章節(jié)概述§1-1計算機和單片機的發(fā)展史§1-2單片機的特點及應(yīng)用任課教師及職稱盧洪武教授教學(xué)方法與手段課堂講授,配合多媒體課件,并用單片機仿真、實驗板演示,課間安排15分鐘進行課間討論。課時安排2課時《單片機原理及應(yīng)用》,張毅剛編著,哈爾濱工業(yè)大學(xué)出版社?!秵纹瑱C原理及接口技術(shù)》,李全利、遲榮強編著,清華大學(xué)出版社,(十五國家級規(guī)劃教材)。教學(xué)目的與要求:1、了解該課程在本專業(yè)中的地位,課程研究內(nèi)容,學(xué)習(xí)方法;2、認識單片機,了解單片機的應(yīng)用;3、了解目前常用的單片機類型。教學(xué)重點,難點:教學(xué)內(nèi)容:一、課程介紹本課程在專業(yè)課程中的地位,本課程研究的內(nèi)容,本課程的學(xué)習(xí)方法:先學(xué)習(xí)硬件、再學(xué)習(xí)軟件。二、單片機的概念、應(yīng)用、發(fā)展1、單片機的概念☆單片機是微型計算機的一個分支,特別適用于控制領(lǐng)域。單片機是把中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、定時器\計數(shù)器及I\O接口電路等主要計算機接口部件集成在一塊集成電路上的微型計算機。2、單片機的特點高性能、高速度、體積小、價格低、穩(wěn)定可靠。擅長于控制,故又稱為微控制器。三、單片機的應(yīng)用航空航天;智能儀器儀表;機電一體化;實時過程控制;家用電器;日常生活;其它方面。四、單片機的發(fā)展☆1971年微處理器研制成功?!?976年INTEL公司推出MCS-48單片機,以其體積小、功能全、價格低等特點贏得了廣泛應(yīng)用。☆目前,世界各地廠商相繼研制出大約50個系列300多個品種的單片機。☆最有代表性的是INTEL公司的MCS-51系列單片機。五、目前常用的單片機系列☆按制造廠商:主要有:Intel、Motorola、Zilog、Philip、Siemes、NEC?!畎次粩?shù)分:八位、十六位。六、MCS-51系列單片機1、MCS-51系列單片機在國際市場中占有率很高。2、按存儲器配置分有三種:片內(nèi)ROM型、片內(nèi)EPROM型、外接EPROM型按功能分:基本型;增大內(nèi)部存儲器的基本型;低功耗型;高級語言型;可編程計數(shù)陣列(PCA)型;A/D型;DMA型;多并行口型復(fù)習(xí)思考題、作業(yè)題1、什么叫單片機?2、單片機主要應(yīng)用于哪些領(lǐng)域?3、單片機由哪些基本部件組成?下次課預(yù)習(xí)要點單片微機的硬件組成結(jié)構(gòu),單片微機引腳功能,中央處理器CPU,并行I/O口結(jié)構(gòu),RST/VPD引腳功能,片內(nèi)振蕩器。實施情況及教學(xué)效果分析由于配合多媒體課件,并用單片機仿真、實驗板演示,使學(xué)生了解了單片機的特點,大大激發(fā)了學(xué)生學(xué)習(xí)單片機的積極性。學(xué)院審核意見學(xué)院負責(zé)人簽字年月日

授課時間2007年9月12日第2次課授課章節(jié)MCS-51單片機的硬件結(jié)構(gòu)§2-1MCS-51單片機的硬件結(jié)構(gòu)§2-2MCS-51單片機的CPU及引腳§2-3MCS-51單片機的存儲器結(jié)構(gòu)任課教師及職稱盧洪武教授教學(xué)方法與手段課堂講授,配合多媒體課件,課間安排15分鐘進行課間討論。課時安排3課時《單片機原理及應(yīng)用》,張毅剛編著,哈爾濱工業(yè)大學(xué)出版社?!秵纹瑱C原理及接口技術(shù)》,李全利、遲榮強編著,清華大學(xué)出版社,(十五國家級規(guī)劃教材)。教學(xué)目的與要求:1.熟習(xí)單片機的內(nèi)部結(jié)構(gòu)。2.熟練掌握各引腳功能。3.熟練掌握MCS-51的存儲器結(jié)構(gòu)。教學(xué)重點,難點:8051的存儲器結(jié)構(gòu)教學(xué)內(nèi)容:一、MCS-51單片機硬件結(jié)構(gòu)☆MCS-51單片機內(nèi)部結(jié)構(gòu)按功能分為CPU、存儲器(ROMRAM)、I/O端口、定時器/計數(shù)器和中斷系統(tǒng)。☆8051CPU由運算器、控制器兩部份電路組成。(1)、運算器:由算術(shù)邏輯部件(ALU)、累加器ACC、暫存器、程序狀態(tài)字寄存器PSW、BCD碼運算調(diào)整電路等組成。☆8051的ALU是性能極強的運算器☆它可進行加、減、乘、除四則運算☆也可進行與、或、非、異或等邏輯運算☆具有數(shù)據(jù)傳送、移位、判斷和程式轉(zhuǎn)移等功能。(2)定時控制部件☆定時控制部件起著控制器作用,由定時控制邏輯,指令寄存器IR和振蕩器OSC組成。二、MCS-51單片機的CPU及引腳及功能MCS-51單片機采用40引腳雙列直插封裝。分為電源線、控制線、端口線三類。圖2-2、圖2-3(見教材)電源線(2條):VCC為+5V電源線、VSS為接地線??刂凭€(6條)端口線:8051有四個并行I\O端口,每個端口有八條端口線。三、MCS-51的存儲器結(jié)構(gòu)MCS-51的存儲器有片內(nèi)和片外之分。片內(nèi)存儲器集成在芯片內(nèi)部、片外存儲器是專門的存儲器芯片,通過三總線與MCS-51連接。MCS-51的存儲器在物理結(jié)構(gòu)上有四個存儲空間:片內(nèi)程序存儲器、片外程序存儲器、片內(nèi)數(shù)據(jù)存儲器、片外數(shù)據(jù)存儲器。1、程序存儲器程序存儲器用于存放編好的程序和表格常數(shù)。8051片內(nèi)有4KB的ROM,8751片內(nèi)有4KB的EPROM,片內(nèi)外ROM是統(tǒng)一編址的,由EA端控制。2、數(shù)據(jù)存儲器數(shù)據(jù)存儲器用于存放運算中間結(jié)果,數(shù)據(jù)暫存和緩沖、標(biāo)志位、待調(diào)試的程序等,MCS-51片內(nèi)數(shù)據(jù)存儲器為256字節(jié)的RAM,片外數(shù)據(jù)存儲器可擴充64K字節(jié)的RAM。片內(nèi)數(shù)據(jù)存儲器為256字節(jié)數(shù)據(jù)存儲器RAM的分配00H—7FH(0—127)單元組成低128字節(jié)的片內(nèi)RAM區(qū):00H—1FH共32個單元為工作寄存器區(qū),共分為4組,每組由8個單元組成通用寄存器R0-R7.由PSW狀態(tài)字中的RS1RS0來設(shè)置。20H—2FH共16個字節(jié),可用位尋址方式訪問。30H—7FH共80個單元為用戶RAM區(qū),作堆?;驍?shù)據(jù)緩沖。80—FFH為128字節(jié)的專用寄存器區(qū)(SFR)見教材圖2-6專用寄存器SFRMCS-51中共有23個專用寄存器,其中3個僅8032\8052有,5個雙字節(jié)寄存器,11個具有位尋址能力。復(fù)習(xí)思考題、作業(yè)題1、8051單片機有多少個特殊功能寄存器?它們可以分為幾組,各完成什么主要功能?2、決定程序執(zhí)行順序的寄存器是哪個?它是幾位寄存器?它是不是特殊功能寄存器?3、DPRT是什么寄存器?它的作用是什么?它由哪幾個特殊功能寄存器組成?4、什么叫堆棧?堆棧指針寄存器SP的作用是什么?8051單片機堆棧的最大容量不能超過多少字節(jié)?5、8051單片機的內(nèi)部數(shù)據(jù)存貯器可以分為幾個不同區(qū)域?各有什么特點?6、MCS-51單片機的尋址范圍是多少?8051單片機可以配置的存貯器最多容量是多少?而用戶可以使用的最大容量又是多少(包括程序存貯器和數(shù)據(jù)存貯器)?下次課預(yù)習(xí)要點8051單片機的并行I/O口內(nèi)部結(jié)構(gòu)及讀、寫操作,及并行I/O口的負載能。單片機的工作方式、工作過程,單片機的振蕩器和時鐘電路,CPU的時序。實施情況及教學(xué)效果分析由于采用多媒體課件,使學(xué)生了解了單片機的結(jié)構(gòu)特點和存儲器結(jié)構(gòu)。學(xué)院審核意見學(xué)院負責(zé)人簽字年月日

授課時間2007年9月19日第3次課授課章節(jié)§2-3MCS-51的輸入輸出結(jié)構(gòu)§2-4MCS-51的復(fù)位、時鐘及時序任課教師及職稱盧洪武教授教學(xué)方法與手段課堂講授,配合多媒體課件,課間安排15分鐘進行課間討論。課時安排3課時《單片機原理及應(yīng)用》,張毅剛編著,哈爾濱工業(yè)大學(xué)出版社?!秵纹瑱C原理及接口技術(shù)》,李全利、遲榮強編著,清華大學(xué)出版社,(十五國家級規(guī)劃教材)。教學(xué)目的與要求:1.掌握并行I/O口內(nèi)部結(jié)構(gòu)及讀、寫操作,及并行I/O口的負載能。2.了解單片機的工作方式、單片機的工作過程,單片機的振蕩器和時鐘電路,CPU的時序。教學(xué)重點,難點:8051的并行I/O口內(nèi)部結(jié)構(gòu)及讀、寫操作教學(xué)內(nèi)容:一、MCS-51的輸入輸出結(jié)構(gòu)☆MCS-51單片機有4個并行的I\O端口,分別命名為P0、P1、P2、P3?!蠲總€端口都有雙向I/O功能?!蠲總€端口內(nèi)部都有一個8位數(shù)據(jù)輸出鎖存器和一個8位數(shù)據(jù)輸入緩沖器?!钏膫€端口在結(jié)構(gòu)上并不相同,因此它們的功能和用途有差異。1、P0口的結(jié)構(gòu)及功能P0口的結(jié)構(gòu):P0口的功能:2、P1口的結(jié)構(gòu)及功能P1口的結(jié)構(gòu):P1口的功能:3、P2口的結(jié)構(gòu)及功能P2口的結(jié)構(gòu):P2口的功能:4、P3口的結(jié)構(gòu)及功能P3口的結(jié)構(gòu):P3口的功能:二、單片機的工作方式1、復(fù)位方式☆復(fù)位是使CPU和系統(tǒng)中其它部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)始工作。☆復(fù)位是在單片機RST/VPD或RST引腳加一高電平來實現(xiàn)。☆復(fù)位后,內(nèi)部各寄存器的狀態(tài)見課本P27頁表2.7?!顝?fù)位有上電復(fù)位和按鈕手動復(fù)位兩種。2、掉電操作方式☆單片機在正常運行時,片內(nèi)RAM由VCC供電,當(dāng)遇到掉電時,將會丟失RAM和寄存器中的信息。為避免這種情況,可以把HMOS型的8051單片機RST/VPD引腳作為備用電源端以低功耗保持片內(nèi)數(shù)據(jù),這種方式稱為掉電保護。掉電保護電路:3、低功耗方式☆CHMOS型單片機有兩種低功耗方式:待機方式和掉電方式。☆待機方式和掉電方式由電源控制寄存器PCON有關(guān)位來定義三、單片機的振蕩器和時鐘電路1、MCS-51內(nèi)部時鐘電路2、HMOS型MCS-51外部時鐘源的接法3、CHMOS型MCS-51外部時鐘源的接法4、對外部時鐘信號的要求四、CPU的時序單片機的時序就是CPU在執(zhí)行指令時所需控制信號的時間順序。1、時鐘周期2、機器周期3、指令周期4、MCS-51單片機的時序五、單片機的工作過程復(fù)習(xí)思考題、作業(yè)題1、什么叫指令周期?什么叫機器周期?什么叫時鐘周期?MCS-51的一個機器周期包括多少時鐘周期?他們之間有什么關(guān)系?2、MCS-51引腳中有多少I/O線?它們和單片機對外的地址總線和數(shù)據(jù)總線有什么關(guān)系?地址總線和數(shù)據(jù)總線各是幾位?3、怎樣實現(xiàn)單片機的復(fù)位?復(fù)位后各特殊功能寄存器的狀態(tài)如何?下次課預(yù)習(xí)要點單片微機的硬件組成結(jié)構(gòu),單片微機引腳功能,中央處理器CPU,并行I/O口結(jié)構(gòu),RST/VPD引腳功能,片內(nèi)振蕩器。實施情況及教學(xué)效果分析由于配合多媒體課件,使學(xué)生了解了8051的并行I/O口內(nèi)部結(jié)構(gòu)及讀、寫操作,單片機的工作方式、工作過程等。學(xué)院審核意見學(xué)院負責(zé)人簽字年月日

授課時間2007年9月26日第4次課授課章節(jié)第三章MCS-51單片機指令系統(tǒng)§3-1指令系統(tǒng)概述§3-2MCS-51的尋址方式§3-3指令系統(tǒng)及應(yīng)用舉例(一)任課教師及職稱盧洪武教授教學(xué)方法與手段課堂講授,配合多媒體課件,課間安排15分鐘進行課間討論。課時安排3課時《單片機原理及應(yīng)用》,張毅剛編著,哈爾濱工業(yè)大學(xué)出版社?!秵纹瑱C原理及接口技術(shù)》,李全利、遲榮強編著,清華大學(xué)出版社,(十五國家級規(guī)劃教材)。教學(xué)目的與要求:1、了解MCS-51系列單片機的尋址方式及指令系統(tǒng)。2、掌握數(shù)據(jù)傳送類指令的使用。3、掌握算術(shù)運算類指令指令的使用。教學(xué)重點,難點:1、MCS-51系列單片機的指令格式、指令符號。2、單片機的尋址方式。3、堆棧指令、片外數(shù)據(jù)傳送指令、查表指令、十進制調(diào)整指令教學(xué)內(nèi)容:§3-1指令系統(tǒng)簡介指令是計算機用于控制各功能部件完成某一指定動作的指令。完成某一功能的指令的有序組合就構(gòu)成了程序。一、指令格式[標(biāo)號]:操作碼[操作數(shù)];[注釋]標(biāo)號:標(biāo)號是語句地址的標(biāo)志符號,有了標(biāo)號,程序中的其它語句才能訪問該語句。標(biāo)號的規(guī)定如下:標(biāo)號由1~8個ASCⅡ字符組成,但頭一個字符必須是字母,其余字符可以是字母、數(shù)字或其它特定符號。不能使用本匯編語言已經(jīng)定義了的符號作標(biāo)號,如指令助記符,偽指令記憶符以及寄存器的符號名稱等。標(biāo)號后面必須跟冒號。同一標(biāo)號在一個程序中只能定義一次,不能重復(fù)定義。一條語句可以有標(biāo)號,也可以沒有標(biāo)號。標(biāo)號的有無取決于本和平序的其它語句是否需要訪問這條語句。操作碼:操作碼用于指示機器執(zhí)行何操作。不能空缺。操作數(shù):操作數(shù)用于給指令的操作提供數(shù)據(jù)或地址。在一條語句中,操作數(shù)可能是空白,也可能只包括一項,還可能包括二項、三項。各操作數(shù)之間用逗號分隔。注釋:注釋不屬于語句的功能部份,它只是對語句的解釋,便于語句閱讀。二、指令的表現(xiàn)形式指令的表現(xiàn)形式是識別指令的標(biāo)志,也是人們用來編寫和閱讀程序的基礎(chǔ)。通常指令有三種表示形式:二進制、十六進制和助記符三種形式。指令的二進制形式是可以直接為計算機識別和執(zhí)行的形式,故又稱指令的機器碼或匯編語言源程序的目標(biāo)代碼。指令的二進制形式難讀、難寫、難記、難改,一般不用來編寫程序。十六進制形式雖然讀寫方便,但仍不易為人們所識別和修改,也不用來編寫程序。實際上十六進制的程序代碼輸入機器后,仍有計算機的監(jiān)控程序翻譯成二進制。指令的助記符形式又稱指令的匯編語言形式,是一種用英文單詞或縮寫字母形象表征指令功能的形式。這種形式不僅為人們識別和讀寫,而且記憶和交流極為方便,常常被人們用來進行程序設(shè)計。但必須通過人工或機器碼形式才能執(zhí)行。三、MCS-51單片機的指令系統(tǒng)概述MCS-51單片機的指令系統(tǒng)共有111條指令,可以實現(xiàn)51種基本操作。MCS-51單片機的指令系統(tǒng)按功能分為五類:數(shù)據(jù)傳送指令29條算術(shù)運算指令24條邏輯運算指令24條控制程序轉(zhuǎn)移指令17條布爾變量操作指令17條按字節(jié)有:有單字節(jié)指令(49條)、雙字節(jié)指令(46條)、三字節(jié)指令(16條)四、指令符號說明Rn工作寄存器,可以是R0–R7中的一個#data:8位立即數(shù),00H-FFHdriect:8位直接地址@Ri:表示寄存器間接尋址#data16:16位立即數(shù)DPTR:表示以DPTR為數(shù)據(jù)指針的間接尋址。bit:位地址addr11:11位目標(biāo)地址addr16:16位目標(biāo)地址rel:8位帶符號地址偏移量五、指令對標(biāo)志位的影響MCS-51指令分為兩類:一類是指令執(zhí)行后要影響到PSW中某些標(biāo)志位的狀態(tài),即不論指令執(zhí)行前標(biāo)志位狀態(tài)如何,指令執(zhí)行時總按標(biāo)志位的定義形成新的標(biāo)志狀態(tài);另一指令不會影響到標(biāo)志位的狀態(tài),原來是什么狀態(tài),指令執(zhí)行后仍然是什么狀態(tài)?!?-2MCS-51的尋址方式在計算機中,尋找操作數(shù)的方法稱為指令的尋址方式。MCS-51單片機有7種尋址方式1、立即尋址指令中的操作數(shù)是1個8位或16位二進制立即數(shù)。立即數(shù)用#data,#data16表示。如:MOVA,#3AH2、直接尋址指令中直接給出操作數(shù)地址。如:MOVA,3AH3、寄存器尋址寄存器尋址以通用寄存器的內(nèi)容作為操作數(shù),在指令的助記符中直接以寄存器的名字來表示操作數(shù)的位置。如:MOVA,R14、寄存器間接尋址操作數(shù)的地址以寄存器的名稱間接給出。在訪問內(nèi)部RAM或外部RAM的256個單元時,用R0、R1作為寄存器間接尋址。如:MOVA,@Ri在訪問外部RAM時,用DPTR數(shù)據(jù)指針來間接尋址。如:MOVXA,@DPTR5、基址加變址尋址以某個寄存器的內(nèi)容為基本地址,在這個基址基礎(chǔ)上加上地址偏移量得到操作數(shù)地址。如:MOVXA,@A+DPTR6、相對尋址相對尋址是將程序計數(shù)器PC中的當(dāng)前內(nèi)容與指令第二字節(jié)所給出的數(shù)相加,其和為跳轉(zhuǎn)指令的轉(zhuǎn)移地址。如:SJMP08H7、位尋址位尋址是對片內(nèi)RAM的尋址區(qū)(20H—2FH)和可以位尋址的專用寄存器進行位操作。如:MOVA,20H§3-3指令系統(tǒng)及應(yīng)用舉例(一)一、數(shù)據(jù)傳送類指令☆數(shù)據(jù)傳送指令一般是把源操作數(shù)傳送到目的操作數(shù),指令執(zhí)行后,源操作數(shù)不變,目的操作數(shù)修改為源操作數(shù)。☆傳送指令一般不影響標(biāo)志位(ASW中的P標(biāo)志除外)。☆數(shù)據(jù)傳送指令共五類29條:片內(nèi)數(shù)據(jù)傳送指令、片外數(shù)據(jù)存儲器傳送指令、程序存儲器數(shù)據(jù)傳送指令、交換指令、堆棧指令。1、片內(nèi)數(shù)據(jù)傳送指令,分5組(1)以累加器A為目的操作數(shù)的指令4條MOVA,Rn;A←Rn例:MOVA,R7MOVA,#data;A←data例:MOVA,#30HMOVA,@Ri;A←(Ri)例:MOVR1,#30HMOVA,@R1MOVA,direct;A←(direct)例:MOVA,37H注:Rn為R0~R7,Ri為R0、R1(2)以工作寄存器Rn為目的操作數(shù)的指令3條MOVRn,A;Rn←A例:MOVR1,AMOVRn,direct;Rn←(direct)例:MOVR3,30HMOVRn,#data;Rn←data例:MOVR7,#80H注:Rn為R0~R7,Ri為R0、R1(3)以直接地址為目的操作的指令5條MOVdirect,A;(direct)←A例:MOV30H,AMOVdirect,Rn;(direct)←Rn例:MOV20H,R7MOVdirect,direct;(direct)←(direct)例:MOV30H,40HMOVdirect,@Ri;(direct)←(Ri)例:MOV30H,@R0MOVdirect,#data;(direct)←data例:MOV30H,#80H(4)以間接地址為目的操作數(shù)的指令3條MOV@Ri,A;(Ri)←A例:MOV@R0,AMOV@Ri,direct;(Ri)←(direct)例:MOV@R0,30HMOV@Ri,#data;(Ri)←data例:MOV@R0,#70H(5)16位數(shù)據(jù)傳送指令1條MOVDPTR,#data16;DPTR←data16例:MOVDPTR,#0070H2、片外數(shù)據(jù)存儲器傳送指令MOVXA,@Ri;A←(Ri)例:MOVXA,@R0MOVXA,@DPTR;A←(DPTR)例:MOVXA,@DPTRMOVX@Ri,A;(Ri)←A例:MOV@R0,AMOVX@DPTR,A;(DPTR)←A例:MOVX@DPTR,A3、程序存儲器數(shù)據(jù)傳送指令MOVXA,@A+PC;A←((A)+PC)MOVXA,@A+DPTR;A←((A)+DPTR)☆MOVXA,@A+PC的尋址范圍是相對PC當(dāng)前值以后的256字節(jié)地址空間☆MOVXA,@A+DPTR的尋址范圍是整個程序存儲器64K字節(jié)的地址空間☆此兩條指令常用作查表指令4、交換指令5條XCHA,RnXCHA,@RiXCHA,directXCHDA,@RiSWAPA5、堆棧指令PUSHdirect;SP←SP+1,(SP)←(direct)POPdirect;(SP)←(direct),SP←SP-1二、算術(shù)運算類指令算術(shù)運算類指令共24條,包括4種基本的算術(shù)運算指令,即加、減、乘、除。算術(shù)運算類指令對PSW中的CY、AC、OV三個標(biāo)志位都有影響。1、不帶進位的加法指令(4條)ADDA,Rn;A←A+RnADDA,@Ri;A←A+(Ri)ADDA,direct;A←A+(direct)ADDA,#data;A←A+data這四條指令的功能是把A中的數(shù)與源操作數(shù)所指出的內(nèi)容相加,其結(jié)果仍存在A中。2、帶進位的加法指令(4條)ADDCA,Rn;A←A+Rn+CYADDCA,@Ri;A←A+(Ri)+CYADDCA,direct;A←A+(direct)+CYADDCA,#data;A←A+data+CY這四條指令的功能是把A中的數(shù)與源操作數(shù)所指出的內(nèi)容及進位標(biāo)志位CY相加,其結(jié)果仍存在A中。3、帶進位的減法指令(4條)SUBBA,Rn;A←A-Rn-CYSUBBA,@Ri;A←A-(Ri)-CYSUBBA,direct;A←A-(direct)-CYSUBBA,#data;A←A-data-CY這四條指令的功能是把A中的數(shù)減去源操作數(shù)所指出的內(nèi)容和進位標(biāo)志位CY,差仍存在A中。4、加1指令(5條)INCA;A←A+1INCRn;Rn←Rn+1INC@Ri;(Ri)←(Ri)+1INCdirect;(direct)←(direct)+1INCDPTR;(DPTR)←(DPTR)+1這組指令的功能是將操作數(shù)所指定的單元或寄存器的內(nèi)容加1,結(jié)果送入原操作數(shù)單元中。5、減1指令(5條)DECA;A←A-1DECRn;Rn←Rn-1DEC@Ri;(Ri)←(Ri)-1INCdirect;(direct)←(direct)-1這組指令的功能是將操作數(shù)所指定的單元或寄存器的內(nèi)容減1,結(jié)果送入原操作數(shù)單元中。6、乘法指令(1條)MULAB;A←A*B此條指令的功能是實現(xiàn)兩個8位無符號數(shù)的乘法操作,2個數(shù)分別存在累加器A和寄存器B中。乘積為16位,低8位積在A中,高8位積在B中。7、除法指令(1條)DIVAB;A←A/B(商),B←A/B(余)此條指令的功能是實現(xiàn)兩個8位無符號數(shù)的除法,被除數(shù)放在累加器A中,除數(shù)放在寄存器B中。指令執(zhí)行后,商放在A中,余數(shù)放在B中。8、十進制調(diào)整指令(1條)DAA這條指令是在進行BCD碼加法運算時,用來對BCD碼的加法運算結(jié)果自動進行修正。原因:在計算機中,十進制數(shù)0~9用BCD碼表示,然而計算機在進行運算時,是按二進制規(guī)則進行的,導(dǎo)致運算結(jié)果錯誤。復(fù)習(xí)思考題、作業(yè)題1、80C51有幾種尋址方式?各涉及哪些存儲空間?2、指出下列指令是否有錯,錯在何處,應(yīng)如何改正。(1)MOVC@A+PC,A3(2)MOVXA,2000H(3)DJNZdirect,rel(4)INCA(5)DECDPTR(6)MOVR1,R2(7)SETB2000H(8)JZA,LOOP(9)MOVDPTR,10H(10)ANL18H,A3、當(dāng)(SP)=60H,(A)=30H,(B)=70H,執(zhí)行下列指令PUSHA;PUSHB后,問:(61H)=?(SP)=?若當(dāng)(SP)=62H,(62H)=70H,(61H)=30H,執(zhí)行下列指令POPDPH;POPDPL后,問(DPTR)=?(SP)=?4、有5個雙字節(jié)數(shù)求和,5個數(shù)分別放在20H∽29H,結(jié)果放在30H,31H。試編寫程序?qū)崿F(xiàn)之。5、編一程序?qū)⑵瑑?nèi)40H~46H單元內(nèi)容的高4位清零,保持低4位不變。下次課預(yù)習(xí)要點邏輯運算類指令的使用,掌握控制程序轉(zhuǎn)移類指令的使用,位尋址指令的使用,偽指令的使用。實施情況及教學(xué)效果分析本次課內(nèi)容較多,應(yīng)通過編程練習(xí)使學(xué)生掌握MCS-51系列單片機的尋址方式及指令系統(tǒng),掌握各類指令的使用。并注意和8088匯編語言的區(qū)別。學(xué)院審核意見學(xué)院負責(zé)人簽字年月日

授課時間2007年10月10日第5次課授課章節(jié)§3-3指令系統(tǒng)及應(yīng)用舉例(二)任課教師及職稱盧洪武教授教學(xué)方法與手段課堂講授,配合多媒體課件,課間安排15分鐘進行課間討論。課時安排3課時《單片機原理及應(yīng)用》,張毅剛編著,哈爾濱工業(yè)大學(xué)出版社?!秵纹瑱C原理及接口技術(shù)》,李全利、遲榮強編著,清華大學(xué)出版社,(十五國家級規(guī)劃教材)。教學(xué)目的與要求:1.掌握邏輯運算類指令的使用2.掌握控制程序轉(zhuǎn)移類指令的使用4.掌握位尋址指令的使用5.掌握偽指令的使用教學(xué)重點,難點:循環(huán)移位指令、條件轉(zhuǎn)移指令間接轉(zhuǎn)移指令位判轉(zhuǎn)移指令教學(xué)內(nèi)容:三、邏輯運算類指令邏輯運算類指令共24條,包括與、或、異或、清除、求反、左右移位邏輯運算類指令一般不影響PSW,僅當(dāng)目的操作數(shù)為A時對奇偶標(biāo)志P位有影響,帶進位的移位指令影響CY位。1、邏輯“與”運算指令(6條)ANLA,Rn;A←A∧RnANLA,@Ri;A←A∧(Ri)ANLA,#data;A←A∧dataANLA,direct;A←A∧(direct)ANLdirect,A;(direct)←A∧(direct)ANLdirect,#data;(direct)←(direct)∧data2、邏輯“或”運算指令(6條)ORLA,Rn;A←A∨RnORLA,@Ri;A←A∨(Ri)ORLA,#data;A←A∨dataORLA,direct;A←A∨(direct)ORLdirect,A;(direct)←A∨(direct)ORLdirect,#data;(direct)←(direct)∨data3、邏輯“異或”運算指令(6條)XRLA,Rn;A←A⊕RnXRLA,@Ri;A←A⊕(Ri)XRLA,#data;A←A⊕dataXRLA,direct;A←A⊕(direct)XRLdirect,A;(direct)←A⊕(direct)XRLdirect,#data;(direct)←(direct)⊕data求反指令(1條)CPLA清零指令(1條)CLRA循環(huán)移位指令(4條)RLARRARLCARRCA四、控制程序轉(zhuǎn)移類指令控制程序轉(zhuǎn)移類指令共17條,分為無條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令、子程序調(diào)用和返回指令、空操作指令四類。主要功能是控制程序轉(zhuǎn)移到新的PC地址上。1、無條件轉(zhuǎn)移指令LJMPaddr16;PC←addr16AJMPaddr11;PC←PC+2,PC10~0←addr11SLMPrel;PC←PC+2+relJMP@A+DPTRPC←A+DPTR(1)LJMPaddr16稱長轉(zhuǎn)移指令,功能是把指令碼中的16位地址:addr16送入程序計數(shù)器PC,使機器執(zhí)行下條指令時無條件轉(zhuǎn)移到addr16處執(zhí)行程序。addr16是16位二進制數(shù),所以允許轉(zhuǎn)移的目標(biāo)地址在64K空間范圍內(nèi)。操作碼為:02Haddr15~8addr7~0(2)AJMPaddr11稱絕對轉(zhuǎn)移指令,執(zhí)行此指令分兩步:第一步取指令操作,PC被加1兩次;第二步把PC加2后的高5位地址PC15—PC11和指令中的11位地址構(gòu)成目標(biāo)轉(zhuǎn)移地址:PC15—PC11A10A9A8A7A6A5A4A3A2A1A0PC高5位addr11(2)AJMPaddr11稱絕對轉(zhuǎn)移指令,執(zhí)行此指令分兩步:第一步取指令操作,PC被加1兩次;第二步把PC加2后的高5位地址PC15—PC11和指令中的11位地址構(gòu)成目標(biāo)轉(zhuǎn)移地址:PC15—PC11A10A9A8A7A6A5A4A3A2A1A0PC高5位addr11PC的高5位PC15—PC11取值范圍為00000~11111共32種組合,把64K的存儲空間劃分為32頁,每頁2K字節(jié)。A10~A0取值為0000000000~11111111112K字節(jié)。AJMPaddr11指令的操作碼為:a10a9a800001a7a6a5a4a3a2a1a0a10a9a8高3位有8種組合,對應(yīng)8種操作碼。a10a9a800001取00000001第一操作碼為01H對應(yīng)PC地址:PC15—PC11000a7a6a5a4a3a2a1a0PC15—PC11對應(yīng)32種頁面號:PC15PC14PC13PC12PC110000000000000H0000100008H0001000010H例:KWR:AJMP10110100101B操作碼:A10A9A800001A7A6A5A4A3A2A1A01010000110100101A1A5H轉(zhuǎn)移地址:PC15—PC11000A7A6A5A4A3A2A1A00001100001010010135A5H(3)SLMPrel稱短轉(zhuǎn)移指令,功能是先使程序計數(shù)器PC加1兩次(即取出指令碼),然后把加2后的PC地址和rel相加作為目標(biāo)地址。操作碼:80Hrel目標(biāo)轉(zhuǎn)移地址=源地址+2+relrel=目標(biāo)轉(zhuǎn)移地址-源地址-2rel的取值范圍是-128——+127,可在256個存儲單元內(nèi)轉(zhuǎn)移。負數(shù)用補碼表示。例:求如下程序中的relORG1000H1000H7401HSTART:MOVA,#01H1002HF8HMOVR0,A1003H90CF01HLOOP:MOVDPTR,#0CF01H1017H80relSJMPSTARTENDrel=目標(biāo)轉(zhuǎn)移地址-源地址-2=1000H-1017H-2H=-19H用補碼表示E7例2:編寫程序時,程序在結(jié)束指令通常用:HRRE:SJMPHERE或SJMP$機器碼為:80FErel=目標(biāo)轉(zhuǎn)移地址-源地址-2=目標(biāo)轉(zhuǎn)移地址-目標(biāo)轉(zhuǎn)移地址-2=--2用補碼表示FE(4)JMP@A+DPTR稱為變址尋址轉(zhuǎn)移指令,單片機把DPTR中基地址和A中地址偏移量相加,形成新的目標(biāo)轉(zhuǎn)移地址送入PC。JMP@A+DPTRPC←A+DPTR2、條件轉(zhuǎn)移指令JZrel;A=0轉(zhuǎn),PC←PC+2+rel否則繼承執(zhí)行PC←PC+2JNZrel;A≠0轉(zhuǎn),PC←PC+2+rel否則繼承執(zhí)行PC←PC+2CJNEA,#data,rel;不相等轉(zhuǎn)移A=data,PC←PC+3,C←0>data,PC←PC+3+rel,C←0A<data,PC←PC+3+rel,C←1CJNEA,direct,rel;不相等轉(zhuǎn)移A=(direct),PC←PC+3,C←0A>(direct),PC←PC+3+rel,C←0A<(direct),PC←PC+3+rel,C←1CJNERn,#data,rel;不相等轉(zhuǎn)移Rn=data,PC←PC+3,C←0Rn>data,PC←PC+3+rel,C←0Rn<data,PC←PC+3+rel,C←1CJNE@Ri,#data,rel;不相等轉(zhuǎn)移(Ri)=data,PC←PC+3,C←0(Ri)>data,PC←PC+3+rel,C←0(Ri)<data,PC←PC+3+rel,C←1DJNZRn,rel;,Rn←Rn–1,Rn≠0時轉(zhuǎn),PC←PC+2+relDJNZdirect,rel;,(direct)←(direct)–1,(direct)≠0時轉(zhuǎn),PC←PC+3+rel3、子程序調(diào)用及返回指令為了減少編寫和調(diào)試程序的工作量,以及減少程序在內(nèi)存儲器所占有的存儲空間,常常把具有完整功能的程序段定義為子程序,供主程序在需要時調(diào)節(jié)器用。主程序在執(zhí)行調(diào)用子程序指令時自動轉(zhuǎn)入子程序執(zhí)行,子程序執(zhí)行完后通過返回指令調(diào)用指令的下一條指令執(zhí)行。主程序在調(diào)用子程序前必須把程序計數(shù)器PC中斷點地址保存到點堆棧,返回時把堆棧中的斷點地址自動恢復(fù)到PC。調(diào)用和返回指令必須成對出現(xiàn)。調(diào)及指令在主程序需要調(diào)用子程序時使用,返回指令放在子程序未尾。子程序還可調(diào)用另一個子程序,稱子程序嵌套。子程序調(diào)用及返回指令:LCALLaddr16;PC←PC+3,SP←SP+1,(SP)←PC0~7SP←SP+1,(SP)←PC8~15,PC←addr16ACALLaddr11;PC←PC+2,SP←SP+1,(SP)←PC0~7SP←SP+1,(SP)←PC8~15,PC←addr11RET;PC8~15←(SP),SP←SP-1,PC0~7←(SP),SP←SP-1RETI;PC8~15←(SP),SP←SP-1,PC0~7←(SP),SP←SP-1清除優(yōu)先級狀態(tài)觸發(fā)器4、空操作指令NOP;PC←PC+1執(zhí)行此指令僅使PC加1,不進行任何操作,消耗12個時鐘周期,用作延時。五、位尋址指令☆位尋址指令包括位傳送,位邏輯運算、控制程序轉(zhuǎn)移指令共有17條、四類?!钗坏刂返谋磉_方式有:直接位地址方式:如07H為20H單元的D7位。點操作符號方式:如PSW.4,P1.0位名稱方式:如RS1用戶定義名方式:如用偽指令bitFGObitF01、位數(shù)據(jù)傳送指令2條MOVC,bit;C←bitMOVbit,C;bit←C例:MOVC,78H;78H為2FH單元D0的位地址MOVP1.6,C2、位修正指令6條CLRC;C←0CLRbit;C←bitCPLC;C←CCPLbit;bit←bitSEBTC;C←1SEBTbit;bit←13、位邏輯運算指令4條ANLC,bit;C←C∧bitANLC,/bit;C←C∧bitORLC,bit;C←C∨bitORLC,/bit;C←C∨bit4、位轉(zhuǎn)移指令JCrel;C=1轉(zhuǎn),PC←PC+2+rel否則繼承執(zhí)行JNCrel;C=0轉(zhuǎn),PC←PC+2+rel否則繼承執(zhí)行JBbit,rel;bit=1轉(zhuǎn),PC←PC+3+rel否則繼承執(zhí)行JNBbit,rel;bit=0轉(zhuǎn),PC←PC+3+rel否則繼承執(zhí)行JBCbit,rel;bit=1轉(zhuǎn),PC←PC+3+relbit←0,否則繼承執(zhí)行六、偽指令偽指令并不是真正的語句,而是一種假指令。雖然它具有和真指令類似的形式,但不會在匯編時產(chǎn)生可供機器直接執(zhí)行的的機器碼,也不會直接影響存儲器中代碼和數(shù)據(jù)的分布。偽指令是在機器匯編時供匯編程序識別的和執(zhí)行的命令,可以用來對機器的匯編過程進行某種控制,令其進行一些特殊的操作。如規(guī)定匯編生成和目標(biāo)代碼在內(nèi)存中存放區(qū)域,給源程序中的符號和標(biāo)號賦值,批示匯編結(jié)束等。在MCS-51的匯編語言中,常用的偽指令共8條。1、ORGORG偽指令稱起始匯編偽指令,用于匯編語言源程序的數(shù)據(jù)塊開頭,用于規(guī)定目標(biāo)程序的起始地址。格式為:ORG16位地址如:ORG2000HSTART:MOVA,#00H2、ENDEND偽指令稱結(jié)束匯編偽指令,用于匯編語言源程序末尾,用于終止源程序的匯編工作。格式為:[標(biāo)號:]END3、EQUEQU偽指令稱賦值偽指令,用于給它左邊的字符名稱賦值。格式為:字符名稱EQU數(shù)據(jù)或匯編符4、DBDB偽指令稱定義字節(jié)偽指令,用于為匯編語言源程序在內(nèi)存的某一個區(qū)域中定義一個或一串字節(jié)。格式為:[標(biāo)號:]DB<8位數(shù)表>補充:字是計算機內(nèi)部進行數(shù)據(jù)處理的基本單位,通常它與計算機內(nèi)部的寄存器、運算裝置,總線寬度相一致。相鄰的8位二進制數(shù)稱為一個字節(jié)。計算機中每一個字包含的二進制位數(shù)稱為字長。不同的計算機,字長不同。目前,16位、32位微機蓬勃發(fā)展,為了表示方便,常把1個字節(jié)定為8位,一個字定為16位。5、DWDW偽指令稱定義字偽指令,用于為匯編語言源程序在內(nèi)存的某一個區(qū)域中定義一個或一串字。格式為:[標(biāo)號:]DW<16位數(shù)表>存放時,數(shù)據(jù)字的高8位在前,低8位在后。為了表示方便,把相鄰的8位二進制數(shù)稱為一個字節(jié),6、DSDS偽指令稱定義存儲空間偽指令,用于保留一定的空白存儲單元數(shù)目。格式為:[標(biāo)號:]DS數(shù)字7、BITBIT偽指令稱位地址賦值偽指令,用于給以符號名稱賦于位地址。格式為:字符名稱BIT位地址AQBITP1.0復(fù)習(xí)思考題、作業(yè)題1、分析程序并寫出結(jié)果(1)已知(R0)=20H,(20H)=10H,(P0)=30H,(R2)=20H,執(zhí)行如下程序段后,(40H)=______________。MOV@R0,#11HMOVA,R2ADDCA,20HMOVPSW,#80HSUBBA,P0XRLA,#45HMOV40H,A(2)已知(R0)=20H,(20H)=36H,(21H)=17H,(36H)=34H,執(zhí)行過程如下:MOVA,@R0MOVR0,AMOVA,@R0ADDA,21HORLA,#21HRLAMOVR2,ARET則執(zhí)行結(jié)束,(R0)=______________(R2)=______________。2、X、Y、Z表示位地址,進行X、Y內(nèi)容的異或操作,即Z=(X)(Y)=(X)()+()(Y)。試編寫程序?qū)崿F(xiàn)之。3、檢查P1.0是否為1,若為1將P1.3置1,若為0將P1.3置0。4、編寫一個程序,使P1.0產(chǎn)生一個方波脈沖,方波脈沖的高低電平各持續(xù)10ms。5、將片外RAM2000H開始的100個單元內(nèi)的數(shù)據(jù)傳遞給片外RAM3000H開始的100個單元。下次課預(yù)習(xí)要點匯編語言程序設(shè)計的一般規(guī)范,匯編語言源程序的格式 實施情況及教學(xué)效果分析本次課內(nèi)容較多,應(yīng)通過編程練習(xí)使學(xué)生進一步掌握MCS-51系列單片機的尋址方式及指令系統(tǒng),掌握各類指令的使用。并注意和8088匯編語言的區(qū)別。學(xué)院審核意見學(xué)院負責(zé)人簽字年月日授課時間2007年10月17日第6次課授課章節(jié)第四章匯編語言程序設(shè)計§4-1匯編語言程序設(shè)計§4-2順序結(jié)構(gòu)與分支結(jié)構(gòu)程序設(shè)計任課教師及職稱盧洪武教授教學(xué)方法與手段課堂講授,配合多媒體課件,課間安排15分鐘進行課間討論。課時安排3課時《單片機原理及應(yīng)用》,張毅剛編著,哈爾濱工業(yè)大學(xué)出版社。《單片機原理及接口技術(shù)》,李全利、遲榮強編著,清華大學(xué)出版社,(十五國家級規(guī)劃教材)。教學(xué)目的與要求:掌握匯編語言程序設(shè)計的一般規(guī)范了解匯編語言源程序的格式掌握順序程序、分支程序結(jié)構(gòu)程序的設(shè)計教學(xué)重點,難點:無條件/條件轉(zhuǎn)移程序、散轉(zhuǎn)程序設(shè)計教學(xué)內(nèi)容:一、程序設(shè)計語言計算機程序設(shè)計語言是計算機能夠理解和執(zhí)行的語言。它隨著計算機的誕生而誕生,它隨著計算機的發(fā)展而發(fā)展。迄今為止,計算機的程序設(shè)計語言很多,但通常分為機器語言、匯編語言、高級語言三種。1、機器語言是一種直接為計算機識別和執(zhí)行的機器級語言。有兩種表現(xiàn)形式:一種是二進制形式,一種是十六進制形式。機器語言的二進制形式由二進制代碼“0”和“1構(gòu)成,可以直接存放在計算機存儲器內(nèi)。機器語言的十六進制形式,由十六個數(shù)字符0-F組成。機器語言難讀、難寫、難記、難改,一般不用來編寫程序。2、匯編語言是人們用來替代機器語言進行程序設(shè)計的語言。由助記符、保留字和偽指令組成。3、高級語言是面向過程和問題并能獨立于機器的通用程序設(shè)計語言。二、匯編語言概述1、用助記符編寫的程序設(shè)計語言稱為匯編語言。2、匯編語言是面向機器的語言,和CPU有關(guān),不同的CPU的機器有不同的匯編語言。3、匯編語言屬于低級語言。4、程序設(shè)計就是編寫計算機程序的過程三、匯編程序設(shè)計的特點:用匯編程序設(shè)計單片機程序時,對數(shù)據(jù)的存放、寄存器和工作單元的使用等具體工作要由設(shè)計者來安排。而設(shè)計高級語言時,這些工作都由計算機自動安排,程序設(shè)地者不必過問。四、匯編語言源程序的匯編匯編語言源程序在上機調(diào)試前必須翻譯成目標(biāo)機器碼才能為CPU執(zhí)行。這種把匯編語言源程序翻譯成目標(biāo)代碼的過程稱為匯編。通常匯編語言源程序的匯編可以分為人工匯編和機器匯編。1、人工匯編人工匯編是用人工將匯編語言源程序翻譯成目標(biāo)機器碼的過程。目前已很少采用。2、機器匯編機器匯編是用機器將匯編語言源程序翻譯成目標(biāo)機器碼的過程,通過匯編軟件來完成。五、程序設(shè)計基本步驟1、分析問題首先,要對需要解決的問題進行分析,以求對問題有正確的理解。例如,解決問題的目的是什么,最終要達到什么要求,現(xiàn)有的條件,已知的數(shù)據(jù),對運算精度各速度方面的要求等。2、確定算法解決一個問題,常常有幾種可選擇的方法。從數(shù)學(xué)角度來描述,可能有幾種不同的算法。在編制程序前,先對不同的算法進行分析比較,找出最適宜的算法。3、繪制程序流程圖程序設(shè)計工作往往很復(fù)雜,為了把復(fù)雜的工作條理化,經(jīng)常使用流程圖使設(shè)計思路清晰、直觀。流程圖是一些規(guī)定的幾何圖形,通過帶箭頭的線條有機地連在一起而組成的,是對程序執(zhí)行過程的一種形象描述。橢圓框:表示程序的起始或結(jié)束。矩形框:表示要進行的工作菱形框:表示要判斷的事情,菱形框的表達式表示要判斷的內(nèi)容。圓圈:表示連接點指向線:表示程序的流向。5、編制程序按流程圖要求編寫指令,所編程序力求簡潔明了,層次清晰,運算迅速,少占內(nèi)存。6、上機調(diào)試程序編制好后,必須經(jīng)過上機調(diào)試檢查,發(fā)現(xiàn)問題即時修改,再調(diào)試檢查,直到達到預(yù)定的功能如求。六、匯編語言程序的主要類型:1、順序程序2、分支程序3、循環(huán)程序4、子程序5、查表程序6、延時程序。§4-2順序結(jié)構(gòu)與分支結(jié)構(gòu)程序設(shè)計一、順序程序設(shè)計順序程序程序中無轉(zhuǎn)移類指令,機器按程序順序依次順序執(zhí)行。例1:兩個16位無符號數(shù)相加,設(shè)兩個16位的數(shù)分別在片內(nèi)RAM30H和40H開始的兩個單元中,高字節(jié)在低地址單元中,低字節(jié)在高字節(jié)單元中,求兩數(shù)之和并存入40H開始的單元中。解:算法:雙字節(jié)的數(shù)相加的運算先從低字節(jié)加起,借助于進位位可以將低字節(jié)和的進位加至高字節(jié)中去。ORG2000HMOVA,31HADDA,41H;低字節(jié)求和MOV41H,A;低字節(jié)求和存入RAM中MOVA,30HADDCA,40H;高字節(jié)帶進位相加MOV40H,A;存高字節(jié)和SLMP$;結(jié)束END二、分支程序分支程序含有轉(zhuǎn)移指令,其結(jié)構(gòu)如圖所示。分支結(jié)構(gòu)可以嵌套,既一個分支部份又由分支結(jié)構(gòu)組成,組成多級分支結(jié)構(gòu),又稱為選擇結(jié)構(gòu)。例2:兩個數(shù)大小比較。已知在內(nèi)存50H、51H單元中存放兩個不帶符號的二進制數(shù),要求把其中的大數(shù)存入50H單元,小數(shù)存入51H單元中。算法:兩個數(shù)的大小比較,用兩數(shù)相減,看是否產(chǎn)生借位。ORG2000HSTART:MOVR0,#50HMOVA,@R0;A←aMOVR1,A;暫存R1←A=aINCR0CLRC;清CSVBBA,@R0;A←a-bJNCLA;a≥b時c=0轉(zhuǎn)LASM:MOVA,@R0;a<bR1←bDECR0XCHA,@R050H←大數(shù)b,A←小數(shù)MOV51H,A;51H←小數(shù)LA:SJMP$END例3.N=128的分支程序,已知R3的值為00—7F中的一個,編寫出根據(jù)R3中的值轉(zhuǎn)移到相應(yīng)分支程序去執(zhí)行的程序。算法:先在外部ROM存儲器內(nèi)安排一張始地址為BRTAB的絕對轉(zhuǎn)移指令表,要求BRTAB的低8位地址為00H,表中連續(xù)存放128條兩字節(jié)絕對轉(zhuǎn)移指令的指令碼,其中操作碼字節(jié)在偶地址單元。,且地址偏移量正好是R3中相應(yīng)值的兩倍。如圖所示,每條絕對轉(zhuǎn)移指令的目標(biāo)轉(zhuǎn)移地址ROUTnn是第nn分支程序的入口地址,且ROUT00—ROUT127在同一個2KB范圍內(nèi)。BRTAB+00HAJMPROUT00BRTAB+02HAJMPROUT01BRTAB+FEHAJMPROUT127ORG2100HMOVA,R3;R3中值送ARLA;A←A*2MOVDPTR,#BRTAB;絕對轉(zhuǎn)移指令表地址送DPTRJMP@A+DPTR:BRTAB:AJMPROUT00AJMPROUT01AJMPROUT02:AJMPROUT127END復(fù)習(xí)思考題、作業(yè)題1、寫出程序設(shè)計的基本步驟。2、匯編語言程序的主要類型有那些?3、編寫一個程序,將片內(nèi)RAM30H開始的16個單元內(nèi)的數(shù)據(jù)傳遞給片外RAM3000H開始的16個單元,并畫出程序框圖。下次課預(yù)習(xí)要點 循環(huán)類指令的使用、子程序的設(shè)計、查表程序和延時程序的設(shè)計。實施情況及教學(xué)效果分析本次課內(nèi)容較多,應(yīng)通過編程練習(xí)使學(xué)生進一步掌握MCS-51系列單片機的匯編語言程序設(shè)計的一般規(guī)范,匯編語言源程序的格式,順序程序、分支程序結(jié)構(gòu)程序的設(shè)計方法。學(xué)院審核意見學(xué)院負責(zé)人簽字年月日

授課時間2007年10月24日、31日第7、8次課授課章節(jié)§4-3循環(huán)與子程序設(shè)計§4-4查表和延時程序任課教師及職稱盧洪武教授教學(xué)方法與手段課堂講授,配合多媒體課件,課間安排15分鐘進行課間討論。課時安排6課時《單片機原理及應(yīng)用》,張毅剛編著,哈爾濱工業(yè)大學(xué)出版社?!秵纹瑱C原理及接口技術(shù)》,李全利、遲榮強編著,清華大學(xué)出版社,(十五國家級規(guī)劃教材)。教學(xué)目的與要求:1、數(shù)據(jù)循環(huán)類指令的使用2、掌握子程序的設(shè)計3、掌握查表程序和延時程序的設(shè)計教學(xué)重點,難點:循環(huán)移位指令、條件轉(zhuǎn)移指令、間接轉(zhuǎn)移指令,延時時間的計算。教學(xué)內(nèi)容:一、循環(huán)程序循環(huán)程序的特點是程序中含有可以重復(fù)執(zhí)行的程序段。循環(huán)程序由以下四個部份組成:1、循環(huán)初始化循環(huán)初始化程序段位于循環(huán)程序開頭,用于完成循環(huán)前的準(zhǔn)備工作,例如:給循環(huán)體中循環(huán)計數(shù)器和各工作寄存器設(shè)置初值,其中循環(huán)計數(shù)器用于控制循環(huán)次數(shù)。2、循環(huán)處理這部份程序位于循環(huán)體內(nèi),是循環(huán)程序的工作程序,需要反復(fù)執(zhí)行。3、循環(huán)控制循環(huán)控制也在循環(huán)體內(nèi),常常由循環(huán)計數(shù)器修改和條件轉(zhuǎn)移指令組成,用于控制循環(huán)執(zhí)行次數(shù)。4、循環(huán)結(jié)束這部份用于存放循環(huán)程序所得結(jié)果以及恢復(fù)各工作單元的初值。循環(huán)可嵌套,稱多重循環(huán)。在多重循環(huán)中,只允許外重循環(huán)程序嵌套內(nèi)重循環(huán)程序,而不允許循環(huán)體互相交叉。例4:多個單字節(jié)數(shù)據(jù)求和。已知有10個單字節(jié)數(shù)據(jù),依次存放在內(nèi)部RAM60H單元開始的連續(xù)單元中,要求把運算結(jié)果存入R2、R3中(高位存R2,低位存R3中)。算法:用R0為間值寄存器,每做一次加法,R0加1,指向下一數(shù)據(jù)地址,R5為循環(huán)次數(shù)寄存器,控制循環(huán)次數(shù),和放在R2、R3中。ORG3000HSTART:MOVR0,#60H;設(shè)數(shù)據(jù)指針MOVR5,NUM;設(shè)計數(shù)初值MOVR2,#00HMOVR3#00H;和初值為0LOOP:MOVA,R3ADDA,@R0;加低8位數(shù)MOVR3,AJNCLOP1;無進位轉(zhuǎn)LOP1INCR2;有進位,高8位數(shù)和加1LOP1:INCR0;修改指針,指向下一數(shù)據(jù)DJNZR5LOOP;判循環(huán)結(jié)束否NUM:EQU0AHEND二、子程序子程序是具有完整功能的程序段。子程序在結(jié)構(gòu)上應(yīng)具有通用性和獨立性,在編寫子程序應(yīng)注意以下幾點:子程序的第一條指令地址稱為子程序的入口地址。該指令必須有標(biāo)號,標(biāo)號應(yīng)以子程序的任務(wù)定名,以便一看就一目了然。主程序調(diào)用子程序是通過安排在主程序的調(diào)用指令實現(xiàn)的,子程序返回主程序必須執(zhí)行安排在子程序末尾的一條RET返回指令。主程序調(diào)用子程序和子程序返回主程序,計算機能自動保護和恢復(fù)主程序的斷點地址(PC值)。但對于各工作寄存器、特殊功能寄存器和內(nèi)存單元中的內(nèi)容,如果需要保護和恢復(fù)必須在子程序開頭和末尾(RET指令前)安排一些能夠保護和恢復(fù)它們的指令。為使所編子程序可以放在64KB內(nèi)存的任何子域并能為主程序所調(diào)用,子程序內(nèi)部必須使用相對轉(zhuǎn)移指令而不使用其它指令,以便匯編時生成浮動代碼。子程序參數(shù)可分入口和出口參數(shù)兩類:入口參數(shù)是指子程序需要的原始參數(shù),由調(diào)用它的主程序通過約定的工作寄存器R0—R7、特殊功能寄存器SFR、內(nèi)存單元或堆棧等預(yù)先傳給子程序使用。出口參數(shù)是由子程序根據(jù)入口參數(shù)執(zhí)行程序后獲得的結(jié)果參數(shù),應(yīng)由子程序通過約定的工作寄存器R0—R7、特殊功能寄存器SFR、內(nèi)存單元或堆棧等預(yù)先傳給主程序。例:設(shè)M1和M2內(nèi)有兩數(shù)a和b。編寫求c=a2+b2并把c送入M3的程序。a、b為小于10的整數(shù)解:等式中a、b均求平方,因此將求平方編寫為一子程序。ORG1000HMAIN:MOVA,M1;入口參數(shù)a送AACALLSQR;求a2MOVR1,A;a2送R1MOVA,M2;入口參數(shù)b送AACALLSQR;求b2ADDA,R1;a2+b2送AMOVM3,A;和存入M3SJMP$SQR:ADDA,#01H;地址調(diào)整MOVCA,@A+PC;查平方表RET;返回TAB:DB0,1,4,9,16DB25,36,49,64,81一、查表程序在許多情況下,本來通過計算才能解決的問題也可改用查表的方法解決,而且要簡便得多。MCS-51單片機指令系統(tǒng)有兩條查表指令:MOVCA,@A+DPTRMOVCA,@A+PC使用DPTR作為基地址查表,可通過三步操作來完成:(1)、將所查表格的首地址存入DRTP數(shù)據(jù)指針寄存器(2)、將所查表的項數(shù)(即在表中的位置是第幾項)送到累加器A中(3)、執(zhí)行查表指令:MOVCA,@A+DPTR進行讀數(shù),查表結(jié)果送累加器A中。用PC內(nèi)容作為基址來查表操作如下:(1)、使用傳送指令把所查數(shù)據(jù)表格的項數(shù)送入A累加器。(2)使用ADDA,#data指令對累加器A進行修理。Data的值由下式確定:PC+data=數(shù)據(jù)表始值DTAB其中PC是查表指令MOVCA,@A+PC的下一條指令碼的始址。因此,data值實際上等于查表指令和數(shù)據(jù)表格之間的字節(jié)數(shù)。(3)、用查表指令MOVCA,@A+PC進行查表,查表結(jié)果送累加器A中。例:已知R0低四位有一個16進制數(shù)(0-F中一個),編寫把它轉(zhuǎn)換成相應(yīng)ASCⅡ碼并入R0的程序。方法1:由ASC碼字符表可知0—9的ASC碼為30H—39H,A—F的ASC碼為41H—46H。因此,求解思路為:若R0<=9,則R0內(nèi)容加30H,若R0>9,則R0加37H。相應(yīng)程序為:ORG1000HMOVA,R0;取轉(zhuǎn)換值到AANLA,#0FH;屏蔽高4位CJNEA,#10H,NEXT;A和10相比較NEXT:JNCNEXT2;若A>9則轉(zhuǎn)NEXT2ADDA,#30H;若A<10,則A←A+30HSJMPDONE;轉(zhuǎn)DONENEXT2:ADDA,#37H;A←A+37HDONE:MOVR0,A;存結(jié)果SJMP$END方法2查表法ORG1000HMOVA,R0;取轉(zhuǎn)換值到AANLA,#0FH;屏蔽高4位ADDA,#03H;;地址調(diào)整MOVCA,@A+PC;查表MOVR0,A;存結(jié)果SJMP$ASCTAB:DB0,1,2,3,4DB5,6,7,8,9DBA,B,C,D,E,F(xiàn)END二、延時程序在單片機控制應(yīng)用中,常需要定時,如定時中斷、定時檢測、定時掃描等。單循環(huán)定時程序指令周期MOVR5#TIMR1LOOP:NOP1NOP1DJNZR5,LOOP2RET定時時間:此子程序執(zhí)行一次需4個機器周期,一共循環(huán)TIME次,總執(zhí)行周期=1+4*(TIME-1)+2。若單片機的晶振頻率為6MHZ,振蕩周期為1/6us一個機器周期性是1/12=2us則一個循環(huán)的延遲時間為8us??傃舆t時間8*TIME,延范圍為8*1~8*256=8~2048us。2、較長時間的定時程序為了加長定時時間,通常采用多重循環(huán)的方法。指令周期MOVR5#TIME11LOOP2:MOVR4#TIME21LOOP1:NOP1NOP1DJNZR4,LOOP1

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論