(完整版)單片機(jī)電子教案_第1頁
(完整版)單片機(jī)電子教案_第2頁
(完整版)單片機(jī)電子教案_第3頁
(完整版)單片機(jī)電子教案_第4頁
(完整版)單片機(jī)電子教案_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第1講單片機(jī)應(yīng)用概述教學(xué)目的:1、初步了解單片機(jī)的發(fā)展歷史,基礎(chǔ)知識以及應(yīng)用范圍;2、通過演示單片機(jī)產(chǎn)品的實(shí)物來激發(fā)學(xué)生的學(xué)習(xí)興趣;3、了解單片機(jī)的發(fā)展方向和主流技術(shù)。重點(diǎn)、難點(diǎn):1、單片機(jī)的概念和特點(diǎn);2、單片機(jī)的主要發(fā)展方向和主流技術(shù);3、幾種常見的單片機(jī)產(chǎn)品。教學(xué)方式、步驟:一、課程介紹、學(xué)習(xí)的目標(biāo)、學(xué)習(xí)本課程的方法1、課程介紹單片機(jī)是當(dāng)今信息時代的產(chǎn)物,自20世紀(jì)70年代問世以來,以實(shí)時控制能力強(qiáng),成本低,體積小,受到人們的重視和關(guān)注,應(yīng)用很廣,發(fā)展很快。尤其在電子產(chǎn)品、工業(yè)控制等領(lǐng)域的應(yīng)用廣泛,已對人類社會產(chǎn)生了巨大的影響。單片機(jī)技術(shù)開發(fā)和應(yīng)用水平已成為衡量一個國家工業(yè)化發(fā)展水平的標(biāo)

2、志之一。由于單片機(jī)的廣泛使用使得社會對掌握單片機(jī)技術(shù)的人才的需求在不斷增加,目前全國普通工科大學(xué)均已經(jīng)將單片機(jī)課列為必修的專業(yè)(基礎(chǔ))課程。2、學(xué)習(xí)的目標(biāo)通過對孝感周邊相關(guān)電子企業(yè)(亞光電子公司、。六六集團(tuán)、四四。四廠等)的畢業(yè)生跟蹤調(diào)查和人才需求調(diào)研,相關(guān)工作崗位都對單片機(jī)應(yīng)用能力都提出了一定的要求。且不同的崗位對單片機(jī)應(yīng)用能力要求的高低不同。要求較高的崗位如電路聯(lián)調(diào)崗和電子線路設(shè)計助理工程師崗,對單片機(jī)的應(yīng)用能力要求如下:掌握常見單片機(jī)芯片及外圍芯片的功能和引腳分布;理解掌握單片機(jī)系統(tǒng)結(jié)構(gòu)、存儲器結(jié)構(gòu)、指令系統(tǒng),中斷、定時器、串行口、接口技術(shù)等重要概念和基本知識;具備一定的電子線路基本知識

3、,能看懂典型單片機(jī)外圍硬件的原理圖,并具備相應(yīng)的硬件線路調(diào)試的基本技能;能看懂程序流程圖,掌握程序調(diào)試的基本技能;具有基本的單片機(jī)編程能力;掌握單片機(jī)軟硬件聯(lián)調(diào)的基本技能;掌握單片機(jī)產(chǎn)品開發(fā)的基本流程和工藝。課程標(biāo)準(zhǔn):作為一門核心的專業(yè)基礎(chǔ)課程,本課程的專業(yè)目標(biāo)定位為:通過基于實(shí)際工作過程(項目制作)的項目導(dǎo)向、任務(wù)驅(qū)動的理論實(shí)踐一體化教學(xué)模式,教、做、學(xué)三者合一,使學(xué)生在做中學(xué),學(xué)中做,在理解掌握單片機(jī)系統(tǒng)結(jié)構(gòu)、存儲器結(jié)構(gòu)、指令系統(tǒng),中斷、定時器、串行口、接口技術(shù)和單片機(jī)初步應(yīng)用知識的基礎(chǔ)上,掌握智能電子應(yīng)用相關(guān)崗位所需要的單片機(jī)應(yīng)用系統(tǒng)的初步的應(yīng)用分析和軟硬件設(shè)計能力,掌握基本的編程和程序

4、調(diào)試能力,掌握單片機(jī)典型外圍硬件線路的分析與初步設(shè)計能力、硬件調(diào)試能力,掌握單片機(jī)系統(tǒng)的安裝和軟硬件聯(lián)調(diào)、故障診斷維護(hù)技能,掌握單片機(jī)產(chǎn)品開發(fā)的基本流程和工藝。在以上述單片機(jī)應(yīng)用能力培養(yǎng)為主線的教學(xué)過程中,還要注重學(xué)生職業(yè)能力的培養(yǎng),使學(xué)生畢業(yè)后能夠直接適應(yīng)單片機(jī)相關(guān)崗位的工作。3、學(xué)習(xí)本課程的方法(1)要學(xué)習(xí)別人成熟的設(shè)計思想,教學(xué)上采用:“授人以漁”的方法。(2)單片機(jī)中很多內(nèi)容可采用:記憶-理解-練習(xí)使用-再理解記憶-最后熟練使用的過程。(3)當(dāng)前單片機(jī)相關(guān)產(chǎn)品系列和型號很多,擺在初學(xué)者面前的問題是學(xué)習(xí)什么機(jī)型、怎樣學(xué)習(xí)效果更好?建議讀者選取資料多,應(yīng)用較廣的一種系列芯片的單片機(jī)進(jìn)行研究

5、。掌握相應(yīng)的技術(shù)后再學(xué)習(xí)別的單片機(jī)則會事半功倍。二、內(nèi)容:1、單片機(jī)的基礎(chǔ)知識,分類和典型應(yīng)用1.1定義:隨著大規(guī)模集成電路技術(shù)和計算機(jī)技術(shù)的飛速發(fā)展,把計算機(jī)的運(yùn)算器和控制器(即CPU),存儲器(程序存儲器和數(shù)據(jù)存儲器)和多種接口集成在一塊芯片上,稱為微處理器Microprocessor)。也叫微控制器,在我國習(xí)慣上又叫單片機(jī)。單片機(jī)的主要應(yīng)用領(lǐng)域(1)智能化產(chǎn)品單片機(jī)與傳統(tǒng)的機(jī)械產(chǎn)品相結(jié)合,使傳統(tǒng)的機(jī)械產(chǎn)品結(jié)構(gòu)簡單化,控制智能化,構(gòu)成新一代的機(jī)、電一代化產(chǎn)品。目前,廣泛用于工業(yè)自動控制,如數(shù)控機(jī)床、可編程順序控制、電機(jī)控制、工業(yè)機(jī)器人,離散與連續(xù)過程自動控制等;家用電器,如微波爐、電視機(jī)、

6、錄像機(jī)、音響設(shè)備、游戲機(jī)等;辦公設(shè)備,如傳真機(jī)、復(fù)印機(jī)、數(shù)碼相機(jī)等;電訊技術(shù)如調(diào)制解調(diào)器、聲像處理、數(shù)字濾波、智能線路運(yùn)行控制;在電傳、打印機(jī)設(shè)計中由于采用了單片機(jī),取代了近千個機(jī)械部件;用單片機(jī)控制空調(diào)機(jī),使制冷量無級調(diào)節(jié)的優(yōu)點(diǎn)得到了充分的發(fā)揮,并增加了多種報警與控制功能;用單片機(jī)實(shí)現(xiàn)了通信系統(tǒng)中的臨時監(jiān)控、自適應(yīng)控制、頻率合成、信道搜索等,構(gòu)成了自動撥號無線電話網(wǎng)、自動呼叫應(yīng)答設(shè)備及程控調(diào)度電話分機(jī)等等。(2)智能化儀表單片機(jī)引入到已有的測量、控制儀表后,能促進(jìn)儀表向數(shù)字化、智能化、多功能化、綜合化、柔性化發(fā)展,并使監(jiān)測、處理、控制等功能一體化,使儀表重量大大減輕,便于攜帶和使用。同時成本

