




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目1單片機(jī)控制的LED流水燈的設(shè)計(jì)和制作
任務(wù)1.1初識單片機(jī)任務(wù)1.2了解單片機(jī)中的數(shù)制與碼制
任務(wù)1.3學(xué)習(xí)MCS-51單片機(jī)的內(nèi)部配置和引腳功能任務(wù)1.4了解單片機(jī)的開發(fā)環(huán)境任務(wù)1.5學(xué)習(xí)單片機(jī)C51編程任務(wù)1.68位LED流水燈的控制設(shè)計(jì)與仿真下一頁任務(wù)1.1初識單片機(jī)1.1.1什么是單片機(jī)1.1.2單片機(jī)的應(yīng)用形式1.1.3單片機(jī)的發(fā)展歷程1.1.4單片機(jī)的主要產(chǎn)品種類1.1.5單片機(jī)的應(yīng)用領(lǐng)域上一頁下一頁返回1.1.1什么是單片機(jī)(原來的叫法SCM)嵌入式微控制器(MicroControllerUnit,MCU)上一頁下一頁返回1.1.2單片機(jī)的應(yīng)用形式
單片機(jī)只是一個(gè)單獨(dú)的集成芯片,我們?nèi)粘R姷降慕煌ㄐ盘枱艨刂啤ED漢字、圖形廣告屏、電梯控制等電子系統(tǒng)常把單片機(jī)作為核心控制芯片。在實(shí)際應(yīng)用中,需要把單片機(jī)和外部器件或被控對象進(jìn)行電氣連接,構(gòu)成一個(gè)單片機(jī)應(yīng)用系統(tǒng),并最終做成一塊PCB板(印刷電路板)。
看幾個(gè)例子:上一頁下一頁返回上一頁下一頁返回上一頁下一頁返回上一頁下一頁返回1.1.3單片機(jī)的發(fā)展歷程如果將8位單片機(jī)的推出作為起點(diǎn),那么單片機(jī)的發(fā)展歷史大致可分為以下幾個(gè)階段:第一階段(1976-1978):單片機(jī)芯片化探索階段。以Intel公司的MCS–48為代表。MCS–48推出的是在工業(yè)控制領(lǐng)域的探索,參與這一探索階段的還有Motorola、Zilog和Ti等大公司,它們都取得了滿意的探索效果。這就是SCM(SingleChipMicrocomputer)的誕生年代,單片機(jī)一詞即由此而來。這一時(shí)期的特點(diǎn)是:1)嵌入式計(jì)算機(jī)系統(tǒng)的芯片集成設(shè)計(jì);2)少資源、無軟件,只保證基本控制功能。
上一頁下一頁返回
第二階段(1978-1982):單片機(jī)的完善階段。Intel公司在MCS–48基礎(chǔ)上推出了完善的、典型的單片機(jī)系列MCS–51。它在以下幾個(gè)方面奠定了典型的通用總線型單片機(jī)體系結(jié)構(gòu)。
1)完善的外部總線。MCS-51設(shè)置了經(jīng)典的8位單片機(jī)的總線結(jié)構(gòu),包括8位數(shù)據(jù)總線、16位地址總線、控制總線及具有多機(jī)通信功能的串行通信接口。
2)CPU外圍功能單元的集中管理模式。
3)體現(xiàn)工控特性的位地址空間及位操作方式。
4)指令系統(tǒng)趨于豐富和完善,并且增加了許多突出控制功能的指令。
上一頁下一頁返回
第三階段(1982-1990):8位單片機(jī)的鞏固發(fā)展及16位單片機(jī)的推出階段,也是單片機(jī)向微控制器發(fā)展的階段。Intel公司推出的MCS–96系列單片機(jī),將一些用于測控系統(tǒng)的模數(shù)轉(zhuǎn)換器、程序運(yùn)行監(jiān)視器、脈寬調(diào)制器等納入片中,體現(xiàn)了單片機(jī)的微控制器特征。隨著MCS–51系列的廣泛應(yīng)用,許多電氣廠商競相使用80C51為內(nèi)核,將許多測控系統(tǒng)中使用的電路技術(shù)、接口技術(shù)、多通道A-D轉(zhuǎn)換部件、可靠性技術(shù)等應(yīng)用到單片機(jī)中,增強(qiáng)了外圍電路路功能,強(qiáng)化了智能控制器的特征。
上一頁下一頁返回第四階段(1990-):微控制器的全面發(fā)展階段。隨著單片機(jī)在各個(gè)領(lǐng)域全面、深入地發(fā)展和應(yīng)用,尤其是隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大提高,出現(xiàn)了高速、大尋址范圍、強(qiáng)運(yùn)算能力的8位/16位/32位通用型單片機(jī),以及小型廉價(jià)的專用型單片機(jī)。隨著INTELi960系列特別是后來的ARM系列的廣泛應(yīng)用,32位單片機(jī)迅速取代16位單片機(jī)的高端地位,并且進(jìn)入主流市場。而傳統(tǒng)的8位單片機(jī)的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。高端的32位Soc單片機(jī)主頻已經(jīng)超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價(jià)格跌落至1美元,最高端的型號也只有10美元。上一頁下一頁返回目前,單片機(jī)正在向微型化、低功耗、大容量、高性能、低價(jià)格、高集成度、多資源、網(wǎng)絡(luò)化、專用型方向發(fā)展,主要表現(xiàn)出幾大趨勢:1)采用多核CPU提高處理能力。2)加大存儲容量,采用新型存儲器方便用戶擦寫程序及數(shù)據(jù),加強(qiáng)程序的保密措施。3)單片機(jī)內(nèi)部所集成的部件越來越多,和模擬電路結(jié)合越來越緊密,使其應(yīng)用水平不斷提高。如NS(美國國家半導(dǎo)體)公司的單片機(jī)已把語音、圖像部件也集成到單片機(jī)中。4)通信和聯(lián)網(wǎng)功能不斷加強(qiáng)。5)集成度不斷提高,功耗越來越低,電源電壓范圍加寬。上一頁下一頁返回單片機(jī)系統(tǒng)已經(jīng)不再只在裸機(jī)環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機(jī)上。而在作為掌上電腦和手機(jī)核心處理的高端單片機(jī)甚至可以直接使用專用的Windows和Linux操作系統(tǒng)。隨著半導(dǎo)體工藝技術(shù)的發(fā)展及系統(tǒng)設(shè)計(jì)水平的提高,單片機(jī)還會(huì)不斷產(chǎn)生新的變化和進(jìn)步,最終人們可能發(fā)現(xiàn),單片機(jī)與微機(jī)系統(tǒng)之間的距離越來越小,甚至難以辨認(rèn)。1.1.4單片機(jī)的主要產(chǎn)品種類1.單片機(jī)的分類單片機(jī)作為計(jì)算機(jī)發(fā)展的一個(gè)重要分支領(lǐng)域,根據(jù)目前發(fā)展情況,從不同角度單片機(jī)大致可以分為通用型/專用型、總線型/非總線型、工控型/家電型及復(fù)雜指令集/精簡指令集類型。
上一頁下一頁返回2.單片機(jī)的主要產(chǎn)品及特點(diǎn)自單片機(jī)誕生以來,其產(chǎn)品得到了迅猛的發(fā)展,形成了多公司、多系列、多型號的局面,但目前使用最多的仍是8位單片機(jī),而在8位單片機(jī)中,最具典型意義的當(dāng)屬Intel公司的MCS-51系列單片機(jī)。MCS-51以其典型的結(jié)構(gòu)和完善的總線專用寄存器的集中管理,眾多的邏輯位操作功能及面向控制的豐富的指令系統(tǒng),堪稱為一代“名機(jī)”,為以后的其它單片機(jī)的發(fā)展奠定了基礎(chǔ)。20世紀(jì)80年代中期后,Intel公司以專利轉(zhuǎn)讓的形式將MCS-51的內(nèi)核賣給了ATMEL、PHILIPS等公司,后者生產(chǎn)與MCS-51兼容,使用MCS-51指令系統(tǒng)的單片機(jī),我們把這些公司生產(chǎn)的與MCS-51兼容的單片機(jī)統(tǒng)稱為51系列。一直到現(xiàn)在51系列單片機(jī)仍是應(yīng)用的主流產(chǎn)品,具有基礎(chǔ)和典型意義,1.Intel公司MCS-51系列單片機(jī)MCS-51是指由美國Intel公司生產(chǎn)的一系列單片機(jī)的總稱,這一系列單片機(jī)包括很多品種,其中8051是最早、最典型的產(chǎn)品,該系列其它單片機(jī)都是在8051的基礎(chǔ)上進(jìn)行功能的增、減、改變而來的。MCS-51系列單片機(jī)分為兩大子系列,即51子系列與52子系列。51子系列:基本型,根據(jù)片內(nèi)ROM的配置,對應(yīng)的芯片為8031、8051、8751。52子系列:增強(qiáng)型,根據(jù)片內(nèi)ROM的配置,對應(yīng)的芯片為8032、8052、8752。上一頁下一頁返回2.89系列單片機(jī)89系列單片機(jī)與MCS-51系列單片機(jī)指令和引腳完全兼容,是目前市場占有率第一的單片機(jī),已成為用戶的首選主流機(jī)型,其主要特征為采用了可反復(fù)電擦寫的片內(nèi)Flash程序存儲器,能方便地實(shí)現(xiàn)單片系統(tǒng)、擴(kuò)展系統(tǒng)、多機(jī)系統(tǒng)。市場上主要有美國Atmel公司的AT89系列單片機(jī)和荷蘭Philips公司的P89系列單片機(jī),兩公司的產(chǎn)品類似。(1)美國Atmel公司的AT89系列單片機(jī)
是與MCS—51系列單片機(jī)兼容的低功耗高性能8位Flash單片機(jī)。Atmel公司的AT89系列單片機(jī)有多種型號,但以AT89X51和AT89X52為代表。上一頁下一頁返回AT89S和AT89C相比新增加了以下功能:支持在系統(tǒng)程序設(shè)計(jì)ISP,使生產(chǎn)及維護(hù)更方便;增加了片內(nèi)看門狗,使用戶的應(yīng)用系統(tǒng)更堅(jiān)固;雙數(shù)據(jù)指針DPTR0和DPDR2,,方便了對外部RAM的訪問方便;速度更高,最高可使用33MHZ的晶振;(2)荷蘭Philips公司的P89系列單片機(jī)也是一種8位的Flash單片機(jī),與Atmel的89系列產(chǎn)品類似。3.Motorola公司MC68HC系列單片機(jī)MC68HC系列單片機(jī)是8位單片機(jī),但是它與51系列單片機(jī)不兼容,程序指令也不相同。4.Microchip(微芯)公司的PIC系列單片機(jī)PIC單片機(jī)是由美國Microchip(微芯)公司推出的8位高性能單片機(jī),該系列單片機(jī)是首先采用RISC結(jié)構(gòu)的單片機(jī)系列。PIC的指令集只有35條指令,四種尋址方式。同時(shí)指令集中的指令多為單字節(jié)指令。指令總線和數(shù)據(jù)總線分離,允許指令總線寬于數(shù)據(jù)總線,即指令線為14位,數(shù)據(jù)線為8位。PIC有的型號單片機(jī)只有8個(gè)引腳,為世界上最小的單片機(jī)。PIC單片機(jī)的主要特點(diǎn)是:精簡了指令集,使得指令少,執(zhí)行速度快。同時(shí),功耗低,驅(qū)動(dòng)能力強(qiáng),有的型號還具有I2C和SPI串行口總線端口,有利于單片機(jī)串行總線擴(kuò)充外圍器件。1.1.5單片機(jī)的應(yīng)用領(lǐng)域由于單片機(jī)的種種優(yōu)點(diǎn)和特性,其應(yīng)用領(lǐng)域無所不至,無論是工業(yè)部門、民用部門和家用等領(lǐng)域,處處可以見到它的身影。主要應(yīng)用于以下幾個(gè)方面:1.在智能儀表中的應(yīng)用這是單片機(jī)應(yīng)用最多、最活躍的領(lǐng)域之一。在各類儀器儀表中引入單片機(jī),使儀器儀表智能化,提高測試的自動(dòng)化水平和精度,簡化儀器儀表的硬件結(jié)構(gòu),提高性價(jià)比。2.在工業(yè)方面的應(yīng)用上一頁下一頁返回單片機(jī)廣泛用于工業(yè)生產(chǎn)過程的自動(dòng)控制、物理量的自動(dòng)檢測與處理、工業(yè)機(jī)器人、智能傳感器、電機(jī)控制、數(shù)據(jù)傳輸?shù)阮I(lǐng)域中。3.家用電器現(xiàn)在的家用電器廣泛采用了單片機(jī)控制,從電飯煲、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備等。4.網(wǎng)絡(luò)和通信現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從電話機(jī)、小型程控交換機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動(dòng)電話、集群移動(dòng)通信、無線電對講機(jī)等。5.醫(yī)用設(shè)備領(lǐng)域單片機(jī)在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī)、各種分析儀、監(jiān)護(hù)儀、超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。上一頁下一頁返回6.模塊化系統(tǒng)某些專用單片機(jī)設(shè)計(jì)用于實(shí)現(xiàn)特定功能,從而在各種電路中進(jìn)行模塊化應(yīng)用,而不要求使用人員了解其內(nèi)部結(jié)構(gòu)。如音樂集成單片機(jī),音樂信號以數(shù)字的形式存于存儲器中,由微控制器讀出,轉(zhuǎn)化為模擬音樂電信號,類似于聲卡。在大型電路中,這種模塊化應(yīng)用極大地縮小了體積,簡化了電路,降低了損壞、錯(cuò)誤率,也方便于更換。7.汽車電子單片機(jī)在汽車電子中的應(yīng)用非常廣泛,例如汽車中的發(fā)動(dòng)機(jī)控制器,基于CAN總線的汽車發(fā)動(dòng)機(jī)智能電子控制器、GPS導(dǎo)航系統(tǒng)、ABS防抱死系統(tǒng)、制動(dòng)系統(tǒng)、胎壓檢測等。此外,單片機(jī)在工商、金融、科研、教育、電力、通信、物流和國防航空航天等領(lǐng)域也都有著十分廣泛的用途。上一頁下一頁返回任務(wù)1.2學(xué)習(xí)單片機(jī)中的數(shù)制與碼制1.2.1數(shù)制
1.十進(jìn)制在日常生活中,人們最常用的是十進(jìn)位計(jì)數(shù)制,即按照逢十進(jìn)一的原則進(jìn)行計(jì)數(shù)的,簡稱十進(jìn)制。特點(diǎn):基數(shù)為10,有0、1、2、3、4、5、6、7、8、9十個(gè)數(shù)碼,逢10進(jìn)1;各位的權(quán)為10i。以后綴D(Decimal)或什么都不加表示十進(jìn)制數(shù)。2.二進(jìn)制特點(diǎn):基數(shù)為2,有0,1兩個(gè)數(shù)碼,逢2進(jìn)1;各位的權(quán)為2i。以后綴B(Binary)表示二進(jìn)制數(shù)。但由于二進(jìn)制數(shù)書寫時(shí)位數(shù)太長,不方便閱讀和記憶,因而人們在書寫計(jì)算機(jī)的語言時(shí)多用十六進(jìn)制。3.十六進(jìn)制特點(diǎn):基數(shù)為16,有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六個(gè)數(shù)碼,其中A~F相當(dāng)于十進(jìn)制數(shù)的10~15,逢16進(jìn)1.上一頁下一頁返回1.2.2各種數(shù)制間的轉(zhuǎn)換1.J進(jìn)制轉(zhuǎn)換為十進(jìn)制方法:只需按權(quán)展開相加即可。例如:110110B=1×25+1×24+0×23+1×22+1×21+0×20=32+16+0+4+2+0=542.十進(jìn)制轉(zhuǎn)換為J進(jìn)制十進(jìn)制轉(zhuǎn)換為J進(jìn)制時(shí),必須將整數(shù)部分和小數(shù)部分分開轉(zhuǎn)換。整數(shù)部分的轉(zhuǎn)換:把十進(jìn)制的整數(shù)不斷地除以所需要的基數(shù)J,直至商為零,所得余數(shù)依倒序排列,就能轉(zhuǎn)換成以J進(jìn)制數(shù)的整數(shù)部分,這種方法稱為除基取余法。小數(shù)部分的轉(zhuǎn)換:將一個(gè)十進(jìn)制小數(shù)轉(zhuǎn)換成J進(jìn)制小數(shù)時(shí),可不斷地將十進(jìn)制小數(shù)部分乘以J,并取整數(shù)部分,直至小數(shù)部分為零或達(dá)到一定精度時(shí)為止,將所得整數(shù)依順序排列,就可以得到J進(jìn)制數(shù)的小數(shù)部分,這種方法稱為乘基取整法。例如:115.375D=1110011.011B116.84375D=74.DBH3.二進(jìn)制與十六進(jìn)制數(shù)的相互轉(zhuǎn)換由于二進(jìn)制的基數(shù)是2,而十六進(jìn)制的基數(shù)為16=24,4位二進(jìn)制數(shù)正好對應(yīng)一位十六進(jìn)制數(shù),其對應(yīng)關(guān)系如表1-4所示,因此二者之間的轉(zhuǎn)換十分方便。十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制:把十六進(jìn)制數(shù)中的每一位用4位二進(jìn)制數(shù)表示即可。二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制:以小數(shù)點(diǎn)為中心,整數(shù)部分從右向左,每4位二進(jìn)制數(shù)對應(yīng)為一位16進(jìn)制數(shù),整數(shù)部分不足4位高位加0;小數(shù)部分從左向右,每4位二進(jìn)制數(shù)對應(yīng)一位16進(jìn)制數(shù),小數(shù)部分不足4位低位加0。例如:7A.8H=01111010.1000=1111010.1B101011.011B=00101011.0110=2B.6H
1.2.3計(jì)算機(jī)中數(shù)的表示1.機(jī)器數(shù)與真值機(jī)器數(shù)是指機(jī)器中數(shù)的表示形式。它將數(shù)值連同符號位一起數(shù)碼化,表示成一定長度的二進(jìn)制數(shù),其長度通常為8的整數(shù)倍。機(jī)器數(shù)通常有兩種:有符號數(shù)和無符號數(shù)。有符號數(shù)的最高位為符號位,代表了數(shù)的正負(fù),其余各位用于表示數(shù)值的大??;無符號數(shù)的最高位不作符號位,所有各位都用來表示數(shù)值的大小。真值是指機(jī)器數(shù)所代表的實(shí)際正負(fù)數(shù)值。有符號數(shù)的符號數(shù)碼化的方法通常是將符號用“0正1負(fù)”的原則表示,并以二進(jìn)制數(shù)的最高位作為符號位。
上一頁下一頁返回2.有符號數(shù)的表示方法有符號數(shù)的表示方法有原碼、反碼和補(bǔ)碼三種。以下均以長度為8位的二進(jìn)制數(shù)表示有符號數(shù)。(1)原碼表示法將8位二進(jìn)制數(shù)的最高位(D7位)作為符號位(0正1負(fù)),其余七位D6~D0表示數(shù)值的大小。例如:X1=+1011101B[X1]原=01011101BX1=-1011101B[X1]原=11011101B有符號數(shù)的原碼表示范圍為?127~+127(FFH~7FH),其中0的原碼有兩個(gè)00H和80H,分別是+0的原碼和?0的原碼。原碼表示簡單,與真值轉(zhuǎn)換方便,但進(jìn)行加、減運(yùn)算時(shí)電路實(shí)現(xiàn)較為繁雜。上一頁下一頁返回2)反碼表示法正數(shù)的反碼與原碼相同,但負(fù)數(shù)的反碼其符號位不變,其余各數(shù)值位按位取反。例如:
X1=+1011101B[X1]反=01011101BX1=-1011101B[X1]反=10100010B+0的反碼為00000000B;
?0的反碼為11111111B;
+127的反碼為01111111B ?127的反碼為10000000B有符號數(shù)的反碼表示的范圍為?127~+127,其中0的反碼與原碼類似,也有兩個(gè)值。(3)補(bǔ)碼表示法上一頁下一頁返回正數(shù)的補(bǔ)碼與原碼相同,負(fù)數(shù)的補(bǔ)碼等于其反碼加1(即相應(yīng)數(shù)值的原碼按位取反,再加1)。例如:
X1=+1011101B[X1]補(bǔ)=01011101BX1=-1011101B[X1]補(bǔ)=10100011B有符號數(shù)補(bǔ)碼表示的范圍為?128~+127,其0的補(bǔ)碼只有一種表示,即+0=?0=00000000。當(dāng)有符號數(shù)用補(bǔ)碼表示時(shí),可以把減法轉(zhuǎn)換為加法進(jìn)行計(jì)算。原碼雖然簡單、直觀,但采用原碼進(jìn)行加減運(yùn)算時(shí),計(jì)算機(jī)的電路實(shí)現(xiàn)將比較復(fù)雜;如果采用補(bǔ)碼,就可以把減法變成加法運(yùn)算,省去了減法器,大大簡化了硬件電路。例如:25–12=25+【-12】補(bǔ)=13上一頁下一頁返回用二進(jìn)制運(yùn)算如下:00011001
+)11110100100001101因?yàn)樵?位機(jī)中,最高位D7的進(jìn)位已超出計(jì)算機(jī)字長的范圍,所以會(huì)因溢出而自然丟失。由此可見,在不考慮最高位產(chǎn)生進(jìn)位的情況下,作減法運(yùn)算與補(bǔ)碼相加的結(jié)果完全相同。對補(bǔ)碼運(yùn)算的結(jié)果仍為補(bǔ)碼,(13)補(bǔ)=00001101B。
1.2.4常用二進(jìn)制編碼1.BCD碼(BinaryCodeDecimal)計(jì)算機(jī)內(nèi)毫無例外地都使用二進(jìn)制數(shù)進(jìn)行運(yùn)算,但日常生活中,人們最熟悉的數(shù)制是十進(jìn)制,因此專門規(guī)定了一種以二進(jìn)制表示的十進(jìn)制數(shù)碼,稱為BCD碼,又稱二—十進(jìn)制編碼,它用四個(gè)二進(jìn)制位來儲存表示一個(gè)十進(jìn)制的數(shù)碼,使二進(jìn)制和十進(jìn)制之間的轉(zhuǎn)換得以快捷的進(jìn)行。因?yàn)?位二進(jìn)制數(shù)共有24=16種組合狀態(tài),故可選其中十種編碼來表示0~9十個(gè)數(shù)字,不同的選法對應(yīng)不同的編碼方案。2.ASCII碼美國標(biāo)準(zhǔn)信息交換碼簡稱ASCII(AmericanStandardCodeforInformationInterchange)碼,是由美國國家標(biāo)準(zhǔn)學(xué)會(huì)制定的標(biāo)準(zhǔn)的單字節(jié)字符編碼方案,它最初是美國國家標(biāo)準(zhǔn),用于表示在計(jì)算機(jī)中需要進(jìn)行處理一些字母、符號等西文字符編碼,現(xiàn)已被國際標(biāo)準(zhǔn)化組織(InternationalOrganizationforStandardization,ISO)定為國際標(biāo)準(zhǔn),稱為ISO646標(biāo)準(zhǔn)。任務(wù)1.3學(xué)習(xí)MCS-51單片機(jī)的內(nèi)部配置和引腳功能
1.3.1MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu) 1.3.2MCS-51單片機(jī)的引腳功能 1.3.3MCS單片機(jī)的存儲器結(jié)構(gòu) 1.3.4單片機(jī)最小系統(tǒng)的概念上一頁下一頁返回1.3.189S51單片機(jī)的內(nèi)部結(jié)構(gòu)89S51的內(nèi)部結(jié)構(gòu)如圖所示,其基本組成部分包括:上一頁下一頁返回適于控制應(yīng)用的8位CPU;一個(gè)片內(nèi)振蕩器及時(shí)鐘電路,最高工作頻率可達(dá)33MHz;4KBFlash程序存儲器;128B內(nèi)部數(shù)據(jù)存儲器(內(nèi)部RAM);可尋址64K外部數(shù)據(jù)存儲器空間及64K程序存儲器空間的控制電路;32根雙向可按位尋址的I/O口線;1個(gè)全雙工串行口;2個(gè)16位定時(shí)/計(jì)數(shù)器;5個(gè)中斷源,具有兩個(gè)優(yōu)先級;三總線(地址總線、數(shù)據(jù)總線、控制總線)。若程序存儲器帶有4KBROM/EPROM,即為8051/8751;若RAM/EPROM容量為256B/8KB,則為52子系列。上一頁下一頁返回1.3.2MCS-51單片機(jī)的引腳功能89S51單片機(jī)的封裝共分為PDIP、PLCC及PQFP三種形式,常用為PDIP封裝方式。其引腳如所示。上一頁下一頁返回PLCC:PlasticLeadedChipCarrierPQFP:PlasticQuadFlatPackage89S51共40個(gè)引腳,大致可分為四類:(1)電源引腳VCC:電源端,+5V。VSS:接地端(GND)。(2)時(shí)鐘電路引腳XTAL1:外接晶振輸入端。XTAL2:外接晶振輸出端。(3)I/O引腳P0.0~P0.7/AD0~AD7:一組8位漏極開路型雙向I/O口,也是地址/數(shù)據(jù)總線復(fù)用口。作輸入/輸出口用時(shí),必須外接上拉電阻,它可驅(qū)動(dòng)8個(gè)TTL門電路。當(dāng)訪問片外存儲器時(shí),用作地址/數(shù)據(jù)分時(shí)復(fù)用口線。上一頁下一頁返回P1.0~P1.7:一組內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,可驅(qū)動(dòng)4個(gè)TTL門電路。P2.0~P2.7/A8~A15:一組內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,可驅(qū)動(dòng)4個(gè)TTL門電路。當(dāng)訪問片外存儲器時(shí),用作高8位地址總線。P3.0~P3.7:一組內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口。出于芯片引腳數(shù)的限制,P3端口每個(gè)引腳具有第二功能。(4)控制線引腳RESET/VPD:復(fù)位端/備用電源輸入端。當(dāng)RESET端出現(xiàn)持續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí),可實(shí)現(xiàn)復(fù)位操作。VPD端可外接備用電源,以便在VCC掉電時(shí)向RAM供電。
/VPP
:片外程序存儲器選擇端/Flash存儲器編程電源。若要訪問外部程序存儲器則端必須保持低電平。VPP
端用于Flash存儲器編程時(shí)的編程允許電源+12V輸入端。上一頁下一頁返回ALE/ :地址鎖存允許端/編程脈沖輸入端。當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時(shí),ALE輸出脈沖用于鎖存P0口分時(shí)送出的低8位地址(下降沿有效)。不訪問外部存儲器時(shí),該端以時(shí)鐘頻率的1/6輸出固定的正脈沖信號,可用作外部時(shí)鐘。對內(nèi)部Flash存儲器編程期間,該引腳用于輸入編程脈沖。:讀片外程序存儲器選通信號輸出端。當(dāng)89S51從外部程序存儲器取指令時(shí),該腳有效(上升沿)。每個(gè)機(jī)器周期 均產(chǎn)生兩次有效輸出信號。上一頁下一頁返回1.3.3MCS-51單片機(jī)的存儲器結(jié)構(gòu)89S51單片機(jī)的存儲器配置在物理結(jié)構(gòu)上有4個(gè)存儲空間,如圖所示。(a)程序存儲器地址分配(b)數(shù)據(jù)存儲器地址分配上一頁下一頁返回單片機(jī)的程序存儲器一般用于存放編好的程序、表格和常數(shù)。其中,單片機(jī)內(nèi)部有4KB的程序存儲器,地址為0000H~0FFFH。片外最多可擴(kuò)展空間達(dá)64KB,地址為0000H~FFFFH,片內(nèi)與片外程序存儲器的最大尋址范圍為64K(即地址為0000H~FFFFH)。由于單片機(jī)的程序存儲器采用片內(nèi)、片外統(tǒng)一編址,則地址范圍為0000H~0FFFH是在片內(nèi)存儲器還是片外存儲器,取決于單片機(jī)外圍引腳EA的狀態(tài)。如果EA接高電平(即EA=1),表示0000H~0FFFH在片內(nèi)程序存儲器中;如果EA接低電平(即EA=0),則表示0000H~0FFFH在片外程序存儲器中。上一頁下一頁返回一般來說,對于有內(nèi)部程序存儲器的單片機(jī),應(yīng)將引腳端EA接高電平,使程序從內(nèi)部程序存儲器開始執(zhí)行。當(dāng)程序超出內(nèi)部程序存儲器的容量時(shí),自動(dòng)轉(zhuǎn)向外部程序存儲器1000H~FFFFH地址范圍執(zhí)行。89S51單片機(jī)執(zhí)行程序時(shí),是由程序計(jì)數(shù)器PC控制程序執(zhí)行的順序。單片機(jī)中的程序計(jì)數(shù)器PC(ProgramCounter)是一個(gè)16位的專用寄存器,用來存放即將執(zhí)行的下一條指令所在的地址。它具有自動(dòng)加1的功能。當(dāng)CPU要取指令時(shí),PC的內(nèi)容送至地址總線上,從PC所指向的存儲器地址中取出指令,PC內(nèi)容則自動(dòng)加1,指向下一條指令,以保證程序按順序執(zhí)行。上一頁下一頁返回當(dāng)單片機(jī)接通電源時(shí),PC會(huì)被復(fù)位為0000H,此時(shí),單片機(jī)從0000H開始將指令依次取出執(zhí)行。89S51的程序存儲器中有5個(gè)特殊地址單元,用于中斷程序的入口地址。0003H :外部中斷0入口地址000BH:定時(shí)/計(jì)數(shù)器0中斷入口地址0013H :外部中斷1入口地址001BH:定時(shí)/計(jì)數(shù)器1中斷入口地址0023H :串行口中斷入口地址上一頁下一頁返回?cái)?shù)據(jù)存儲器數(shù)據(jù)存儲器(RAM)用于存放運(yùn)算中間結(jié)果、數(shù)據(jù)暫存和緩沖、待調(diào)試的程序。數(shù)據(jù)存儲器在物理上和邏輯上都分為兩個(gè)地址空間:一個(gè)是由128B的片內(nèi)RAM和21個(gè)特殊功能寄存器(SFR)構(gòu)成的內(nèi)部數(shù)據(jù)存儲器,另一個(gè)是片外最大可擴(kuò)充64KB的數(shù)據(jù)存儲器,如前圖(b)所示。片外數(shù)據(jù)存儲器的使用通常出現(xiàn)在單片機(jī)內(nèi)部RAM容量不夠的情況下。擴(kuò)展容量可由用戶根據(jù)需要確定,最大可擴(kuò)充64K,地址范圍0000H~FFFFH。需要注意的是,89S51單片機(jī)擴(kuò)展的I/O接口與片外數(shù)據(jù)存儲器統(tǒng)一編址。使用片內(nèi)和片外數(shù)據(jù)存儲器時(shí)采用不同的指令加以區(qū)別。在訪問片內(nèi)數(shù)據(jù)存儲器時(shí),可使用MOV指令;要訪問片外數(shù)據(jù)存儲器可使用MOVX指令。對片外數(shù)據(jù)存儲器只能采用間接尋址方式,可使用R0、R1和DPTR作間址寄存器。R0、R1作為8位地址指針,尋址范圍為256B;而DPTR是16位地址指針,故尋址范圍可達(dá)64KB。上一頁下一頁返回89S51單片機(jī)的內(nèi)部數(shù)據(jù)存儲器只有地址為00~7FH共128BRAM可供用戶使用,與片內(nèi)RAM統(tǒng)一編址的80H~FFH地址空間中只有21個(gè)存儲空間被特殊功能寄存器(SFR)占用。1.片內(nèi)數(shù)據(jù)存儲區(qū)(00~7FH)片內(nèi)數(shù)據(jù)存儲區(qū)地址為00~7FH空間的使用劃分為工作寄存器區(qū)、位尋址區(qū)及用戶RAM區(qū)三部分。(1)工作寄存器區(qū)(00H~1FH)工作寄存器區(qū)共32個(gè)存儲單元,分為4組,每組由8個(gè)地址單元組成通用寄存器R0~R7。每組寄存器均可作為CPU當(dāng)前的工作寄存器,當(dāng)前工作寄存器可通過特殊功能寄存器中的程序狀態(tài)字PSW的RS1、RS0兩位進(jìn)行設(shè)置。例如,如果RS1RS0=01H,則表示選中了第1組,地址為08H~0FH構(gòu)成當(dāng)前的工作寄存器R0~R7。當(dāng)CPU復(fù)位后,自動(dòng)選中第0組工作寄存器。一旦選中了一組工作寄存器,其他3組的地址空間只能用于數(shù)據(jù)存儲器使用,不能作為寄存器使用。如果要使用必須重新設(shè)置RS1、RS0的狀態(tài)。上一頁下一頁返回(2)位尋址區(qū)(20H~2FH)位尋址區(qū)共16個(gè)字節(jié),每個(gè)字節(jié)8位,共128位,這128位用位地址編號,范圍為00H~7FH。這些位地址單元構(gòu)成了布爾處理器的存儲空間,其地址分布見下表所示。位尋址區(qū)既可采用位尋址方式訪問,也可以采用字節(jié)尋址方式。訪問,這種位尋址能力是51系列單片機(jī)一個(gè)重要特點(diǎn)。上一頁下一頁返回(3)用戶RAM區(qū)(30H~7FH)用戶RAM區(qū)共80個(gè)單元,可作為堆?;驍?shù)據(jù)緩沖使用。2.特殊功能寄存器(SFR)區(qū)(80H~FFH)89S51單片機(jī)中共有21個(gè)特殊功能寄存器(SFR),這些寄存器離散地分布在內(nèi)部數(shù)據(jù)存儲器的80H~FFH這128字節(jié)的地址空間中。對這些特殊功能寄存器只能采用直接尋址及位尋址,其中,地址為X0H和X8H的各寄存器可以位尋址,見下表所示。表中用“*”表示可位尋址的寄存器。上一頁下一頁返回上一頁下一頁返回上一頁下一頁返回這些特殊功能寄存器(SFR)都和單片機(jī)的相關(guān)部件有關(guān),如ACC、B、PSW與CPU有關(guān),SP、DPTR與存儲器有關(guān),P0~P3與I/O端口有關(guān),IP、IE與中斷系統(tǒng)有關(guān),TCON、TMOD、TH0、TL0、TH1、TL1與定時(shí)/計(jì)數(shù)器有關(guān),SCON、SBUF與串行口有關(guān),PCON與電源有關(guān)。這些SFR專門用來設(shè)置單片機(jī)內(nèi)部的各種資源,記錄電路的運(yùn)行狀態(tài),參與各種運(yùn)算及輸入/輸出操作。如設(shè)置中斷和定時(shí)器的工作方式、進(jìn)行并行及串行輸入/輸出等。下面簡述幾個(gè)常用的特殊功能寄存器的功能。(1)累加器ACCACC是一個(gè)具有特殊用途的8位寄存器,主要用于存放操作數(shù)或運(yùn)算結(jié)果。89S51指令系統(tǒng)中大多數(shù)指令的執(zhí)行都要通過累加器ACC進(jìn)行。因此,在CPU中,累加器的使用頻率是很高的。當(dāng)采用寄存器尋址時(shí),可用A表示累加器。(2)寄存器B寄存器B在乘、除法指令中用于暫存數(shù)據(jù)。乘法指令的兩個(gè)操作數(shù)分別取自于A和B,其結(jié)果存放在BA寄存器對中。具體應(yīng)用見第三章中的乘法、除法指令。上一頁下一頁返回(3)程序狀態(tài)字PSWPSW是一個(gè)可編程的8位寄存器,用來存放與當(dāng)前指令執(zhí)行結(jié)果相關(guān)的狀態(tài)。89S51有些指令的執(zhí)行會(huì)自動(dòng)影響PSW相關(guān)位的狀態(tài),在編程時(shí)要加以注意。同時(shí),PSW中某些位的狀態(tài)也可通過指令設(shè)置。PSW各標(biāo)志位的定義如下:CY:進(jìn)位標(biāo)志位。當(dāng)累加器A的最高位有進(jìn)位(加法)或借位(減法)時(shí),CY=1;否則CY=0。在布爾操作時(shí),它是各種位操作的“累加器”。CY在指令中常簡記為C。AC:輔助進(jìn)位標(biāo)志位。當(dāng)累加器A的D3位向D4位進(jìn)位或借位時(shí),AC=1;否則為0。有時(shí)AC也被稱為半進(jìn)位標(biāo)志。F0:用戶標(biāo)志位??梢愿鶕?jù)需要用程序?qū)⑵渲梦换蚯辶悖钥刂瞥绦虻霓D(zhuǎn)向。RS1、RS0:工作寄存器區(qū)選擇位。RS1、RS0可由指令置位或清零,用來選擇單片機(jī)的工作寄存器區(qū)。上一頁下一頁返回OV:溢出標(biāo)志位。當(dāng)有符號數(shù)采用補(bǔ)碼運(yùn)算時(shí),其結(jié)果超出范圍(?127~+128)時(shí),有溢出,OV=1;否則OV=0?!罕A粑弧:奇偶校驗(yàn)位。指示累加器A中操作結(jié)果的“1”的個(gè)數(shù)的奇偶性。凡是改變累加器A中內(nèi)容的指令均影響P標(biāo)志位。當(dāng)A中有奇數(shù)個(gè)“1”,則P=1;否則P=0。此標(biāo)志位對串行通信中的數(shù)據(jù)傳輸有重要的意義。在串行通信中常采用奇偶校驗(yàn)的方法來校驗(yàn)數(shù)據(jù)傳輸?shù)目煽啃浴#?)堆棧指針SP堆棧是存儲區(qū)中一個(gè)存放數(shù)據(jù)地址的特殊區(qū)域,主要是用來暫存數(shù)據(jù)和地址的,操作時(shí)按先進(jìn)后出的原則存放數(shù)據(jù),其生成方向由低地址到高地址。堆棧指針SP是一個(gè)8位特殊功能寄存器,指示堆棧的底部在片內(nèi)RAM中的位置。系統(tǒng)復(fù)位后,SP的初始值為07H。由于08H~1FH單元分屬于工作寄存器區(qū)1~3,一般將SP的初值改變至片內(nèi)RAM的高地址區(qū)(30H以上)。如圖所示。上一頁下一頁返回上一頁下一頁返回1.3.4單片機(jī)最小系統(tǒng)的概念在單片機(jī)實(shí)際應(yīng)用系統(tǒng)中,由于應(yīng)用條件及控制要求的不同,其外圍電路的組成各不相同。單片機(jī)的最小系統(tǒng)就是指在盡可能少的外部電路條件下,能使單片機(jī)獨(dú)立工作的系統(tǒng)。由于89S51內(nèi)部已經(jīng)有4KB的FlashE2PROM及128B的RAM,因此只需要接上時(shí)鐘電路和復(fù)位電路就可以構(gòu)成單片機(jī)的最小系統(tǒng),如圖所示。上一頁下一頁返回時(shí)鐘電路時(shí)鐘電路對單片機(jī)系統(tǒng)而言是必需的。由于單片機(jī)內(nèi)部是由各種各樣的數(shù)字邏輯器件(如觸發(fā)器、寄存器、存儲器等)構(gòu)成,這些數(shù)字器件的工作必須按時(shí)間順序完成,這種時(shí)間順序就稱為時(shí)序。時(shí)鐘電路就是提供單片機(jī)內(nèi)部各種操作的時(shí)間基準(zhǔn)的電路,沒有時(shí)鐘電路單片機(jī)就無法工作。1.時(shí)鐘電路的產(chǎn)生方式根據(jù)89S51單片機(jī)產(chǎn)生時(shí)鐘方式的不同,可將時(shí)鐘電路分為內(nèi)部時(shí)鐘方式及外部時(shí)鐘方式兩種形式。如果在XTAL1和XTAL2引腳之間外接石英晶體振蕩器及兩個(gè)諧振電容,就可以構(gòu)成內(nèi)部時(shí)鐘電路,如上圖中的電路。內(nèi)部時(shí)鐘電路的石英晶體振蕩器頻率一般選擇在4MHz~12MHz之間,諧振電容采用20~30pF的瓷片電容。上一頁下一頁返回如果單片機(jī)的時(shí)鐘采用某一個(gè)外接的時(shí)鐘信號,則可以按下圖所示連接。對于89S51一般可采用下圖(b)所示外接時(shí)鐘信號。2.單片機(jī)的時(shí)序單位時(shí)鐘電路產(chǎn)生的最小時(shí)序單位稱為時(shí)鐘周期,它是由石英晶體振蕩器的振蕩頻率決定的,又稱振蕩周期。將石英晶體振蕩器的振蕩頻率進(jìn)行二分頻,就構(gòu)成了狀態(tài)周期,一個(gè)狀態(tài)周期等于兩個(gè)時(shí)鐘周期。將這兩個(gè)時(shí)鐘周期稱為兩個(gè)節(jié)拍,用P1、P2表示。6個(gè)狀態(tài)周期就構(gòu)成了1個(gè)機(jī)器周期,機(jī)器周期是單片機(jī)執(zhí)行一種基本操作所需要的時(shí)間單位。6個(gè)狀態(tài)依次用S1~S6表示。上一頁下一頁返回(a)(b)單片機(jī)執(zhí)行一條指令所需要的時(shí)間稱為指令周期,通常由1~4個(gè)機(jī)器周期組成。它是由不同指令來決定時(shí)間長短的,附錄二中列出了各種指令所需要的時(shí)間。一般51單片機(jī)的指令分為單機(jī)器周期、雙機(jī)器周期及四機(jī)器周期指令。各時(shí)序單位間的關(guān)系見圖所示。例如:石英晶體振蕩器的頻率為fOSC=12MHz,則狀態(tài)周期=2×?xí)r鐘周期=0.167μs機(jī)器周期=12×?xí)r鐘周期=1μs上一頁下一頁返回2.589S51單片機(jī)的最小系統(tǒng)指令周期=(1~4)機(jī)器周期=1~4μs2.5.3復(fù)位電路單片機(jī)的復(fù)位就是對單片機(jī)進(jìn)行初始化操作,使單片機(jī)內(nèi)部各寄存器處于一個(gè)確定的初始狀態(tài),以便進(jìn)行下一步操作。1.復(fù)位電路的構(gòu)成要實(shí)現(xiàn)復(fù)位操作,只需在89S51單片機(jī)的RST引腳上施加5ms的高電平信號就可以了。單片機(jī)的復(fù)位電路有兩種形式:上電復(fù)位和按鈕復(fù)位。如下圖所示,(a)為上電復(fù)位,(b)為按鈕復(fù)位。上一頁下一頁返回(a)上電復(fù)位(b)按鈕復(fù)位
上一頁下一頁返回上電復(fù)位是利用電容充電來實(shí)現(xiàn)的,即上電瞬間RST端的電位與VCC相同,隨著電容上儲能增加,電容電壓也增大,充電電流減少,RST端的電位逐漸下降。這樣在RST端就會(huì)建立一個(gè)脈沖電壓,調(diào)節(jié)電容與電阻的大小,就可對脈沖持續(xù)的時(shí)間進(jìn)行調(diào)節(jié)。通常晶振為6MHz時(shí),復(fù)位電路元件參數(shù)為22μF的電解電容和1kΩ的電阻,若晶振頻率為12MHz時(shí),復(fù)位電路元件參數(shù)為10μF的電解電容和10kΩ的電阻。按鈕復(fù)位電路是通過按下復(fù)位按鈕時(shí),電源對RST端維持兩個(gè)機(jī)器周期的高電平實(shí)現(xiàn)復(fù)位的。2.復(fù)位后各寄存器的狀態(tài)上一頁下一頁返回當(dāng)單片機(jī)進(jìn)行復(fù)位操作后,各寄存器的內(nèi)容被初始化。復(fù)位后各寄存器狀態(tài)見下表所示。由表可知,除SP、P0~P3及SBUF外,其余各寄存器值均為0。PC=0000H代表單片機(jī)從地址為0處開始執(zhí)行程序。端口P0~P3為FF表明,所有端口鎖存器均被置“1”,可進(jìn)行輸入/輸出數(shù)據(jù)的操作。上一頁下一頁返回任務(wù)1.4單片機(jī)的開發(fā)環(huán)境
1.4.1WAVE6000軟件使用簡介1.4.2KeilC51軟件使用簡介1.4.3Proteus軟件使用簡介上一頁下一頁返回很多人在學(xué)習(xí)單片機(jī)時(shí),都會(huì)感覺到單片機(jī)很抽象,抽象不只體現(xiàn)在內(nèi)部結(jié)構(gòu)和外圍接口電路,也體現(xiàn)在編程。要想知道硬件電路和程序?qū)Σ粚?,就需要在仿真器或?qū)嵨锷蠝y試。不論是用仿真器還是做出實(shí)物,都是需要不少成本的。而使用Proteus軟件和KEIL軟件或WAVE軟件,將會(huì)從根本上改變單片機(jī)學(xué)習(xí)的過程。在本項(xiàng)目中,將會(huì)介紹Proteus仿真軟件的安裝、基本功能、原理圖畫法以及如何和KEIL聯(lián)合調(diào)試觀看仿真結(jié)果。上一頁下一頁返回1.4.1WAVE6000軟件使用簡介主界面:標(biāo)準(zhǔn)windows風(fēng)格上一頁下一頁返回編譯器及仿真器設(shè)置:
上一頁下一頁返回編譯信息提示:上一頁下一頁返回程序的仿真調(diào)試編譯成功后,就可以進(jìn)行程序的仿真調(diào)試了,這里只介紹軟件模擬仿真調(diào)試??稍凇皥?zhí)行”菜單中的選擇不同的方式執(zhí)行程序(單步、全速、跟蹤、設(shè)置斷點(diǎn)),如左圖所示。同時(shí)查看相應(yīng)的寄存器窗口和數(shù)據(jù)窗口在程序執(zhí)行前后的內(nèi)容的變化,來驗(yàn)證程序的邏輯功能是否正確。數(shù)據(jù)窗口在“窗口”菜單打開,如右圖所示。上一頁下一頁返回1.4.2KEILuVision4軟件使用簡介KEILuVision4主界面上一頁下一頁返回新建工程文件上一頁下一頁返回選擇CPU上一頁下一頁返回編輯保存源程序上一頁下一頁返回添加源文件到工程中上一頁下一頁返回編譯文件上一頁下一頁返回程序的仿真調(diào)試上一頁下一頁返回程序運(yùn)行過程中MEMORY的查看c:0 (ROM存儲器CODE區(qū))d:0(內(nèi)部RAM的DATA區(qū))i:0 (內(nèi)部RAM的IDATA區(qū))x:0(外部RAM的XDATA區(qū))其中0表示所在區(qū)的開始地址,可換成你想直接查看的地址。上一頁下一頁返回程序的下載在下載程序之前,需要先得到HEX文件。上一頁下一頁返回1.4.3Proteus7.8軟件簡介Proteus7.8主界面上一頁下一頁返回原理圖編輯中元件拾取界面上一頁下一頁返回元件屬性對話框上一頁下一頁返回例如,我們要繪制1位發(fā)光二極管閃爍的電路,按上個(gè)任務(wù)中所學(xué)的方法繪制原理圖如下圖所示。上一頁下一頁返回硬件仿真需要關(guān)聯(lián)HEX文件上一頁下一頁返回Proteus與Keil的聯(lián)合調(diào)試
具體步驟為:1、在機(jī)器上安裝KeiluVision4和Proteus7.8(如果已經(jīng)安裝,請?zhí)^此步)。2、安裝vdmagdi.exe,這個(gè)文件是KEIL與Proteus聯(lián)調(diào)的驅(qū)動(dòng)程序,運(yùn)行后,軟件所需的設(shè)置全幫你設(shè)置好。3、打開Keil,新建工程,編寫c51led.c源程序,并把這個(gè)程序文件加入工程中。右鍵單擊Project窗口的Target1,在彈出的對話框中單擊“OptionsforTarget‘Target1’…,彈出選項(xiàng)設(shè)置對話框。如下圖所示:選擇ProteusVSMSimulator
上一頁下一頁返回上一頁下一頁返回點(diǎn)擊DUBUG菜單,勾選UseRemoteDebugMonitor選項(xiàng)。
上一頁下一頁返回在Keil中單擊Debug菜單中的Start/StopDebugSession,進(jìn)入調(diào)試狀態(tài)??煽吹酵瑫r(shí)會(huì)自動(dòng)啟動(dòng)ISIS中的播放按鈕。在Keil中有幾種運(yùn)行方式可選擇,可以看到程序的執(zhí)行流程,同時(shí)可以在ISIS中同步看到硬件的反應(yīng)。
上一頁下一頁返回任務(wù)1.5單片機(jī)C51編程1.5.1c51的數(shù)據(jù)結(jié)構(gòu)1.5.2c51的運(yùn)算符1.5.3一個(gè)完整的C51程序結(jié)構(gòu)1.5.4C51的應(yīng)用舉例上一頁下一頁返回1.5.1c51的數(shù)據(jù)結(jié)構(gòu)C51與C語言相同,其數(shù)據(jù)有常量和變量之分。常量是在程序運(yùn)行中不能改變值的量,可以是字符、十進(jìn)制數(shù)或十六進(jìn)制數(shù)(用0x表示)。變量是在程序運(yùn)行過程中不斷變化的量。無論是常量或變量,其數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型決定的。1.C51的數(shù)據(jù)類型C語言的數(shù)據(jù)類型可分為基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型,其中復(fù)雜數(shù)據(jù)類型又是由基本數(shù)據(jù)類型構(gòu)造而成。C51中的數(shù)據(jù)類型既包含與C語言中相同的數(shù)據(jù)類型,也包含其特有的數(shù)據(jù)類型。1.Char:字符型
上一頁下一頁返回其長度為一個(gè)字節(jié)。有signedchar(有符號數(shù))和unsignedchar(無符號數(shù))兩種,默認(rèn)值為signedchar。unsignedchar類型數(shù)據(jù)可以表達(dá)的數(shù)值范圍是0~255,signedchar類型數(shù)據(jù)的最高位表示符號位,“0”為正數(shù),“1”為負(fù)數(shù)。負(fù)數(shù)用補(bǔ)碼表示,其表達(dá)的數(shù)值范圍是?128~+127。2.Int:整型其長度為兩個(gè)字節(jié)。有signedint和unsignedint兩種,默認(rèn)值為signedint。unsignedint類型數(shù)據(jù)可以表達(dá)的數(shù)值范圍是0~65535,signedint類型數(shù)據(jù)的最高位表示符號位,“0”為正數(shù),“1”為負(fù)數(shù)。其表達(dá)的數(shù)值范圍是?32768~+32767。上一頁下一頁返回3.Long:長整型其長度為四個(gè)字節(jié)。有signedlong和unsignedlong兩種,默認(rèn)值為signedlong。unsignedlong類型數(shù)據(jù)可以表達(dá)的數(shù)值范圍是0~4294967295,signedlomg類型數(shù)據(jù)的最高位表示符號位,“0”為正數(shù),“1”為負(fù)數(shù)。其表達(dá)的數(shù)值范圍是?2147483648~+2147483647。4.Float:浮點(diǎn)型它是符合IEEE-754標(biāo)準(zhǔn)的單精度浮點(diǎn)型數(shù)據(jù),其長度為四個(gè)字節(jié)。在內(nèi)存中的存放格式如下:字節(jié)地址+0+1+2+3浮點(diǎn)數(shù)內(nèi)容SEEEEEEEEMMMMMMMMMMMMMMMMMMMMM上一頁下一頁返回其中,S表示符號位,“0”為正數(shù),“1”為負(fù)數(shù)。E為階碼,占8位二進(jìn)制數(shù)。階碼的E值是以2為底的指數(shù)再加上偏移量127表示的,其取值范圍是1~254。M為尾數(shù)的小數(shù)部分,用23位二進(jìn)制數(shù)表示,尾數(shù)的整數(shù)部分永遠(yuǎn)是“1”,因此被省略,但實(shí)際是隱含存在的。一個(gè)浮點(diǎn)數(shù)的數(shù)值可表示為(?1)S×2E—127×(1.M)。例如,?7.5=0xC0E00000,以下為該數(shù)在內(nèi)存中的格式:除以上幾種基本數(shù)據(jù)類型外,還有以下一些數(shù)據(jù)類型。
字節(jié)地址+0+1+2+3浮點(diǎn)數(shù)內(nèi)容110000001111000000000000000000上一頁下一頁返回5.*:指針型它與前四種數(shù)據(jù)結(jié)構(gòu)不同的是,它本身就是一個(gè)變量,在這個(gè)變量中存放的不是數(shù)據(jù)而是指向另一個(gè)數(shù)據(jù)的地址。C51中的指針變量的長度一般為1~3字節(jié)。其變量類型的表示方法是在指針符號“*”的前面冠以數(shù)據(jù)類型的符號,如char*point1表示point1是一個(gè)字符型的指針變量。指針型變量的用法與匯編語言中的間接尋址方式類似。6.bit:位類型位類型是C51編譯器的一種擴(kuò)充數(shù)據(jù)類型,利用它可以定義一個(gè)位變量,但不能定義位指針,也不能定義位數(shù)組。它的值只可能為0或1。7.sfr:特殊功能寄存器類型它也是C51編譯器的一種擴(kuò)充數(shù)據(jù)類型,利用它可以定義51單片機(jī)的所有內(nèi)部8位特殊功能寄存器。Sfr型數(shù)據(jù)占用一個(gè)內(nèi)存單元,取值范圍為0~255。例如:sfrP0=0x80,表示定義P0為特殊功能寄存器型數(shù)據(jù),且為P0口的內(nèi)部寄存器,在程序中就可以使用P0=255對P0口的所有引腳置高電平。上一頁下一頁返回8.sfr16:16位特殊功能寄存器類型與sfr一樣,sfr16也是用于定義51單片機(jī)內(nèi)部的16位特殊功能寄存器。它占用兩個(gè)內(nèi)存單元,取值范圍為0~65535。9.sbit:可尋址位類型它也是C51編譯器的一種擴(kuò)充數(shù)據(jù)類型,利用它可以訪問51單片機(jī)內(nèi)部RAM的可尋址位及特殊功能寄存器中的可尋址位。例如:sfrP1=0x90sbitP1_1=P1^1sbitOV=0xD0^2下表列出了C51的所有數(shù)據(jù)類型。上一頁下一頁返回上一頁下一頁返回在C51中,如果出現(xiàn)運(yùn)算對象的數(shù)據(jù)類型不一致的情況,按以下優(yōu)先級(由低到高)順序自動(dòng)進(jìn)行隱式轉(zhuǎn)換。bit→char→int→long→float→singed→unsigned轉(zhuǎn)換時(shí)由低向高進(jìn)行。C51編譯器除了能支持以上這些基本數(shù)據(jù)類型外,還能支持復(fù)雜的構(gòu)造類型,如結(jié)構(gòu)體、聯(lián)合體等,這里就不一一介紹了。C51的常量常量就是在程序執(zhí)行過程中不能改變值的量。常量的數(shù)據(jù)類型有整型、浮點(diǎn)型、字符型及字符串型及位類型。上一頁下一頁返回C51的程序結(jié)構(gòu)及數(shù)據(jù)類型與C語言類似,根據(jù)89C51單片機(jī)的存儲特點(diǎn),增加了幾種新的數(shù)據(jù)類型:sfr、sfr16、bit、sbit。C51中的函數(shù)大多與C相同,增加了兩個(gè)特殊函數(shù):再入函數(shù)和中斷服務(wù)函數(shù)。再入函數(shù)用于遞歸調(diào)用;中斷服務(wù)函數(shù)用于編寫中斷服務(wù)程序。C51的編譯預(yù)處理命令的作用類似于匯編語言中的偽指令。與C語言基本相同。C語言編寫單片機(jī)應(yīng)用程序已成為單片機(jī)軟件設(shè)計(jì)的趨勢,應(yīng)多練習(xí)提高C語言的應(yīng)用能力,特別是與匯編語言混合編程的能力。上一頁下一頁返回1.整型常量可用十進(jìn)制、十六進(jìn)制表示,如果是長整數(shù)則在數(shù)字后面加L。例如:十進(jìn)制整數(shù):1234,?56十六進(jìn)制整數(shù):0x123,?0xFF長整數(shù):6789L、0xAB12L2.浮點(diǎn)型常量可用十進(jìn)制和指數(shù)兩種形式表示。十進(jìn)制由數(shù)字和小數(shù)點(diǎn)組成,整數(shù)和小數(shù)部分為0可以省略,但小數(shù)點(diǎn)不能省略。例如:0.1234,.1234,1234.,0.0等。上一頁下一頁返回指數(shù)表示形式為:[±]數(shù)字[.數(shù)字]e[±]數(shù)字。例如:123.4e5,?6e-7等。3.字符型常量為單引號內(nèi)的字符,如‘e’、‘k’等。對不可顯示的控制符,可在該字符前用反斜杠“\”構(gòu)成轉(zhuǎn)義字符表示。如下表為一些常用的轉(zhuǎn)義字符。4.字符串型常量為雙引號內(nèi)的字符,如“ABCD”、“@#%”等。當(dāng)雙引號內(nèi)沒有字符時(shí),表示空字符串。在C51中字符串常量是作為字符型數(shù)組來處理,在存儲字符串時(shí)系統(tǒng)會(huì)在字符串的尾部加上\0轉(zhuǎn)義字符作為該字符串的結(jié)束符。所以字符串常量“A”與字符常量‘A’是不同的。上一頁下一頁返回上一頁下一頁返回5.位常量它的值只能取1或0兩種值。C51的變量與存儲類型變量是一種在程序執(zhí)行過程中值不斷變化的量。在使用變量之前,必須進(jìn)行定義,用一個(gè)標(biāo)識符作為變量名并指出它的數(shù)據(jù)類型和存儲模式,以便編譯系統(tǒng)為它分配相應(yīng)的存儲單元。C51對變量的定義格式如下:[存儲種類]數(shù)據(jù)類型[存儲器類型]變量名表;下面分別介紹變量定義格式中的各項(xiàng)。1.存儲種類上一頁下一頁返回該項(xiàng)為可選項(xiàng)。變量的存儲種類有四種:自動(dòng)(auto)、外部(extern)、靜態(tài)(static)和寄存器(register)。如果在定義變量時(shí)省略該項(xiàng),則默認(rèn)為自動(dòng)(auto)變量。自動(dòng)變量(auto)指定被說明的對象放在內(nèi)存的堆棧中。只有在定義它的函數(shù)被調(diào)用,或是定義它的復(fù)合語句被執(zhí)行時(shí),編譯器才為其分配內(nèi)存空間。當(dāng)函數(shù)調(diào)用結(jié)束返回時(shí),自動(dòng)變量所占用的空間就被釋放。外部變量(extern)指在函數(shù)外部定義的變量,也稱全局變量。只要一個(gè)外部變量被定義后,它就被分配了固定的內(nèi)存空間,即使函數(shù)調(diào)用結(jié)束返回,其存儲空間也不被釋放。上一頁下一頁返回靜態(tài)變量(static)分為內(nèi)部靜態(tài)變量和外部靜態(tài)變量兩種。如果希望定義的變量在離開函數(shù)后到下次進(jìn)入函數(shù)前變量值保持不變,就需要使用靜態(tài)變量說明。使用這種類型對變量進(jìn)行說明后,變量的地址是固定的。寄存器變量(register)指定將變量放在CPU的寄存器中,程序執(zhí)行效率最高。2.數(shù)據(jù)類型該項(xiàng)為必選項(xiàng)。變量的數(shù)據(jù)類型可以使用節(jié)中介紹的所有數(shù)據(jù)類型。3.存儲器類型上一頁下一頁返回該項(xiàng)為可選項(xiàng)。KeilCx51編譯器完全支持51系列單片機(jī)的硬件結(jié)構(gòu)和存儲器組織,對每個(gè)變量可以定義下表中的存儲器類型。若在定義變量時(shí)省略了存儲器類型項(xiàng),則按編譯時(shí)使用的存儲器模式來確定變量的存儲器空間。KeilCx51編譯器的三種存儲器模式為SMALL、LARGE和COMPACT,這三種模式對變量的影響如下表所示。上一頁下一頁返回變量應(yīng)用舉例
chardatavar; /*在data區(qū)定義字符型變量var*/inta=5; /*定義整型變量a,同時(shí)賦初值等于5,變量a位于由編譯器的存儲器模式確定的默認(rèn)存儲區(qū)中*/charcodetext[]=”HELLO!”; /*在code區(qū)定義字符串?dāng)?shù)組*/unsignedint
xdatatime; /*在xdata區(qū)定義無符號整型變量time*/externfloatidata
x,y,z; /*在idata區(qū)定義外部浮點(diǎn)型變量x,y,z*/charxdata*px; /*指針px指向char型xdata區(qū),指針px自身在默認(rèn)存儲區(qū),指針長度為2字節(jié)*/staticbitdataport; /*在data區(qū)定義了一個(gè)靜態(tài)位變量port*/上一頁下一頁返回sbitx0=x^0; /*在bdata區(qū)定義了一個(gè)位變量x0*/sfrP0=0x80; /*定義特殊功能寄存器名P0*/sfr16T2=0xCC; /*定義特殊功能寄存器名T2*/上一頁下一頁返回1.5.2C51的運(yùn)算符C語言對數(shù)據(jù)有很強(qiáng)的表達(dá)能力,具有十分豐富的運(yùn)算符。以下為C51中常用的運(yùn)算符。1.賦值運(yùn)算符C51的賦值運(yùn)算符為=,它的作用是將運(yùn)算符右邊的數(shù)據(jù)或表達(dá)式的值賦給運(yùn)算符左邊一個(gè)變量。賦值表達(dá)式的格式為:變量=表達(dá)式例如:a=b=0x1000; /*將常數(shù)0x1000同時(shí)賦值給變量a,b*/2.算術(shù)運(yùn)算符上一頁下一頁返回C51的算術(shù)運(yùn)算符有以下5種:+ 加或取正運(yùn)算符? 減或取負(fù)運(yùn)算符* 乘運(yùn)算符/ 除運(yùn)算符% 取余運(yùn)算符算術(shù)表達(dá)式的格式為:表達(dá)式1算術(shù)運(yùn)算符表達(dá)式2例如:a+b/10、x*5+y上一頁下一頁返回算術(shù)運(yùn)算符的優(yōu)先級由高到低依次為:取負(fù)?→乘*、除/、取余%→加+、減?。若要改變運(yùn)算符的優(yōu)先級,可采用圓括號實(shí)現(xiàn)。例如:(a+b)/103.增量和減量運(yùn)算符C51的增量和減量運(yùn)算符如下:++ 增量運(yùn)算符?? 減量運(yùn)算符例如:++i; /*先將i值加1,再使用i*/j??; /*在使用j之后,再使j值減1*/上一頁下一頁返回4.關(guān)系運(yùn)算符C51的有以下6種:> 大于運(yùn)算符< 小于運(yùn)算符>= 大于等于運(yùn)算符<= 小于等于運(yùn)算符== 等于運(yùn)算符!= 不等于運(yùn)算符前四種關(guān)系運(yùn)算符的優(yōu)先級相同,后兩種關(guān)系運(yùn)算符的優(yōu)先級也相同但比前四種低。關(guān)系表達(dá)式的格式為:上一頁下一頁返回表達(dá)式1關(guān)系運(yùn)算符表達(dá)式2例如:x+y>=8、(a+1)!=c5.邏輯運(yùn)算符C51的有以下3種:&& 邏輯與|| 邏輯或! 邏輯非邏輯表達(dá)式的格式為:邏輯與、邏輯或的表達(dá)式為:條件式1邏輯運(yùn)算符條件式2上一頁下一頁返回邏輯非的表達(dá)式為:!條件式邏輯運(yùn)算符的優(yōu)先級由高到低依次為:邏輯非!→邏輯與&&→邏輯或||。例如:x&&y、!c6.位運(yùn)算符C51的位運(yùn)算符有以下6種:~ 按位取反<< 左移>> 右移& 按位與上一頁下一頁返回^ 按位異或| 按位或位運(yùn)算符的優(yōu)先級由高到低依次為:按位取反~→左移<<、右移>>→按位與&→按位異或^→按位或|。位運(yùn)算符中的左移和右移操作與匯編語言中的移位操作不同。匯編語言中的移位是循環(huán)移位,而C51中的移位會(huì)將移出的位值丟棄,補(bǔ)位時(shí)補(bǔ)入0(若是有符號數(shù)的負(fù)數(shù)右移,則補(bǔ)入符號位1)。例如:a=0x8f,進(jìn)行左移運(yùn)算a<<2時(shí),全部的二進(jìn)制位值一起向左移動(dòng)了2位,最左端的2位被丟棄,并在最右端2位補(bǔ)入0。因此,移位后的a=0x3C。上一頁下一頁返回7.復(fù)合賦值運(yùn)算符在賦值運(yùn)算符“=”的前面加上其他運(yùn)算符,就構(gòu)成了復(fù)合賦值運(yùn)算符。如:+=、?=、*=、/=、%=、<<=、>>=、&=、|=、^=、~=等。復(fù)合賦值運(yùn)算首先對變量進(jìn)行某種運(yùn)算,再將運(yùn)算結(jié)果賦值給變量。復(fù)合賦值運(yùn)算的格式為:變量復(fù)合賦值運(yùn)算符表達(dá)式例如:a+=5相當(dāng)于a=a+5。8.條件運(yùn)算符上一頁下一頁返回條件運(yùn)算符的格式為:邏輯表達(dá)式?表達(dá)式1:表達(dá)式2其功能是首先計(jì)算邏輯表達(dá)式,當(dāng)值為真(非0)時(shí),將表達(dá)式1的值作為整個(gè)條件表達(dá)式的值;當(dāng)值為假(0)時(shí),將表達(dá)式2的值作為整個(gè)條件表達(dá)式的值。例如:max=(a>b)?a:b
的執(zhí)行結(jié)果是比較a與b的大小,若a>b,則為真,max=a;若a<b,則為假,max=b。9.指針和地址運(yùn)算符C51的指針和地址運(yùn)算符為:* 取內(nèi)容運(yùn)算符上一頁下一頁返回& 取地址運(yùn)算符取內(nèi)容和取地址的運(yùn)算格式為:變量=*指針變量 /*將指針變量所指向的目標(biāo)變量值賦給左邊的變量*/指針變量=&目標(biāo)變量 /*將目標(biāo)變量的地址賦給左邊的變量*/例如:px=&i; /*將i變量的地址賦給px*/py=*j; /*將j變量的內(nèi)容為地址的單元的內(nèi)容賦給py*/以上就是C51中的各種常用運(yùn)算符及其基本用法。上一頁下一頁返回1.5.3一個(gè)完整的C51程序結(jié)構(gòu)
C51源程序的結(jié)構(gòu)與一般的C語言并沒有太大的差別。C51的源程序文件擴(kuò)展名為“.C”,如:Led.c。下面來看一個(gè)簡單的C51源程序(example.c),該程序可以實(shí)現(xiàn)P1.0端口所接的發(fā)光二極管閃爍點(diǎn)亮。#include<AT89X51.h> /*編譯器自帶的h文 件,使用<>*/sbitL1=P1^0; /*定義位變量L1為
P1.0引腳,全局變量說明*/
voiddelay02s(void) /*延時(shí)0.2秒函數(shù)聲 明*/上一頁下一頁返回{unsignedchari,j,k; /*定義無符號字符型 變量i,j,k
,局部變量說明*/
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);}voidmain(void) /*主函數(shù)*/{while(1)
上一頁下一頁返回{L1=0;delay02s(); /*調(diào)用函數(shù)delay02s()*/L1=1;delay02s();}}上一頁下一頁返回9.1C51程序的基本構(gòu)成由上面的例子可以看出:1.一個(gè)C51源程序是一個(gè)函數(shù)的集合。在這個(gè)集合中,僅有一個(gè)主函數(shù)main(),它是程序的入口。不論主程序在什么位置,程序的執(zhí)行都是從main()函數(shù)開始的,其余函數(shù)都可以被主函數(shù)調(diào)用,也可以相互調(diào)用,但main()函數(shù)不能被其他函數(shù)調(diào)用。2.在每個(gè)函數(shù)中所使用的變量都必須先說明后引用。若為全局變量,則可以被程序的任何一個(gè)函數(shù)引用;若為局部變量,則只能在本函數(shù)中被引用。如上例中的變量L1可以被所有的函數(shù)引用,而變量i,j,k只能被delay02s()函數(shù)引用。上一頁下一頁返回3.C51源程序書寫格式自由,一行可以書寫多條語句,一個(gè)語句也可以分多行書寫。但在每個(gè)語句和數(shù)據(jù)定義的最后必須有一個(gè)分號,即使是程序中的最后一個(gè)語句也必須包含分號。4.可以用/*……*/對C51源程序中的任何部分作注釋,以增加程序的可讀性。5.可以利用#include語句將比較常用的函數(shù)做成的頭文件(以.h為后綴名)引入當(dāng)前文件。如上例中的AT89X51.h就是一個(gè)頭文件,語句“s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中級財(cái)務(wù)會(huì)計(jì)知到課后答案智慧樹章節(jié)測試答案2025年春菏澤學(xué)院
- 塔里木職業(yè)技術(shù)學(xué)院《景觀設(shè)計(jì)4》2023-2024學(xué)年第二學(xué)期期末試卷
- 黑龍江省七臺河市茄子河區(qū)2025年數(shù)學(xué)三下期末檢測模擬試題含解析
- 陜西國際商貿(mào)學(xué)院《視頻內(nèi)容傳達(dá)》2023-2024學(xué)年第二學(xué)期期末試卷
- 贛州職業(yè)技術(shù)學(xué)院《住宅空間設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧大學(xué)《地球概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 甘孜職業(yè)學(xué)院《藥用高分子材料》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安工程大學(xué)《工程水文》2023-2024學(xué)年第一學(xué)期期末試卷
- 昭通市威信縣2025年小升初數(shù)學(xué)模擬試卷含解析
- 溫州商學(xué)院《語料庫實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 電機(jī)制造工廠布局
- 人教版二年級下冊計(jì)算題100道及答案
- 2023初中七年級全體育教案(共36課)
- 【工商管理專業(yè)畢業(yè)綜合訓(xùn)練報(bào)告2600字(論文)】
- 附睪炎的護(hù)理查房
- 新形勢下加強(qiáng)邊疆民族地區(qū)國防教育的思考
- 2024年同等學(xué)力申碩-同等學(xué)力(新聞傳播學(xué))歷年考試高頻考點(diǎn)試題附帶答案
- 《小學(xué)數(shù)學(xué)課程標(biāo)準(zhǔn)與教材教學(xué)研究》課件 12圖形的運(yùn)動(dòng)
- INSAR技術(shù)在城市地面沉降監(jiān)測中的應(yīng)用
- 【人力資源管理工具】員工獎(jiǎng)懲審批表(表格版)
- 商事糾紛解決的法律框架
評論
0/150
提交評論