7、低,提高了性能價格比,長期以來測量儀器中的誤差修正、線性化處理等難題也可迎刃而解。單片機(jī)智能儀表的這些特點(diǎn)不僅使傳統(tǒng)的儀器、儀表發(fā)生根本的變革,也給傳統(tǒng)的儀器、儀表行業(yè)技術(shù)改革帶來了曙光。(3)智能化測控系統(tǒng)測控系統(tǒng)特點(diǎn)是工作環(huán)境惡劣,各種干擾繁雜,而且往往要求控制實(shí)時,要求檢測與控制系統(tǒng)工作穩(wěn)定、可靠、抗干擾能力強(qiáng)。單片機(jī)最適合應(yīng)用于工業(yè)控制領(lǐng)域,可以構(gòu)成各種工業(yè)檢測控制系統(tǒng)。例如,溫室人工氣候控制、電鍍生產(chǎn)線自動控制系統(tǒng)等。在導(dǎo)航控制方面,如在導(dǎo)彈控制、魚雷制導(dǎo)、智能武器裝置、航天導(dǎo)航系統(tǒng)等領(lǐng)域中也發(fā)揮著不可替代的作用。(4)智能化接口通用計算機(jī)外部設(shè)備上已實(shí)現(xiàn)了單片機(jī)的鍵盤管理、打印機(jī)、

8、繪圖儀、掃描儀、磁盤驅(qū)動器、UPS等,并實(shí)現(xiàn)了圖形終端和智能終端。2、單片機(jī)的發(fā)展方向和幾種較為典型的單片機(jī)產(chǎn)品單片機(jī)的發(fā)展趨勢CPU的改進(jìn)存儲器的發(fā)展片內(nèi)I/O的改進(jìn)外圍電路內(nèi)裝化器件集成度的不斷提高,把眾多的外圍功能部件集成在片內(nèi)系統(tǒng)的單片化。低功耗化CMOS化CHMOS工藝??傊?,向高性能、高速、低壓、低功耗、低價格、外圍電路內(nèi)裝化方向發(fā)展。典型的單片機(jī)產(chǎn)品Intel公司在單片機(jī)的早期開發(fā)中,一直處于領(lǐng)先地位。因此我們以Intel公司的產(chǎn)品為例,介紹其較流行的三種系列產(chǎn)品的功能。MCS-48系列單片機(jī)MCS-51系列單片機(jī)如ATMEL公司AT89C51AT89C52等MCS-96系列單片

9、機(jī)另外,還有Philips公司各系列單片機(jī)、PIC(MICROCHIP公司)系列單片機(jī)、ST公司系列單片機(jī)、Motorola單片機(jī)等。3、單片機(jī)應(yīng)用和開發(fā)系統(tǒng)的知識三、演示:1、常見的單片機(jī)的不同形式的實(shí)物外形生物組織攤烤片機(jī)YT-7C型2、自主開發(fā)的亞光電子單片機(jī)產(chǎn)品脫水機(jī)ZT-12P23、其他單片機(jī)應(yīng)用實(shí)物使用教具:多媒體、單片機(jī)產(chǎn)品實(shí)物。第2講51單片機(jī)的結(jié)構(gòu)與引腳教學(xué)目的:1、熟悉51單片機(jī)的發(fā)展歷史;2、了解51單片機(jī)的結(jié)構(gòu);3、學(xué)習(xí)51單片機(jī)的引腳及其功能;4、了解常見的51系列單片機(jī)和增強(qiáng)型單片機(jī)重點(diǎn)、難點(diǎn):1、51單片機(jī)的內(nèi)部構(gòu)造;2、51單片機(jī)的引腳及其功能;3、增強(qiáng)型單片機(jī)

10、的功能和特點(diǎn)。教學(xué)方式和步驟:一、復(fù)習(xí):單片機(jī)的概念和組成二、授課內(nèi)容:1、51單片機(jī)的發(fā)展歷史和特點(diǎn)單片機(jī)的發(fā)展歷史單片機(jī)的初級階段:1976年Intel公司推出了8位的MCS-48系列的單片機(jī),以其體積小、重量輕、控制功能齊全和低價格的特點(diǎn),得到了廣泛的應(yīng)用,為單片機(jī)的發(fā)展奠定了堅實(shí)的基礎(chǔ)。單片機(jī)的發(fā)展階段:80年代初,Intel公司推出了8位的MCS-51系列的單片機(jī)高性能單片機(jī)發(fā)展階段:隨著控制領(lǐng)域?qū)纹瑱C(jī)性能要求的增加,出現(xiàn)了16位的單片機(jī),而且芯片內(nèi)部也增加了其他的性能。如Intel的MCS-96系列單片機(jī),在單片機(jī)內(nèi)部集成了A/D轉(zhuǎn)換器、PWM輸出。單片機(jī)的特點(diǎn):單片機(jī)具有集成度

11、高、體積小、功耗低、系列齊全、功能擴(kuò)展容易、使用靈活方便、抗干擾能力強(qiáng)、性能可靠、價格低廉等特點(diǎn)。用行話講叫“性/價”比高.2、51單片機(jī)的結(jié)構(gòu)2.1MCS-51的核心電路UAH地址apoPJQFtt施晶劇I週心癡涮哥存器罰沖iis罰和冇存購瑤時卿則nrms位:亠!IM|!一Oi4MjiLi一豐卜環(huán)卜甘卜4vFUvj%0PlFP3QF3F單片機(jī)8051內(nèi)部結(jié)構(gòu)框圖一個8位CPU;一個片內(nèi)振蕩器和時鐘電路;4K字節(jié)片內(nèi)部程序存儲器ROM;128字節(jié)片內(nèi)部數(shù)據(jù)存儲器RAM;可尋址64K外部程序存儲器;可尋址64K外部數(shù)據(jù)存儲器;21個特殊功能寄存器(專用寄存);32條可編程的I/O線(4個8位并行

12、I/O端口);兩個16位定時器/計數(shù)器;一個可編程全雙工串行口;具有5個中斷源,兩個優(yōu)先級嵌套中斷結(jié)構(gòu)。單片機(jī)各功能部件由內(nèi)部總線聯(lián)系在一起。簡化結(jié)構(gòu)如下圖所示時部裁旌定時!計鬱器內(nèi)諏腳癖然CPU(運(yùn)算腔吿I器外郵夠揭存儲黑RAM超V夔口PlP3P2P0時斡源COSC)厚行170撞口中斷歪甌MCS-51單片機(jī)結(jié)構(gòu)框圖2.2中央處理單元CPUCPU是單片機(jī)的核心部件,如上圖所示,各方框表示功能部件,可以看出本單片機(jī)是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成各種運(yùn)算,實(shí)現(xiàn)對單片機(jī)各功能部件的指揮和控制任務(wù),它是由運(yùn)算器和控制器等部件組

13、成的。各功能部件實(shí)際上是CPU的有機(jī)組成部分,各功能部件通過運(yùn)行程序相聯(lián)系(1)運(yùn)算器運(yùn)算器的功能是進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算,它還包含一個布爾處理器,用來處理位的操作。運(yùn)算器模塊包括算術(shù)和邏輯運(yùn)算部件ALU、布爾處理器,累加器ACC、B寄存器、暫存器TMP1和TMP2、程序狀態(tài)字寄存器PSW和十進(jìn)制數(shù)調(diào)整電路等。1、累加器ACC是一個最常用的專用寄存器。大部分單操作數(shù)據(jù)指令的操作數(shù)取自累加器。很多雙操作數(shù)指令中的一個操作數(shù)也取自累加器。加、減、乘、除算術(shù)運(yùn)算指令的運(yùn)算結(jié)果都存放在累加器A或AB寄存器對中。指令系統(tǒng)中用A作為累加器的助記符。2、B寄存器3、程序狀態(tài)字PSW程序狀態(tài)字記錄程序狀態(tài)信息

14、,反映程序運(yùn)算結(jié)果的特征,它是一個8位寄存器。其中PSW的1位未用,格式如下:(按D7DO順序排列)CyAcFORSRSOV-P10Cy(PSW.7)進(jìn)位標(biāo)志。在執(zhí)行某些算術(shù)和邏輯指令時,當(dāng)運(yùn)算結(jié)果的最高位有進(jìn)位或借位時,Cy將被硬件置位,否則就被清零。不同的是在布爾處理機(jī)中,它被認(rèn)為是位累加器,可由軟件置位或清零。AC(PSW.6)輔助進(jìn)位標(biāo)志。在進(jìn)行加法或減法操作中,當(dāng)?shù)?位數(shù)向高4位數(shù)有進(jìn)位或借位時,AC將被硬件置位,否則就被清零。AC被用于十進(jìn)制調(diào)整。FO(PSW.5)用戶定義標(biāo)志??捎捎脩糇屍溆涗洺绦驙顟B(tài),用作標(biāo)記,即用軟件使其置位或復(fù)位。RS1、RSO(PSW.4,PSW.3)工作

15、寄存器組選擇控制位??梢杂密浖梦换蚯辶?,以確定當(dāng)前工作寄存器組。O(PSW.2溢出標(biāo)志位。在對有符號數(shù)作加減運(yùn)算時,用C6表示D6位向D7位的進(jìn)位或借位,用C7表示D7位向更高位的進(jìn)位或借位,則OV標(biāo)志可由下式求得:OV=C6C7。OV=1表示加減運(yùn)算的結(jié)果超出了目的寄存器A所能表示的帶符號數(shù)的范圍(-128+127)。無符號數(shù)乘法指令MUL的執(zhí)行結(jié)果也會影響溢出標(biāo)志。若置于累加器A和寄存器B的兩個數(shù)的乘積超過255時(8位數(shù)),OV=1,否則OV=O。此積的高8位放在B內(nèi),低8位放在A內(nèi)。因此,OV=O時,只要從A中取得乘積即可,否則還要從B中取得乘積的高8位。除法指令DIV也會影響溢出標(biāo)

16、志,當(dāng)除數(shù)為O時,OV=1,否則OV=O。(PSW.0)奇偶標(biāo)志。每個指令周期都由硬件來置位或清零,以表示累加器A中有1的位數(shù)的奇偶數(shù)。若1的位數(shù)為奇數(shù),則P置位,否則清零。該標(biāo)志位對串行通信中的數(shù)據(jù)傳輸有重要意義。和數(shù)學(xué)中的數(shù)據(jù)本身的奇偶性有區(qū)別。當(dāng)A=1O1O1OOOB時,因數(shù)中是三個1使P置位。在數(shù)據(jù)傳輸時,當(dāng)把一批數(shù)的P位和原8位放在一起構(gòu)成9位數(shù),這批9位數(shù)中1的個數(shù)應(yīng)全為偶數(shù)。接收端如收到的數(shù)沒有偶數(shù)個1則認(rèn)為出錯。(2)控制器控制器部件是由指令寄存器、程序計數(shù)器PC,定時與控制電路等組成的。指令寄存器和譯碼指令寄存器中存放指令代碼。程序計數(shù)器PC程序計數(shù)器PC用來存放即將要執(zhí)行的

17、指令地址,共16位,可對64K程序存儲器直接尋址。定時與控制電路定時與控制電路是產(chǎn)生CPU操作時序的,它是單片機(jī)的心臟??刂聘鞣N操作的時間。8051芯片內(nèi)部有一個反向放大器所構(gòu)成的振蕩電路,XTAL1和XTAL2分別為振蕩電路的輸入端和輸出端。放大器可以產(chǎn)生自激振蕩,此時時鐘由內(nèi)部方式產(chǎn)生。當(dāng)XTAL1接地,XTAL2接外部振蕩器時,時鐘由外部方式產(chǎn)生。2.38051內(nèi)部ROM存儲器ROM:ReadOnlyMemory一般用于存放程序和表格等不常改變的數(shù)據(jù)8051單片機(jī)的ROM是掩摸ROM容量:4096byte(212)地址范圍:0000H1FFFH2.48051內(nèi)部的RAM存儲器RAM:Ra

18、ndomAccessMemory一般用于存放程序執(zhí)行過程中產(chǎn)生的大量的臨時數(shù)據(jù),相當(dāng)于PC的內(nèi)存8051單片機(jī)的內(nèi)部RAM:容量:128字節(jié)地址范圍:00H7FH3、51單片機(jī)的引腳及功能pin丹門時鐘端P1.0匚P1.1匚Pl,2匚P1.3EP14E卩1.5LPl曲匚、P17匚fAST匚f(HD)P3.0E(TXD)PS.1匚麗而P3.2匚(iNTi)P3.S匚(TO)P3rd匚(Ti)P3.5匚仲帀)P3.6rkRD)P3.7匚XTAL2匚XTAL1匚一.GNDE14023933Q437S35635734a33932IC311t361229132&2?1E26覽551724柏2319222

19、021iIPo.3AD旬PQ5AD5P0.6IAD6VCCVPO.O衛(wèi)DOP0.1AD1E/WPPALE/PROGP2.7:A15)P2,eiA1iPa4(Ai2)P2.3A11)P2.2(A10)P2.1:A9)二IP2.0iA8)I4VCC(+W)pnn巴口4、當(dāng)前51單片機(jī)的發(fā)展方向和常見的51系列單片機(jī)5、增強(qiáng)型51單片機(jī)三課后小結(jié)使用教具:多媒體,51單片機(jī)產(chǎn)品實(shí)物。第3講8051單片機(jī)的存儲器教學(xué)目的:1、初布了解8051單片機(jī)內(nèi)部存儲器的結(jié)構(gòu);2、掌握8051單片機(jī)內(nèi)部ROM的結(jié)構(gòu)和資源分配情況3、掌握8051單片機(jī)內(nèi)部RAM的結(jié)構(gòu)和資源分配情況4、內(nèi)部低128B、SFP區(qū)的特點(diǎn)

20、及使用方法。教學(xué)重點(diǎn)、難點(diǎn):1、8051單片機(jī)內(nèi)部存儲器的結(jié)構(gòu)特點(diǎn)、資源分配幾訪問方式2、8051單片機(jī)內(nèi)部ROM程序入口區(qū)的特點(diǎn)和使用方法;3、8051單片機(jī)內(nèi)部RAM的結(jié)構(gòu);4、內(nèi)部低128B、SFP區(qū)的特點(diǎn)及訪問方式。教學(xué)方式與程序:復(fù)習(xí):授課內(nèi)容:1、單片機(jī)內(nèi)部的存儲器結(jié)構(gòu)存儲器是計算機(jī)的重要硬件之一,單片機(jī)存儲器結(jié)構(gòu)有兩種類型:一種是程序存儲器和數(shù)據(jù)存儲器統(tǒng)一編址,屬于普林斯頓結(jié)構(gòu),另一種是程序存儲器和數(shù)據(jù)存儲器分開編址的哈佛結(jié)構(gòu)。MCS-51采用的是哈佛結(jié)構(gòu)。存儲器具有的特點(diǎn)程序存儲器和數(shù)據(jù)存儲器截然分開,各有自己的尋址系統(tǒng),控制信號和特定的功能。程序存儲器只存放程序和始終要保留的

21、常數(shù),數(shù)據(jù)存儲器通常用來存放程序運(yùn)行中所需要的大量數(shù)據(jù)。單片機(jī)中與存儲器有關(guān)的名稱有:程序存儲器和數(shù)據(jù)存儲器、內(nèi)部存儲器和外部存儲器、字節(jié)地址和位地址。存儲器有一定的容量,常把一個8位二進(jìn)制數(shù)作基本單位,叫作字節(jié)。存儲器有很多字節(jié)單元,也用二進(jìn)制數(shù)來標(biāo)識,叫地址。這些存儲器空間的地址多數(shù)從零開始編址。8位地址00HFFH,十六位地址0000HFFFFH。由于每一位十六進(jìn)制數(shù)可直接換成四位二進(jìn)制數(shù)(如0H0000B、9H1001B、FH1111B,其中H代表十六進(jìn)制數(shù)標(biāo)識符,B代表二進(jìn)制數(shù)標(biāo)識符),以后我們也把兩位十六進(jìn)制數(shù)說成是8位二進(jìn)制數(shù)工作寄存器以RAM形式組成,I/O接口也采用存儲器方式

22、工作。工作寄存器、I/O口鎖存器和數(shù)據(jù)存儲器RAM在單片機(jī)中統(tǒng)一編址。具有一個功能很強(qiáng)的布爾處理器,可尋址位空間有256位。MCS-51具有的存儲器編址空間MCS-51單片機(jī)寄儲器結(jié)構(gòu)如圖所示。有六個編址空間,有四個物理存儲器空間:即由PC作地址指針的片內(nèi)4K(OOOOH-OFFFH)程序存儲器。片外4K+60K(0000H-FFFFH)程序存儲器。由數(shù)據(jù)指針作地址的片外64K數(shù)據(jù)存儲器。片內(nèi)8位地址的128字節(jié)RAM(00H-7FH)和特殊功能寄存器(80H-FFH)。程序存儲器,片內(nèi)4K程序存儲器空間,其地址為0000H0FFFH,外部EPROM也從0000H開始編址。在地址0000H0F

23、FFH區(qū)間,地址有重疊,由EA引腳信號來控制內(nèi)、外程序存儲器的選擇。EA=0時,不管PC值的大小,CPU總是訪問外部程序存儲器。對于8031芯片,其內(nèi)部沒有程序存儲器,必然外接EPROM,所以EA必須接地,即EA=0時。外部程序存儲器從0000H開始編址,尋址范圍64K。當(dāng)EA=1時,先執(zhí)行內(nèi)部4K程序,滿4K后接著執(zhí)行外部程序。程序存儲器以16位的程序計數(shù)器PC作為地址指針可尋址64K字節(jié)空間范圍,PSEN作為程序存儲器的讀選通信號。程序存儲器也存放程序所需要的常數(shù)。單片機(jī)以指令形式的不同來區(qū)分是訪問程序存儲器,還是訪問數(shù)據(jù)存儲器,凡是從程序存儲器的常數(shù)表中取數(shù)據(jù)時,都要用查表指令MOVC形

24、式。2、8051單片機(jī)內(nèi)部ROM結(jié)構(gòu)、地址分布、資源利用復(fù)規(guī)口就沖馭口T沖瞅口:號I中斷扎口T1中斷扎口串口中斷扎口51系列單片機(jī)程序存儲器的管理:每個ROM單元(byte)對應(yīng)一個唯一的16bit地址編碼(Address)CPU要到某個ROM單元去取指令,是通過把地址寫入一個16bit的特殊功能寄存器一一程序計數(shù)器PC(ProgramCounter)來實(shí)現(xiàn),因此,51系列單片機(jī)的地址的編碼范圍(通常稱為尋址范圍):0000000000000000B1111111111111111B(二進(jìn)制)0000HFFFFH(十六進(jìn)制)065535(十進(jìn)制)通常習(xí)慣說51系列單片機(jī)的ROM尋址范圍是64K

25、PC的值是CPU根據(jù)用戶程序的運(yùn)行流程自動裝載的,它的值代表單片機(jī)下一條要執(zhí)行的指令在ROM中的存放位置,用戶不能直接對PC進(jìn)行操作3、8051單片機(jī)的內(nèi)部RAM的結(jié)構(gòu)內(nèi)那KAM外部SAMOfFKFHOOFFH003QH泗dH51系列單片機(jī)數(shù)據(jù)存儲器的管理:51系列單片機(jī)對數(shù)據(jù)存儲器RAM的管理是通過16bit的特殊功能寄存器DPTR(DataPointer)來實(shí)現(xiàn),每個RAM單元(byte)也對應(yīng)一個特定的地址編碼(Address),因此,51系列單片機(jī)的地址的編碼范圍(通常稱為尋址范圍):0000000000000000B1111111111111111B(二進(jìn)制)0000HFFFFH(十

26、六進(jìn)制)065535(十進(jìn)制)因此51系列單片機(jī)的RAM尋址范圍也是64K51系列單片機(jī)ROM和RAM的地址編碼范圍都是0000HFFFFH,但由于在尋址時硬件電路上有區(qū)別,所以不會混淆。51系列單片機(jī)中,單片機(jī)外接的接口芯片如A/D、D/A等都有互不相同的地址,這些地址都是占用單片機(jī)外部RAM的地址編號。4、內(nèi)部低128B、SFP區(qū)的地址分布、訪問方式MCS-51內(nèi)部有128個字節(jié)的數(shù)據(jù)存儲器RAM,它們可以作為數(shù)據(jù)緩沖器、堆棧、工作寄存器和軟件標(biāo)志等使用。CPU對內(nèi)部RAM有豐富的操作指令。在編程時經(jīng)常用到它們,內(nèi)部RAM地址為00H7FH,不同的地址區(qū)域內(nèi),規(guī)定的功能不完全相同。28字節(jié)

27、地址空間的RAM中不同的地址區(qū)域功能分配為:工作寄存器區(qū)(00H-1FH)、位地址區(qū)(20H-2FH)、堆棧和緩沖區(qū)(30H-7FH)、特殊功能寄存器SFR區(qū)(80HFFH),下面分別說明。工作寄存器區(qū)單片機(jī)的內(nèi)部工作寄存器以RAM形式組成,即工作寄存器包含在內(nèi)部數(shù)據(jù)存儲器中。地址為00H1FH單元,內(nèi)部RAM的低32字節(jié)分成4個工作寄存器區(qū),每一個區(qū)有8個工作寄存器,編號為R0R7。位尋址空間CPU不僅對內(nèi)部RAMR20H2FH這16個單元有字節(jié)尋址功能,而且具有位尋址功能(可以單獨(dú)讀寫某一位)。給這128位賦以位地址為00H7FH,CPU能直接尋址這些位。位地址空間字節(jié)地址寄存器名位地址2

28、FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4AH49H48H28H47H46H45H44H43H42H41H40H27H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H32H31H30H25H2FH2EH2DH2CH2BH2AH29H28H24H2

29、7H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH0EH0DH0CH0BH0AH09H08H20H07H06H05H04H03H02H01H00H堆棧和數(shù)據(jù)緩沖區(qū)原則上MCS-51單片機(jī)的堆??梢栽O(shè)在內(nèi)部RAM的任意區(qū)域內(nèi),但是一般設(shè)在30H7FH的范圍內(nèi)。棧頂?shù)奈恢糜啥褩V羔楽P指出。特殊功能寄存器SFR(專用寄存器)區(qū)MCS-51單片機(jī)內(nèi)除程序計數(shù)器(PC)和4個工作寄存器區(qū)外,所有其它寄存器如I/O口鎖存器、定時器、數(shù)據(jù)地址指針,各種控制寄存器都是以特殊功能寄存器(SFR)

30、的形式出現(xiàn)的。8051有21個特殊功能寄存器,它們離散地分布在80HFFH的地址空間內(nèi),并允許像訪問內(nèi)部RAM一樣方便地訪問特殊功能寄存器。使用教具:多媒體第4講8051單片機(jī)的時鐘、時序和復(fù)位教學(xué)目的:1、熟悉8051單片機(jī)內(nèi)部時鐘電路的結(jié)構(gòu);2、掌握單片機(jī)時序、復(fù)位的概念、復(fù)位的特點(diǎn)及實(shí)現(xiàn)方法。重點(diǎn)、難點(diǎn):1、8051單片機(jī)時鐘電路的構(gòu)成、時序;2、單片機(jī)復(fù)位的概念及特點(diǎn)。教學(xué)方式與程式:復(fù)習(xí):授課內(nèi)容:1、8051單片機(jī)時鐘電路的構(gòu)成CPU的功能,總的來說,就是以不同的方式,執(zhí)行各種指令。不同的指令其功能各異。有的指令涉及到CPU各寄存器之間的關(guān)系;有的指令涉及到單片機(jī)核心電路內(nèi)部各功能

31、部件的關(guān)系;有的則與外部器件(如外部存儲器)有關(guān)系。CPU是通過復(fù)雜的時序電路完成不同的指令功能的。事實(shí)上,控制器按照指令的功能發(fā)出一系列在時間上有一定次序的電脈沖信號,控制和啟動一部分邏輯電路,完成某種操作。在什么時刻發(fā)出什么控制信號,去啟動何種部件動作,這就是CPU的時序。CPU芯片設(shè)計一旦完成,“時序”就固定了,因而時序問題是CPU的核心問題之一。時鐘可看成是主頻,時序可看成是完成一個操作各部分電路產(chǎn)生的脈沖對照圖。1.1振蕩器和時鐘電路MCS-51片內(nèi)有一個高增益反相放大器,其輸入端(XTAL1)和輸出端(XTAL2)用于外接石英晶體和微調(diào)電容,構(gòu)成振蕩器,如圖所示。電容C2和C3對頻

32、率有微調(diào)作用,電容容量的選擇范圍一般為30pF士10pF。振蕩頻率的選擇范圍為1.212MHz。在使用外部時鐘時,8051XTAL2用來輸入外時鐘信號,而XTAL1則接地。單片機(jī)內(nèi)部的時間單位MCS-51完成一個基本操作叫機(jī)器周期,其一個機(jī)器周期包含12個時鐘周期,分為6個狀態(tài):S1S6.每個狀態(tài)又分為兩拍:P1和P2。因此,一個機(jī)器周期中的12個時鐘周期表示為SIP1,SIP2,S6P2。每個時鐘單片機(jī)完成一拍操作,當(dāng)用6MHZ晶體時一個機(jī)器周期為2ySF2TO51JS2;53tS4JS5iS&|SI|P1P2|P1J3P1P2IP2tPLT2|PlP2iPlP振蕩脈沖LrVdirLTLrA

33、LE址H寫令ro-対指命T5EH;AS-itJsX1AS-AL5振蕩周期=振蕩頻率(石英晶體頻率fosc)的倒數(shù)機(jī)器周期機(jī)器周期是單片機(jī)應(yīng)用中衡量時間長短的最主要的單位1機(jī)器周期=12x1/fosc指令周期執(zhí)行一條指令所需要的時間,單位:機(jī)器周期2、單片機(jī)內(nèi)部指令執(zhí)行的時序單片機(jī)執(zhí)行各種操作時,CPU都是嚴(yán)格按照規(guī)定的時間順序完成相關(guān)的工作,這種時間上的先后順序成為時序。V丁機(jī)霸兩聊31*32;3S;34t35*96JWWUWVWLTaaclJLL!rLsTL!rL!_rL1111I1ETIIT!FlF2ALE1JT卞機(jī)器罔廂kSI|S2|Sa;S4(35嚴(yán)JUUUUUUUUUW渙EJ-LSr

34、LSrLjfLSfLSrL丁1?Ti、Y-T單周期指令的操作時序雙周期指令的操作時序PlY2-ALEIL1JU.Virlk_Mmjitir_v./If1n11*180H,跳轉(zhuǎn)到DAYUBUDENG:SETBFLAG0;置位標(biāo)志位FLAG0DAYU:SETBFLAG1;置位標(biāo)志位FLAG1在上面這個程序片段中,帶下劃線的操作數(shù)指明了程序跳轉(zhuǎn)的目的位置,這個目的位置的PC相對于下一條程序語句的PC不得超出-128+127字節(jié)的范圍。4.7特定寄存器尋址例:INCA;累加器內(nèi)容加1.INCDPTR;數(shù)據(jù)指針DPTR的內(nèi)容加1.累加器A和數(shù)據(jù)指針DPTR這兩個使用最頻繁的寄存器又稱為特定寄存器,故稱特

35、定寄存器尋址.第6講指令功能及匯編語言程序設(shè)計(一)教學(xué)目的:1、設(shè)計范例循環(huán)彩燈的制作2、數(shù)據(jù)傳送類指令3、控制轉(zhuǎn)移指令4、延時程序的概念和程序設(shè)計5、子程序的概念和程序設(shè)計6、循環(huán)程序的概念和程序設(shè)計重點(diǎn)、難點(diǎn):1、設(shè)計范例循環(huán)彩燈的制作2、數(shù)據(jù)傳送類指令3、控制轉(zhuǎn)移指令4、延時程序的概念和程序設(shè)計5、子程序的概念和程序設(shè)計6、循環(huán)程序的概念和程序設(shè)計教學(xué)方式和步驟:一、復(fù)習(xí):單片機(jī)的指令系統(tǒng)和尋址方式二、授課內(nèi)容:1、設(shè)計范例循環(huán)彩燈的制作彩燈循環(huán)亮硬件原理圖JJT伽J5旳*他嗆IFJDPOT附眄MlPMEESET7KDm?RVLTP闿BWDTJLPitPMF材tnFMFHMLPan彩燈

36、循環(huán)亮硬件分析此電路核心件是MCS-51單片機(jī)(AT89C51)。包括時鐘電路、復(fù)位電路及輸出電路。用P1口作輸出口,直接驅(qū)動8只發(fā)光二極管。發(fā)光二極管是一種把電能轉(zhuǎn)換成光能的半導(dǎo)體器件它由PN節(jié)組成,在正向偏置的條件下導(dǎo)通,此時會發(fā)射出一定波長的光1.2軟件設(shè)計(程序)STAT:MOVA,#01H;高電平對應(yīng)的發(fā)光二極管亮LOOP:MOVP1,A;從P1口輸出到發(fā)光二極管MOVR1,#10DEL1:MOVR2,#200DEL2:MOVR3,#126DEL3:DJNZR3,DEL3DJNZR2,DEL2DJNZR1,DEL1RLALJMPLOOP;左移一位,下一個發(fā)光二極管亮END彩燈循環(huán)亮軟

37、件分析此程序包含了傳送類指令、控制轉(zhuǎn)移類指令、移位指令此程序包含了延時程序、循環(huán)程序2、指令講解(數(shù)據(jù)傳送類指令和控制轉(zhuǎn)移指令)2.1傳送類指令(1)片內(nèi)數(shù)據(jù)傳送指令(16條)此類指令參入的源操作數(shù)和目的操作數(shù)有#data/A/Rn/Ri/direct五個,其不同組合,共有15條指令(2)片外數(shù)據(jù)傳送指令(4條)當(dāng)你想把一個數(shù)送到單片機(jī)外部擴(kuò)展RAM的某個單元或外部擴(kuò)展I/O口某個端口,或者你想從該單元、端口將數(shù)據(jù)取回到單片機(jī)內(nèi)部的時候,就要用到片外數(shù)據(jù)傳送指令。MOVXA,Ri;A(Ri)片外MOVXRi,A;(Ri)片外AMOVXA,DPTR;A(DPTR)片夕卜MOVXDPTR,A;(D

38、PTR)片外A單片機(jī)與外部數(shù)據(jù)存儲器數(shù)據(jù)傳送采用兩種尋址方式,這兩種尋址形式都是間接尋址。一種是單字節(jié)尋址Ri,一種是雙字節(jié)尋址DPTR,另一個操作數(shù)是A.共有4條指令。(3)數(shù)據(jù)交換指令(5條)指令:XCHA,byte功能:交換累加器與字節(jié)變量中的數(shù)據(jù)。XCH指令把指定字節(jié)的內(nèi)容裝入累加器A中,同時把累加器中原來的內(nèi)容寫入指定的字節(jié)中。源操作數(shù)有Rn/direct/Ri,目的操作數(shù)是A,共三條指令。例2.5設(shè)RO寄存器內(nèi)容為20H,累加器A內(nèi)容為3FH,內(nèi)部RAM的20H單元內(nèi)容為75H,若執(zhí)行指令:XCHA,RO則結(jié)果為:(20)=3FH,(A)=75H指令:XCHDA,Ri功能:低半字節(jié)

39、數(shù)據(jù)交換,執(zhí)行操作(A3-0)(Ri)3-0)說明:累加器A中的低4位與由指定的寄存器間接尋址的內(nèi)部RAM單元的低4位數(shù)據(jù)進(jìn)行交換。該指令不影響各寄存器的高4位,也不影響標(biāo)志位。例設(shè)RO內(nèi)容為20H,累加器內(nèi)容為36H,內(nèi)部RAM的20H單元內(nèi)容為75H,若執(zhí)行指令XCHDA,RO其結(jié)果為(20H)=0111011=76H(A)=00110101B=35H指令:SWAPAA的高四位和其低四位交換,如:當(dāng)A內(nèi)容為36H時執(zhí)行SWAPA后A為63H堆棧指令指令PUSHdirect功能:把程序的中間數(shù)據(jù)送入堆棧,稱為進(jìn)棧。說明:首先棧指針自動加I,執(zhí)行(SP)-(SP)+1將棧指針移向堆棧中的無數(shù)據(jù)

40、字節(jié),然后將直接地址(direct)單元的內(nèi)容送入SP所指向的棧單元中,執(zhí)行(SP)(direct),不影響標(biāo)志位。例設(shè)堆棧指針為09H,數(shù)據(jù)指針內(nèi)容為0123H,試分析下列指令的執(zhí)行結(jié)果。PUSHDPLPUSHDPH執(zhí)行結(jié)果為:(0AH)=23H,(0BH)=01H,(SP)=0BH指令:POPdirect功能:把堆棧中的中間數(shù)據(jù)送入目的字節(jié),稱為出棧。說明:讀出由棧指針尋址的內(nèi)部RAM單元內(nèi)容。送到指定的直接尋址的字節(jié)單元,然后棧指針自動減1,即執(zhí)行操作:(direct)(SP),(SP)(SP)-1;指令執(zhí)行不影響標(biāo)志位。例設(shè)(SP)=32H,內(nèi)部RAM的31H,32H單元中的內(nèi)容分別為

41、23H,01H,試分析下列指令的執(zhí)行結(jié)果。POPDPHPOPDPL執(zhí)行結(jié)果為(DPTR)=0123H,(SP)=30H。2.2控制轉(zhuǎn)移指令(1)長轉(zhuǎn)移指令LJMP目標(biāo)語句說明:目標(biāo)語句可以是程序存儲器64KB空間的任何地方。(2)絕對轉(zhuǎn)移指令A(yù)JMP目標(biāo)語句例:4002HLJMPMM4600HMM:MOVA,#00H注意:目標(biāo)語句必須和當(dāng)前語句同頁。在51單片機(jī)中,64KB程序存儲器分成32頁,每頁2KB(7FFH)。(3)短跳轉(zhuǎn)指令SJMP目標(biāo)語句(rel)例:4060HSJMPLOOP4090HLOOP:MOVA,#0FFH注意:短跳轉(zhuǎn)的目標(biāo)語句地址必須在當(dāng)前語句向前127(7FH)字節(jié),

42、向后128(80H)字節(jié),否則在進(jìn)行程序編譯時會出錯。(4)減1條件轉(zhuǎn)移指令組DJNZRn,目標(biāo)地址(rel);如果(Rn)-l豐0,則程序跳轉(zhuǎn)到目標(biāo)語句,否則順序執(zhí)行下一條語句。DJNZdirect,目標(biāo)地址(rel);如果(direct)-l豐0則程序跳轉(zhuǎn)到目標(biāo)語句,否則順序執(zhí)行下一條語句。例:將8031內(nèi)部RAM的40H4FH單元置初值A(chǔ)0HAFH。程序?yàn)椋篗OVRO,#40H;RO賦值,指向數(shù)據(jù)單元MOVR2,#10H;R2賦值,為傳送字節(jié)數(shù)MOVA,#0A0H;A賦值LOOP:MOVRO,A;開始傳送INC,RO;修改地址指針I(yè)NCA;修改傳送數(shù)據(jù)DJNZR2,LOOP;未傳送完,繼

43、續(xù)循環(huán)傳送RET;否則,傳送結(jié)束3、程序設(shè)計方法的介紹(延時程序、子程序、循環(huán)程序)延時程序延時程序是一種應(yīng)用較為廣泛的小程序,一般采用多條語句循環(huán)執(zhí)行來實(shí)現(xiàn)延時。例1:當(dāng)前fosc=12MHz,試計算下面延時程序的延時時間。因?yàn)閒osc=12MHz,故T機(jī)=12/fosc=1usDEL1:MOVR3,#10;1個機(jī)器周期DEL2:NOP;1個機(jī)器周期NOP;1個機(jī)器周期DJNZR3,DEL2;2個機(jī)器周期t1=(IT機(jī)+1T機(jī)+2T機(jī))x10+1T機(jī)=41us例2:來看看下面這個程序能夠?qū)崿F(xiàn)的延時時間:T機(jī)=12/fosc=12/12MHz=1usDEL:MOVR5,#50DEL1:MOVR

44、4,#100DEL2:NOPNOPDJNZR4,DEL2DJNZR5,DELt1=(1T機(jī)+1T機(jī)+2T機(jī))x100+1T機(jī)=401ust2=(t1+2T機(jī))x50+1T機(jī)=12182us=20.151ms則部分范例程序?yàn)椋篛RG0000HMAIN:MOVP1,#0F9HDEL:MOVR7,#10DEL1:MOVR6,#123DEL2:MOVR5,#200DEL3:NOPNOPDJNZR5,DEL3DJNZR6,DEL2DJNZR7,DEL1MOVP1,#0A4HDEL:MOVR7,#10DEL1:MOVR6,#123DEL2:MOVR5,#200DEL3:NOPNOPDJNZR5,DEL3D

45、JNZR6,DEL2DJNZR7,DEL1MOVP1,#0B0H這樣一來,程序顯得有些冗長,對于這種在一個程序中反復(fù)出現(xiàn)的程序段,我們可以采用子程序的結(jié)構(gòu)來實(shí)現(xiàn)。子程序在程序中反復(fù)多次執(zhí)行的程序段,可編寫為子程序,在使用時通過主程序調(diào)用就可以使用它。這樣不但可以減少編程工作量,也縮短了程序的長度。開始Ji送丄的段碼王送2的段勰王延對1秒11速3肉轂碼1延時1秒1f隹q旳啟鵠rV迭5旳股謂L延時1打ORG0000HMAIN:CLRP3.2MOVP0,#0F9HLCALLDELMOVP0,#0A4HLCALLDELMOVP0,#0B0HLCALLDELMOVP0,#99HLCALLDELMOVP0

46、,#92HLCALLDELSJMPMAINDEL:MOVR7,#10DJNZR7,DEL1RETEND循環(huán)程序在程序中需要反復(fù)執(zhí)行的程序段,為了避免在程序中多次的編寫,可以通過利用條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令來控制程序的執(zhí)行。結(jié)構(gòu)流程圖一般如下圖所示:循環(huán)初始化:用于設(shè)計循環(huán)初值、循環(huán)次數(shù)循環(huán)體:程序中反復(fù)執(zhí)行的內(nèi)容循環(huán)控制:用于判斷循環(huán)是否結(jié)束(通常采用次數(shù)遞減的方法)開始總便均顯示完駟應(yīng)直初君戰(zhàn)惡陸定嵋壞反裁點(diǎn)亮一個二祕育狀態(tài)下移1位延對一段時何ORG0000HMAIN:MOVA,#01H;初始狀態(tài)MOVR0,#08;共8位L1:MOVP1,A;D1發(fā)光LCALLDEL;延時子程序RLA;狀態(tài)

47、下移1位DJNZR0,L1;循環(huán)判斷SJMPMAIN;循環(huán)4、程序設(shè)計一般步驟(1)分析課題,確定解決方案和算法(2)分配系統(tǒng)資源及存儲單元;(3)繪制程序流程圖;(4)設(shè)計程序,并反復(fù)調(diào)試和修改。彩燈循環(huán)設(shè)計幵始將第一個二粧音點(diǎn)亮將第二牛二鬣管點(diǎn)亮將第匹*二融營點(diǎn)亮將鴛丑個二巫營克亮將籌七小一蜒營點(diǎn)亮將篙八牛二巒晉點(diǎn)亮ORG0000HMAIN:MOVP1,#80H;D7發(fā)光MOVP1,#40H;D6發(fā)光MOVP1,#20H;D5發(fā)光MOVP1,#10H;D4發(fā)光MOVP1,#08H;D3發(fā)光MOVP1,#04H;D2發(fā)光MOVP1,#02H;D1發(fā)光MOVP1,#01H;D0發(fā)光SJMPMA

48、IN;循環(huán)択齋下移1位延時一段時間點(diǎn)蔬一亍二槻肯ORG0000HMAIN:MOVA,#01H;初始狀態(tài)MOVR0,#08;共8位L1:MOVP1,A;D1發(fā)光LCALLDEL;延時子程序RLA;狀態(tài)上移1位DJNZR0,L1;循環(huán)判斷SJMPMAIN;循環(huán)三課后小結(jié)第7講Keil軟件的使用教學(xué)目的:Keil軟件的使用與程序的調(diào)試操作重點(diǎn)、難點(diǎn):Keil軟件的使用與程序的調(diào)試操作教學(xué)方式和步驟:一、復(fù)習(xí):匯編語言程序設(shè)計二、授課內(nèi)容:1、Keil軟件系統(tǒng)概述KeilC51KeilC51是美國KeilSoftware公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性

49、、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。KeilC51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。KeilC51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。當(dāng)前提倡用C51開發(fā)單片機(jī)。KeiluVision2KeiluVision2是優(yōu)秀的單片機(jī)開發(fā)軟件之一,讀者可以向Keil公司代理周立功網(wǎng)站索取并下載得到,解壓后在Windows下運(yùn)行軟件包中的WINSetup.exe安裝,在桌面上有KeiluVision2圖標(biāo),點(diǎn)擊后出現(xiàn)如圖7.13所示界面,圖7.14是該軟件的一個漢化版界面圖。該集成軟件

50、開發(fā)平臺,具有匯編語言和C語言源代碼編輯、編譯、仿真于一體,它的人機(jī)界面友好,操作方便,是51單片機(jī)開發(fā)者的首選。2、KeilVision2軟件的運(yùn)行主要任務(wù)的操作過程(1)點(diǎn)擊軟件圖標(biāo)開機(jī),運(yùn)行KeiluVision2;(2)創(chuàng)建工程;鼠標(biāo)左鍵單擊主菜單“Project”項目命令菜單鼠標(biāo)左鍵單擊子菜單“NewProject”創(chuàng)建新項目彈出“CreatNewProject”對話框Window格式文件對話框,用鼠標(biāo)在“保存在”下拉框選擇你要保存的文件夾(比如“我的文檔”)。在“文件名”文本框處用鍵盤敲入你給這個工程起的工程名(如“test1”)。鼠標(biāo)左鍵單擊“保存”按鍵。彈出SelectDevi

51、ceforTargetTarget1對話框公司和CPU型號選擇。用鼠標(biāo)在左邊列表框“DataBase”區(qū)雙擊ATMEL或單擊ATMEL前的“+”號,ATMEL子選項展開選公司ATMEL,用鼠標(biāo)左鍵單擊“89C52”選擇項目所用CPU,用鼠標(biāo)左鍵單擊“確定”按鍵完成項目創(chuàng)建。(3)建立匯編程序源程序并編譯過程鼠標(biāo)左鍵單擊菜單“File”主菜單中的文件菜單,鼠標(biāo)左鍵單擊菜單“New”新建文件。在出現(xiàn)的文本窗口(Text1)中用鍵盤鍵入你的匯編程序。鼠標(biāo)左鍵單擊菜單File。Saveas在新建的文檔中鍵入你的匯編程序名稱。彈出SaveAs對話框。用鼠標(biāo)在保存在下拉框選擇你要保存的文件夾(比如我的文檔

52、)。在“文件名”文本框處用鍵盤敲入你給匯編程序文件名(如test1.asm)注意同時輸入擴(kuò)展名,并且是認(rèn)可的擴(kuò)展名。鼠標(biāo)左鍵單擊“保存”按鍵例如使P1.0輸出高低電平的源程序:ORG8000HLOOP:SETBP1.0LCALLDELAYCLRP1.0LCALLDELAYAJMPLOOPDELAY:MOVR7,#0F0HLOD1:MOVR6,#0F0HLOD2:DJNZR6,LOD2DJNZR7,LOD1RETEND在左邊資源管理器用鼠標(biāo)左鍵雙擊“Target1”或單擊“Target1”前的“+”號,鼠標(biāo)右鍵單擊SourceGroup。彈出“AddfiletoGroupSourceGroup1

53、”新建文件加入到項目組中?!拔募愋汀边x“asmsourcefile(*.a*)”:選擇文件類型C語言或匯編等。找到“test1.asm”文件,鼠標(biāo)左鍵單擊該文件,找到剛才輸入的文件鼠標(biāo)左鍵單擊Add加入工程項目中,鼠標(biāo)左鍵單擊“Close”:關(guān)閉對話框。編譯修改過的程序:鼠標(biāo)左鍵單擊主菜單“Project”,鼠標(biāo)左鍵單擊子下拉菜單中的“Builttarget”:編譯文件、生成應(yīng)用文件。輸出窗口顯示“”test1“-0Errors(s),0Warning(s)”:完成編譯,沒有誤如有錯誤,點(diǎn)擊輸出窗口中的提示行,鼠標(biāo)會跳到源程序所在窗口中的錯誤處則根據(jù)提示修改源程序,然后再編譯。用上述方法也可

54、打開已有的匯編程序進(jìn)行修改和編譯設(shè)置參數(shù)用鼠標(biāo)左鍵單擊主菜單“Project”項目和項目命令菜單用鼠標(biāo)左鍵單擊子菜單“OptionsforTargetTarget1”設(shè)置對象或文件工具選項窗口。彈出“OptionsforTargetTarget1”對話框。在“Target”標(biāo)簽下修改“Xtal(Mhz)”為“11.0592”。在“Output”標(biāo)簽下,選中“CreateHEXfile”(如果你要生成hex文件用編程器寫到目標(biāo)板)3、菜單和工具欄4、軟件調(diào)試與使用操作過程5、思考題三、課后小結(jié)第8講指令功能及匯編語言程序設(shè)計(二)教學(xué)目的:1、熟悉51單片機(jī)控制轉(zhuǎn)移類指令的特點(diǎn)及使用2、了解51

55、單片機(jī)子程序的設(shè)計方法3、掌握51單片機(jī)的數(shù)碼管循環(huán)顯示4、理解延時程序的設(shè)計和延時時間的計算方法重點(diǎn)、難點(diǎn):1、51單片機(jī)的數(shù)碼管循環(huán)顯示2、51單片機(jī)指令的功能及匯編語言程序設(shè)計3、指令延時計算方法教學(xué)方式和步驟:一、復(fù)習(xí):單片機(jī)指令系統(tǒng)二、授課內(nèi)容:1、設(shè)計范例數(shù)碼管循環(huán)顯示要求在數(shù)碼管上循環(huán)顯示數(shù)字15。pinpi.iPl.2Pl.3.Pl.4Fl5Pl.6Pl.7MCS51卑片機(jī)P血Q4-5V1234JDFY范例分析:硬件分析數(shù)碼管采用共陽極結(jié)構(gòu)。軟件設(shè)計設(shè)計中要求循環(huán)顯示15,很顯然應(yīng)采用循環(huán)的方法來實(shí)現(xiàn),最簡單的方法是將15的段碼依次由P0口送出。準(zhǔn)備程序0000HMAIN;CL

56、RPS;2MOVPO,#0F3HMOVPO,#0AHMQVP0?#OBOHMOVMOVPO,#92且SJMPMAIbT2、控制轉(zhuǎn)移類指令的特點(diǎn)及使用(1)長轉(zhuǎn)移指令LJMPAddr16功能:長距離無條件轉(zhuǎn)移指令說明:三字節(jié)指令,它直接將指令中的16位常數(shù)裝入PC,使程序無條件轉(zhuǎn)移到指定的地址處執(zhí)行。目標(biāo)語句可以是程序存儲器64KB空間的任何地方。(2)絕對轉(zhuǎn)移指令A(yù)JMPaddr11例:4002HAJMPMM4600HMM:MOVA,#00H注意:目標(biāo)語句必須和當(dāng)前語句同頁。在51單片機(jī)中,64KB程序存儲器分成32頁,每頁2KB(7FFH)。(3)短跳轉(zhuǎn)指令SJMP目標(biāo)語句(rel)例:40

57、60HSJMPLOOP4090HLOOP:MOVA,#0FFH注意:短跳轉(zhuǎn)的目標(biāo)語句地址必須在當(dāng)前語句向前127(7FH)字節(jié),向后128(80H)字節(jié),否則在進(jìn)行程序編譯時會出錯。(4)變址尋址轉(zhuǎn)移指令JMPA+DPTR該指令主要用于多分支的跳轉(zhuǎn)程序設(shè)計。跳轉(zhuǎn)的目標(biāo)地址是累加器A和數(shù)據(jù)指針DPTR之和,它可以是64KB存儲空間的任何地方。例根據(jù)標(biāo)志單元R2中的內(nèi)容,分別轉(zhuǎn)各個處理程序。程序如下:PJ1:MOVDPTR,#TAB1CLRCMOVA,R2ADDA,R2;(R2)256時,16位數(shù)據(jù)指針高8位加1NADD:JMPA+DPTRTAB1:LJMPPRG0;轉(zhuǎn)處理程序0的首地址LJMPR

58、RG1LJMPRRGn減1條件轉(zhuǎn)移指令組DJNZRn,目標(biāo)地址(rel);如果(Rn)-10,則程序跳轉(zhuǎn)到目標(biāo)語句,否則順序執(zhí)行下一條語句。DJNZdirect,目標(biāo)地址(rel);如果(direct)-10,則程序跳轉(zhuǎn)到目標(biāo)語句,否則順序執(zhí)行下一條語句。例將8031內(nèi)部RAM的40H4FH單元置初值A(chǔ)0HAFH。程序?yàn)椋篠TART:MOVRO,#40H;RO賦值,指向數(shù)據(jù)單元MOVR2,#10H;R2賦值,為傳送字節(jié)數(shù),十六進(jìn)制數(shù)MOVA,#0A0H;給A賦值LOOP:MOVRO,A;開始傳送INC,RO;修改地址指針,準(zhǔn)備傳下一數(shù)地址INCA;修改傳送數(shù)據(jù)值DJNZR2,LOOP;如果未傳

59、送完,則繼續(xù)循環(huán)傳送RET;當(dāng)R2的值減為0時,則傳送結(jié)束3、延時程序的設(shè)計和延時時間的計算方法延時程序是一種應(yīng)用較為廣泛的小程序,一般采用多條語句循環(huán)執(zhí)行來實(shí)現(xiàn)延時。例1:設(shè)計一延時程序,延時時間為1ms(fosc=12MHz)。例2:設(shè)計一延時250ms的程序已有上例所舉延時1ms子程序,調(diào)用250次,即得延時250ms子程序DELAY2:MOVR3,#FAHDEL3:ACALLDELAY1DEL2:NOPNOPDJNZR3,DEL3RET本段程序延時的時間為:1+(2+993+2)250+2=249253us誤差不到1ms思考:如何設(shè)計延時1s程序?4、子程序的設(shè)計方法子程序:在程序中反

60、復(fù)多次執(zhí)行的程序段,可編寫為子程序,在使用時通過主程序調(diào)用就可以使用它。這樣不但可以減少編程工作量,也縮短了程序的長度。4.2子程序的使用:子程序調(diào)用:指令:ACALLxxx;絕對調(diào)用,2KB范圍LCALLxxx;長調(diào)用,64KB范圍(2)子程序返回:指令:RET;子程序返回指令RETI;中斷子程序返回指令ORG2000HMAIN:CLRP3.2MOVP0,#0F9HLCALLDELMOVP0,#0A4HLCALLDELMOVP0,#0B0HLCALLDELSJMPMAINDEL:MOVR7,#10DEL1:MOVR6,#123DJNZR7,DEL1RETEND5、循環(huán)程序設(shè)計的基本方法循環(huán)程

溫馨提示

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

評論

0/150

提交評論