單片機應用技術(shù)項目式教程-基于C51+ 課件 項目 1、5 單片機基礎(chǔ)知識、串行口技術(shù)_第1頁
單片機應用技術(shù)項目式教程-基于C51+ 課件 項目 1、5 單片機基礎(chǔ)知識、串行口技術(shù)_第2頁
單片機應用技術(shù)項目式教程-基于C51+ 課件 項目 1、5 單片機基礎(chǔ)知識、串行口技術(shù)_第3頁
單片機應用技術(shù)項目式教程-基于C51+ 課件 項目 1、5 單片機基礎(chǔ)知識、串行口技術(shù)_第4頁
單片機應用技術(shù)項目式教程-基于C51+ 課件 項目 1、5 單片機基礎(chǔ)知識、串行口技術(shù)_第5頁
已閱讀5頁,還剩186頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機應用技術(shù)項目式教程—基于Proteus和KeilCSINGLE-CHIP

COMPUTER

APPLICATION

TECHNOLOGY項目一

單片機基礎(chǔ)知識單片機的基礎(chǔ)概念01單片機的結(jié)構(gòu)02STC單片機的基本情況03單片機的復位04知識要點0506單片機的時鐘匯編語言基礎(chǔ)知識項目一

單片機基礎(chǔ)知識掌握單片機的的基本概念01了解單片機常用的產(chǎn)品系列02了解STC單片機的基本情況03掌握STC15單片機內(nèi)部總體結(jié)構(gòu)04學習要求0506掌握STC單片機的存儲結(jié)構(gòu)、I/O結(jié)構(gòu)與工作模式等掌握匯編語言基礎(chǔ)知識我國半導體產(chǎn)業(yè)的現(xiàn)狀2019年的科技界真的熱鬧非凡,先有中美科技對決,美國打壓華為5G,接著繼續(xù)用利用芯片、操作系統(tǒng)的優(yōu)勢來打壓華為,還將一些中國高科技企業(yè)列入了“實體清單”進行了管制。因此在半導體尤其是芯片領(lǐng)域,中國必須崛起,才能真正的不怕被打壓,才不要看國外的臉色。芯片的生產(chǎn)過程知道在芯片的整個生產(chǎn)過程中,可以分為設計、制造、封測三部分。而設計主要是用EDA軟件來設計,同時還看采用什么架構(gòu)。而在制造方面,主要看的是原材料、制造設備,其中制造設備在整個制造環(huán)節(jié)中的比重占到70%以上。至于封測相對簡單一些,限制條件沒這么多。我國芯片領(lǐng)域的不足

在設計領(lǐng)域,我們只能說有技術(shù),缺少架構(gòu)、EDA軟件。因為目前國內(nèi)基本沒有架構(gòu),不管是華為麒麟,還是龍芯、或者兆芯、海光CPU等等,全部采用國外的架構(gòu)。至于EDA設計軟件,基本上是國外的,國內(nèi)的EDA軟件還差了一些。

在制造領(lǐng)域,我們基本上只有制造設備中的刻蝕機一項比較牛,其他的像光刻機落后,而一些原材料更是落后,像光刻膠,高純度硅等,全部要靠進口。

在封測領(lǐng)域,由于門檻不高,所以相對來講,有什么,缺什么,怕什么并不是特別重要。中國芯片的前景華為斷芯事件,認識到半導體技術(shù)是我國的弱項,但中國一直注重科技創(chuàng)新,自主研發(fā),以科技創(chuàng)新驅(qū)動社會發(fā)展,目前中國正在迎頭追趕,微電子企業(yè)近2年從736家迅速增長到幾千家,其中中興和深圳海思已經(jīng)進入全球前50IC行業(yè)。

1、中國半導體行業(yè)的發(fā)展勢頭中國半導體行業(yè)經(jīng)過多年的發(fā)展已經(jīng)取得了長足的進步。首先,中國的半導體工業(yè)部門在技術(shù)研發(fā)方面取得了重要突破,自主研發(fā)了DUVIA光刻機,將芯片制造工藝降低到7納米以下,并在光源方面取得了較大進展。其次,中國的中芯國際已經(jīng)完成了多次曝光技術(shù)的研發(fā),14納米和N1等技術(shù)已經(jīng)可以實現(xiàn)批量生產(chǎn)。中國的光刻機制造商華東晶科以及深紫外光刻機生產(chǎn)商中微公司也取得了較為可觀的成績。這些積極的發(fā)展趨勢為中國半導體產(chǎn)業(yè)的崛起奠定了堅實的基礎(chǔ)。

2、中國半導體行業(yè)的未來中芯國際表示,他們的產(chǎn)能已經(jīng)達到了世界先進水平,每月的產(chǎn)量將超過一億塊。而華為的海思芯片也將繼續(xù)推出更多的自主研發(fā)產(chǎn)品,包括麒麟910、M系列、麒麟X系列等,與蘋果等競爭。此外,中國的硅材料、光刻機、封裝測試等關(guān)鍵領(lǐng)域也在不斷提升,有望實現(xiàn)完全自主化的芯片產(chǎn)業(yè)鏈。目前,中國正在不斷加大半導體領(lǐng)域的支持和投入,未來有望成為全球半導體產(chǎn)業(yè)的領(lǐng)導者。1.1單片機的基礎(chǔ)單片機:在一片集成電路芯片上集成了CPU、RAM、ROM、時鐘、定時/計數(shù)器、多功能串行或并行I/O口的通用IC,從而構(gòu)成了一個完整的單芯片微型計算機(SingleChipMicrocomputer),即單片機。1.1單片機的基礎(chǔ)—單片機的發(fā)展史第一階段(1976-1978):單片機的探索階段。以Intel公司的MCS-48為代表。第二階段(1978-1982):單片機的完善階段。Intel公司在MCS-48基礎(chǔ)上推出了完善的、典型的單片機系列MCS-51。它在以下幾個方面奠定了典型的通用總線型單片機體系結(jié)構(gòu)。第三階段(1982-1990):向微控制器發(fā)展的階段。也是8位單片機的鞏固發(fā)展及16位單片機的推出階段。Intel公司推出的MCS-96系列單片機。第四階段(1990-現(xiàn)在):微控制器的全面發(fā)展階段。隨著單片機在各個領(lǐng)域全面深入地發(fā)展和應用,出現(xiàn)了高速、大尋址范圍、強運算能力的8位/16位/32位通用型單片機,以及小型廉價的專用型單片機。1.1單片機的基礎(chǔ)—單片機的應用此外,單片機在工商、金融、科研、教育、交通、國防、航空、航天、航海等領(lǐng)域都有著十分廣泛的用途。家電領(lǐng)域辦公自動化領(lǐng)域通訊領(lǐng)域商業(yè)營銷領(lǐng)域工業(yè)控制領(lǐng)域儀器儀表領(lǐng)域醫(yī)療器械領(lǐng)域汽車電子領(lǐng)域1.1單片機的基礎(chǔ)—數(shù)制和編碼十進制二進制八進制十六進制十進制二進制八進制十六進制000091001119111110101012A2102211101113B3113312110014C41004413110115D51015514111016E61106615111117F7111771610000201081000108

所謂數(shù)制是指計數(shù)的規(guī)則,按進位原則進行計數(shù)的方法,成為進位計數(shù)制。數(shù)制有很多種,計算機編程時常用的數(shù)制為二進制、八進制、十進制和十六進制。不同進制之間的轉(zhuǎn)換

1、二進制、八進制、十六進制轉(zhuǎn)換為十進制例如:不同進制之間的轉(zhuǎn)換2.十進制數(shù)轉(zhuǎn)換成二進制數(shù)、八進制數(shù)、十六進制數(shù)整數(shù)部分:除基取余法。分別用基數(shù)R不斷地去除N的整數(shù),直到商為零為止小數(shù)部分:乘基取整法。分別用基數(shù)R(R=2、8或16)不斷地去乘N的小數(shù),直到積的小數(shù)部分為零(或滿足所需精度)為止。3、二進制數(shù)和十六進制數(shù)的轉(zhuǎn)換從二進制的小數(shù)點開始,分別向左、右兩邊各以4位為一組,不足4位以0補足,然后分別把每組用十六進制數(shù)碼表示,并按序相連。編碼計算機不僅要識別人們習慣的十進制數(shù)、完成數(shù)值計算問題,而且要大量處理文字、字符和各種符號(標點符號、運算符號)等非數(shù)值計算問題。這就是要求計算機必須能夠識別它們。也就是說,字符、符號和十進制數(shù)最終都轉(zhuǎn)換為二進制格式的代碼,即信息和數(shù)據(jù)的二進制編碼。根據(jù)信息對象的不同,計算機中的編碼方式(碼制)也不同,常見的碼制有BCD碼和ASCⅡ碼。計算機中數(shù)的表示與運算1.無符號數(shù)的表示用來表示數(shù)的符號的數(shù)位稱為符號位。無符號數(shù)沒有符號位,數(shù)的所有數(shù)位均為數(shù)值位。2.有符號數(shù)的表示有符號數(shù)由符號位和數(shù)值位兩部分組成,數(shù)學中的正、負用符號“+”、“-”來表示,在計算機中規(guī)定:用“0”表示“+”、用“1”表示“-”

有符號數(shù)的表示---原碼、反碼、補碼對于一個二進制數(shù)X,若最高數(shù)位用“0”表示“+”,用“1”表示“-”其余各數(shù)位表示數(shù)值本身,則稱為原碼表示法,記為[X]原?!纠?-6】X=+1101011,Y=-1000011,求[X]原、[Y]原[X]原

=01101011、[Y]原

=11000011值得注意的是,0在8位單片機中的兩種原碼形式為:【+0】原=00000000B【-0】原=10000000B對于8位二進制原碼能表示的范圍:-127+127原碼:有符號數(shù)的表示---原碼、反碼、補碼反碼:正數(shù)的反碼表示與其原碼相同,負數(shù)的反碼是其原碼的符號位不變、數(shù)值各位取反,記為【X】反【例1-7】X=+1101011,Y=-1000011求?!綳】反=01101011【Y】反=101111000在反碼中有兩種表示形式:【+0】反=00000000B【-0】反=11111111B有符號數(shù)的表示---原碼、反碼、補碼補碼:正數(shù)的原碼、反碼和補碼相同,負數(shù)的補碼其最高位為1,數(shù)值位等于反碼數(shù)值位的低位加“1”?!纠?-8】X=+1101011,Y=-1000011,求[X]補、[Y]補[X]補

=01101011B、[Y]補

=10111101B值得注意的是,0在8位單片機中的兩種原碼形式為:【+0】補=00000000B【-0】補=00000000B由此可見,不論是+0還是-0,0在補碼中只有唯一的一種表示形式數(shù)的運算1.無符號數(shù)的運算無符號數(shù)的運算主要是無符號數(shù)的加、減、乘、除運算與溢出。(1)二進制數(shù)的加減運算二進制加法運算,每一位遵循如下法則:0+0=0,0+1=1,1+0=1,1+1=0(向高位有進位),逢二進一。0-0=0,1-1=0,1-0=1,0-1=1(向高位有借位),借一位二。0101被乘數(shù)×1101乘數(shù)0101部分積0000

0101

0101

1000001B乘積【例1-9】乘數(shù)為1101B,被乘數(shù)0101B,求乘積的值。2)二進制數(shù)乘法運算二進制乘法運算,每一位遵循如下法則:00=0,01=0,10=0,11=1。特點是:當且僅當兩個1相乘時結(jié)果為1,否則為0.二進制數(shù)乘法運算過程是若乘數(shù)位為1,則將被乘數(shù)加于中間結(jié)果上:若乘數(shù)為0,則加0于中間結(jié)果上。3)二進制數(shù)除法運算【例1-10】除數(shù)為101,被除數(shù)為011010,求商的值。

101商除數(shù)101被除數(shù)101

00110部分余數(shù)

-)101

001余數(shù)二進制數(shù)除法商的過程和十進制數(shù)有些類似,首先將除數(shù)和被除數(shù)的高n位進行比較,若除數(shù)小于被除數(shù),則商為1,然后從被除數(shù)中減去除數(shù),得到部分余數(shù);否則商為0。將除數(shù)和新的部分余數(shù)進行比較,直至被除數(shù)所有的位數(shù)都處理為止,最后得到商和余數(shù)二進制數(shù)的邏輯運算1)邏輯與運算邏輯與運算常用算符“∧”表示,邏輯與運算的運算法則為:0∧1=1∧0=0,0∧0=0,1∧1=1。邏輯與運算法則可概括為“只有對應的兩個二進位均為1時,結(jié)果位才為1,否則為0”。2)邏輯或運算邏輯或運算常用算符“∨”表示,邏輯或的運算法則:0∨1=1∨0=1,0∨0=0,1∨1=1。邏輯或運算法則可概括為“只要對應的二個二進位有一個為1時,結(jié)果位就位1”。二進制數(shù)的邏輯運算3)邏輯非運算邏輯非運算常采用算符“”表示,運算法則:/1=0,/0=14)邏輯異或運算邏輯異或運算常采用算符⊕表示,邏輯異或的運算法則:0⊕1=1⊕0=1,0⊕0=1⊕1=0。邏輯異或運算可總結(jié)為“兩對應的二進位不同時,結(jié)果為1,相同時為0”。1.2目前我國主流的單片機系列1.80C51系列2.PIC系列3.AVR系列AVR系列單片機是Atmel公司推出的較為新穎的單片機,其顯著的特點為高性能、速度低功耗。AVR系列的I/O腳類似PIC,它也有用來控制輸入/輸出的方向寄存器,輸出驅(qū)動雖不如PIC,但比80C51系列強。AVR系列單片機工作電壓2.76.0V,可以實現(xiàn)耗電量最優(yōu)化,芯片上的Flash存儲器附在用戶的產(chǎn)品中,可隨時編程和再編程,使用戶的產(chǎn)品設計容易,更新?lián)Q代方便。華為總裁任正非簡介任正非(1944年10月25日-),企業(yè)家,生于貴州省安順市,畢業(yè)于重慶建筑工程學院,世界最具影響力十大華商人物之一,華為公司總裁、CEO。1987年創(chuàng)立華為公司,一手把華為變成了震驚世界的“科技王國”,多次名列《財富》“中國最具影響力的50位商界領(lǐng)袖”榜單第一位。家庭背景1944年,任正非出生于貴州安順地區(qū)鎮(zhèn)寧縣一個貧困山區(qū)的小村莊,靠近黃果樹瀑布。任正非的父親任摩遜是鄉(xiāng)村中學教師,家中還有兄妹6人,小學就讀于貴州邊遠山區(qū)的少數(shù)民族縣城,高中就讀于貴州省黔南州都勻市都勻一中。知識分子的家庭背景是任正非一生第一個決定性因素。青年時代1963年,任正非就讀于重慶建筑工程學院(已并入重慶大學),還差一年畢業(yè)的時候,“文化大革命”開始了。父親被關(guān)進了牛棚,因掛念挨批斗的父親,任正非扒火車回家看望父親。父親囑咐他要不斷學習。任正非回到重慶后把電子計算機、數(shù)字技術(shù)、自動控制等專業(yè)技術(shù)自學完,他還把樊映川的高等數(shù)學習題集從頭到尾做了兩遍,接著學習了許多邏輯、哲學。他自學了三門外語,當時已到可以閱讀大學課本的程度。遼陽遼化大學畢業(yè)后任正非當兵了,當?shù)氖墙ㄖ?。任正非當兵的第一個工程就是法國公司的工程。那時法國德布尼斯·斯貝西姆公司向中國出售了一個化纖成套設備,在中國的東北遼陽市。任正非在那里從這個工程開始一直到建完生產(chǎn),然后才離開。工作簡歷1983年,隨國家整建制撤銷基建工程兵,任正非復員轉(zhuǎn)業(yè)至深圳南海石油后勤服務基地。1987年,因工作不順利,任正非轉(zhuǎn)而集資21000元人民幣創(chuàng)立華為公司。創(chuàng)立初期,華為靠代理香港某公司的程控交換機獲得了第一桶金。1992年,任正非孤注一擲投入C&C08機的研發(fā)。1993年末,C&C08交換機終于研發(fā)成功。其價格比國外同類產(chǎn)品低三分之二,為華為占領(lǐng)了市場。2003年1月23日,思科正式起訴華為及華為美國分公司,理由是后者對公司的產(chǎn)品進行了仿制,侵犯其知識產(chǎn)權(quán)。2018年3月23日,華為完成了董事會換屆選舉,任正非擔任董事和公司CEO。[2]2019年11月22日,任正非卸任北京華為數(shù)字技術(shù)有限公司副董事長。[3]2020年4月10日,上海華為技術(shù)有限公司發(fā)生工商變更,華為CEO任正非退出公司董事。

創(chuàng)業(yè)成就

1991年9月,華為租下了深圳寶安縣蠔業(yè)村工業(yè)大廈三樓作為研制程控交換機的場所,五十多名年輕員工跟隨任正非來到這棟破舊的廠房中,開始了他們充滿艱險和未知的創(chuàng)業(yè)之路,他們把整層樓分隔為單板、電源、總測、準備四個工段,外加庫房和廚房。人們在機器的高溫下?lián)]汗如雨夜以繼日地作業(yè),設計制作電路板、話務臺、焊接的電路板,編寫軟件,調(diào)試、修改、再調(diào)試。華為在任正非的帶領(lǐng)下,相繼打敗了國內(nèi)企業(yè)“巨龍”和“大唐”。而與另一個國內(nèi)巨頭中興的競爭中,華為已逐漸把中興甩在了身后。截止到2017年中興營業(yè)收入1088億元,相當于華為的1/6,各個板塊都跟華為有很大的差距。在國際競爭中,華為的運營商業(yè)務已占到了全球28%的份額,全球排行第一;消費者業(yè)務僅次于三星和蘋果,全球排名第三。9月15日,華為芯片斷供;9月16日,中科院宣布將攻關(guān)光刻機等卡脖子技術(shù);9月17日,任正非到訪中科院。連續(xù)三天,中國科技界的三件大事,頗有些特殊意義?;蛟S,這將是預示中國芯片未來崛起的三天?再想起知名軍事專家張召忠不久前說過的,“三年后美國芯片沒人要,中國芯片滿大街都是”,感覺這一天不遠了!2020年9月15,華為被斷供了9月15日,美國川普的華為制裁令正式生效,臺積電、聯(lián)發(fā)科、三星、高通、美光、sony等華為芯片及核心元器件的供應鏈企業(yè),全部和華為停止合作供貨了。美國芯片買不了,自家麒麟芯片造不了,第三方芯片也買不到,華為芯片被徹底斷供。而卡住華為脖子的,正是芯片制造的核心關(guān)鍵設備,光刻機。華為雖有雄心壯志,也有雄厚人資,但卻無力在短時間內(nèi)憑一企之力解決光刻機和芯片制造的產(chǎn)業(yè)鏈問題。916,中科院官宣了9月16日,中科院院長白春禮在國新辦發(fā)布會上公開表示:“科學院將在‘率先行動’第二個階段目標當中,進一步加強部署,將‘卡脖子’的問題和國外出口管制的清單轉(zhuǎn)化為我們的任務清單。白春禮強調(diào),科學院要聚焦這些關(guān)鍵的核心技術(shù),瞄準關(guān)鍵的基礎(chǔ)材料、關(guān)鍵核心的工藝、基礎(chǔ)算法、重大裝備等基礎(chǔ)性、戰(zhàn)略性的關(guān)鍵核心技術(shù)的需求,在光刻機、橡膠輪胎、高端芯片等方面,爭取要主動揭榜,發(fā)揮多學科的綜合和建制化優(yōu)勢,集結(jié)精銳力量組織系統(tǒng)攻關(guān),有效解決一批“卡脖子”問題。917,任正非來中科院了9月17日,任正非來中科院了!就在中科院院長白春禮公開表態(tài)的第二天,華為任正非就出現(xiàn)在了中科院。據(jù)中科院官網(wǎng)消息,9月17日下午,華為技術(shù)有限公司CEO任正非一行到訪中國科學院,與中科院的專家學者們舉行了座談交流會,就基礎(chǔ)研究及關(guān)鍵技術(shù)發(fā)展進行了探討交流。1.3STC15單片機內(nèi)部總體結(jié)構(gòu)及引腳功能STC15W4K32S4的PDIP40引腳封裝圖51單片機基本知識引腳號12345678I/O名稱P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7第二功能(AD0?AD7)訪問外部存儲器時,分時復用用做低8位地址總線和8位數(shù)據(jù)總線第三功能RxD3TxD3RxD4TxD4T3CLKOT3T4CLKOT4串行口3數(shù)據(jù)接收端串行口3數(shù)據(jù)發(fā)送端串行口4數(shù)據(jù)接收端串行口4數(shù)據(jù)發(fā)送端T3的時鐘輸岀端T3的外部計數(shù)輸入端T4的時鐘輸岀端T4的外部計數(shù)輸入端第四功能—————PWMFLT_2PWM7_2PWM6_2PWM異常停機控制引腳(切換1)脈寬調(diào)制輸出通道7(切換1)脈寬調(diào)制輸出通道6(切換1)P0口引腳排列與功能說明引腳號I/O名稱第二功能第三功能第四功能第五功能第六功能9P1.0ADC0CCP1RxD2——ADC模擬輸入通道0外部信號捕獲;高速脈沖輸出及脈沖寬度調(diào)制輸出通道1串行口2串行數(shù)據(jù)接收端10P1.1ADC1CCP0TxD2——ADC模擬輸入通道1外部信號捕獲;高速脈沖輸出及脈沖寬度調(diào)制輸出通道0串行口2串行數(shù)據(jù)發(fā)送端11P1.2ADC2SSECICMPO—ADC模擬輸入通道2SPI接口的從機選擇信號CCP模塊計數(shù)器外部計數(shù)脈沖輸入端比較器比較結(jié)果輸出端12P1.3ADC3MOSI———ADC模擬輸入通道3SPI接口主岀從入數(shù)據(jù)端13P1.4ADC4MISO———ADC模擬輸入通道4SPI接口主入從岀數(shù)據(jù)端14P1.5ADC5SCLK———ADC模擬輸入通道5SPI接口同步時鐘端15PI.6ADC6RxD_3XTAL2MCLKO_2PWM6ADC模擬輸入通道6串行口1串行數(shù)據(jù)接收端(切換2)內(nèi)部時鐘放大器反相放大器的輸出端主時鐘輸出(切換1)脈寬調(diào)制輸出通道616P1.7ADC7TxD_3XTAL1PWM7—ADC模擬輸入通道7串行口1串行數(shù)據(jù)發(fā)送端(切換2)內(nèi)部時鐘放大器反相放大器的輸入端脈寬調(diào)制輸出通道7P1口引腳排列與功能說明P1.0P1.0/ADC0/CCP1/RXD2(1):標準的IO口(2):ADC的通道0(3):外部信號捕獲;高速脈沖輸出及脈沖寬度調(diào)制輸出通道1(4):串行口2的接收端P1.1P1.1/ADC1/CCP0/TXD2(1):標準的IO口(2):ADC的通道1(3):外部信號捕獲;高速脈沖輸出及脈沖寬度調(diào)制輸出通道0(4):串行口2的發(fā)送端P1.2P1.1/ADC2/SS/ECI/CMPO

(1):標準的IO口(2):ADC的通道2(3):SPI接口的從機選擇信號(4):CCP模塊計數(shù)器外部計數(shù)脈沖輸入端(5)比較器比較結(jié)果輸出端P1.3P1.3/ADC3/MOSI(1):標準的IO口(2):ADC的通道3(3):MOSI:SPI接口的主設備輸出從設備輸入P1.4P1.4/ADC4/MISO(1):標準的IO口(2):ADC的通道4(3):MISO:SPI接口的主設備輸入從設備輸出P1.5P1.5/ADC5/SCLK(1):標準的IO口(2):ADC的通道5(3):SCLK:SPI接口的同步時鐘信號P1.6P1.6/ADC6/RXD_3/XTAL_2/MCLK0_2/PWM6

(1):標準的IO口(2):ADC的通道6(3):RXD_3串口1的數(shù)據(jù)接收端的第三個引腳(4):XTAL_2外部無源晶體振蕩器的一端;當外接有源晶體時,該引腳輸入到XTAL1的一端進行輸出(5):MCLK0_2主時鐘輸出可選的第二個引腳的位置(6):PWM6P1.7P1.7/ADC7/RXD_2/XTAL_1/PWM7引腳號I/O名稱第二功能第三功能第四功能第五功能32P2.0A8訪問外部存儲器時,用做高8位地址總線RSTOUT_LOW——上電后輸出低電平33P2.1A9SCLK_2PWM3—SPI接口同步時鐘端(切換1)脈寬調(diào)制輸出通道334P2.2A10MISO_2PWM4—SPI接口主入從岀數(shù)據(jù)端(切換1)脈寬調(diào)制輸出通道435P2.3A11MOSI_2PWM5—SPI接口主岀從入數(shù)據(jù)端(切換1)脈寬調(diào)制輸出通道536P2.4A12ECI_3SS_2PWMFLTCCP模塊計數(shù)器外部計數(shù)脈沖輸入端(切換2)SPI接口的從機選擇信號(切換1)PWM異常停機控制引腳37P2.5A13CCP0_3——CCP輸出通道0(切換2)38P2.6A14CCP1_3——CCP輸出通道1(切換2)39P2.7A15PWM2_2——脈寬調(diào)制輸出通道2(切換1)P2口引腳排列與功能說明引腳號I/O名稱第二功能第三功能第四功能21P3.0RxD/INT4T2CLKO串行口1串行數(shù)據(jù)接收端外部中斷4中斷請求輸入端T2定時器的時鐘輸出端22P3.1TxDT2—串行口1串行數(shù)據(jù)發(fā)送端T2定時器的外部計數(shù)脈沖輸入端23P3.2INT0

外部中斷0中斷請求輸入端

24P3.3INT1

外部中斷1中斷請求輸入端

25P3.4T0T1CLKOECI_2T0定時器的外部計數(shù)脈沖輸入端T1定時器的時鐘輸出端CCP模塊計數(shù)器外部計數(shù)脈沖輸入端(切換1)26P3.5T1T0CLKOCCP0_2T1定時器的外部計數(shù)脈沖輸入端T0定時器的時鐘輸出端CCP輸出通道0(切換1)27P3.6/INT2RxD_2CCP1_2外部中斷2中斷請求輸入端串行口1串行接收數(shù)據(jù)端(切換1)CCP輸岀通道1(切換1)28P3.7/INT3TxD_2PWM2外部中斷3中斷請求輸入端串行口1串行發(fā)送數(shù)據(jù)端(切換1)脈寬調(diào)制輸出通道2P3口引腳排列與功能說明引腳號I/O名稱第二功能第三功能29P4.1MOSI_3

SPI接口主出從入數(shù)據(jù)端(切換2)

30P4.2/WRPWM5_2外部數(shù)據(jù)存儲器寫脈沖脈寬調(diào)制輸出通道5(切換1)31P4.4/RDPWM4_2外部數(shù)據(jù)存儲器讀脈沖脈寬調(diào)制輸出通道4(切換1)40P4.5ALEPWM3_2外部擴展存儲器的地址鎖存信號脈寬調(diào)制輸出通道3(切換1)P4口引腳排列與功能說明P5口引腳排列與功能說明引腳號I/O名稱第二功能?第三功能第四功能第五功能17P5.4RSTMCLKOSS-3CMP-復位脈沖輸入端主時鐘輸出端SPI接口的從機選擇信號(切換2)比較器負極輸入端19P5.5CMP+———比較器正極輸入端1.3.2總體結(jié)構(gòu)早期51單片機的內(nèi)核結(jié)構(gòu)Intel公司的MCS-51單片機系列產(chǎn)品及各芯片廠商推出的各種51兼容產(chǎn)品都具有基本相同的內(nèi)核組成結(jié)構(gòu)。其基本組成包括CPU、一定容量的存儲器(包括數(shù)據(jù)存儲器和程序存儲器)、并行I/O口、中斷控制部件、其他的功能部件(包括定時/計數(shù)器、串行輸入/輸出接口等)。單片機內(nèi)部各功能組件通過內(nèi)部總線相連。

STC15W4K32S4單片機詳細結(jié)構(gòu)圖STC單片機具有51單片機最基本的內(nèi)核結(jié)構(gòu),同時增加了不少功能部件。1.CPU中央處理器CPU是單片機的核心,主要由運算部件、控制部件和專用寄存器組成。CPU功能可概況為以下三條:①產(chǎn)生控制信號②控制數(shù)據(jù)傳送③對輸入數(shù)據(jù)進行算術(shù)邏輯運算及位操作

51單片機的存儲體系將存儲空間分為程序存儲器及數(shù)據(jù)存儲器兩個獨立的存儲地址空間。這些空間物理上分布于芯片內(nèi)和芯片外。在芯片內(nèi),STC15W4K32S4,片內(nèi)有32KB的Flash存儲器;還有一定數(shù)量的數(shù)據(jù)存儲器,采用RAM的形式,用于存儲程序運行過程中產(chǎn)生的中間結(jié)果等;這個片內(nèi)的數(shù)據(jù)存儲器空間,還包括一些用于存儲控制其他功能部件(如定時器)運行方式和參數(shù)的信息單元,這些稱為特殊功能寄存器(SpecialFunctionRegister,SFR)。STC15系列的單片機片內(nèi)還有一個單獨編址的Flash存儲區(qū)(片內(nèi)EEPROM),用于存放那些程序運行時可實時修改但系統(tǒng)斷電后需要保持不變的數(shù)據(jù)。2.存儲器并行開關(guān)量(數(shù)字量)的輸入/輸出?是微控制器最基本的功能。STC15系列單片機提供了最多8個可編程的并行I/O口(根據(jù)封裝的不同,端口數(shù)也不同)。大部分I/O口是8位的,有些口不足8位。4.其他功能部件單片機內(nèi)一般還集成有中斷邏輯、兩個或多個16位定時/計數(shù)器、一個或多個全雙工串行口、多路A/D轉(zhuǎn)換單元、同步串行數(shù)據(jù)傳輸SPI接口、多路PWM脈寬調(diào)制輸出、多路比較器、看門狗和內(nèi)部上電復位電路、高精度RC時鐘ISP/IAP接口等功能部件,這些部件給單片機的應用帶來了極大的方便,具體結(jié)構(gòu)和應用方式見以后的敘述。3.并行I/O口1.4STC15單片機存儲體系結(jié)構(gòu)51單片機的存儲空間在邏輯上分為程序存儲器空間和數(shù)據(jù)存儲器空間,二者都有獨立的地址空間。對于STC15系列的單片機,可以說是有5個獨立的存儲器編址空間:程序存儲器空間(位于片內(nèi)),片內(nèi)基本數(shù)據(jù)RAM空間,片內(nèi)擴展數(shù)據(jù)RAM空間,片內(nèi)掉電不丟失的數(shù)據(jù)Flash(又稱為EEPROM)空間,片外數(shù)據(jù)存儲器空間。51單片機沒有獨立的I/O地址空間。若需要擴充I/O接口并分配訪問地址,則需要占用片外數(shù)據(jù)存儲器空間,即采用“內(nèi)存映像”方式進行訪問。STC系列單片機存儲體系結(jié)構(gòu)1程序存儲器(程序Flash)程序存儲器用于存放程序代碼以及常數(shù)表格。程序存儲器地址空間為64KB,地址從0000H到0FFFFH。經(jīng)典單片機可能在片內(nèi)集成較少的程序存儲器空間,然后允許用戶在片外擴充至總空間為64KB,STC15單片機各型號芯片片內(nèi)分別集成了8?61KB容量的Flash程序存儲器,STC公司認為已足夠適用于各種應用系統(tǒng),因此不再允許用戶在片外再擴充程序存儲器了,這樣,對于STC15系列單片機,所有程序存儲器都位于片內(nèi)。各型號芯片,不管其片內(nèi)程序存儲器容量多大,都是從0000H開始連續(xù)編址。用戶程序只能通過MOVC指令讀程序存儲器的內(nèi)容,不能寫程序存儲器單元(指帶STC頭的產(chǎn)品)。STC15系列單片機程序存儲空間中,有一些特殊地址單元已定義為特殊用途。這些特殊地址單元如下。0000H?0002H:復位地址,此地址存放系統(tǒng)復位后單片機執(zhí)行的用戶程序第一條指令的代碼。0003H:外部中斷0入口地址。000BH:定時/計數(shù)器0溢岀中斷入口地址。0013H:外部中斷1入口地址。001BH:定時/計數(shù)器1溢出中斷入口地址。0023H:串行口1中斷入口地址。以上是經(jīng)典51單片機程序存儲器所占用的情況。

2.基本RAM單片機的內(nèi)部數(shù)據(jù)存儲器結(jié)構(gòu)如圖所示。片內(nèi)數(shù)據(jù)存儲器地址范圍是00H~FFH,只有256個字節(jié)。(1)低128字節(jié)。低128字節(jié)根據(jù)RAM作用的差異性,又分為工作寄存器區(qū)、位尋址區(qū)和用戶RAM區(qū)。1).工作寄存器組區(qū)2).位尋址區(qū)3).用戶RAM區(qū)(2)高128字節(jié)。高128字節(jié)的地址為80H?FFH,屬普通存儲區(qū)域,但高128字節(jié)地址與特殊功能寄存器區(qū)的地址是相同的。片內(nèi)數(shù)據(jù)存儲器的配置1).工作寄存器組區(qū)最低32個單元(地址為00H~1FH)是4個通用工作寄存器組。每個寄存器組含有8個8位寄存器,編號為R0~R7。程序狀態(tài)字PSW中的2位RS0、RS1用來確定當前采用哪一個工作寄存器組,其對應關(guān)系如表所示。RS1RS0工作寄存器組000組(00H~07H)011組(08H~0FH)102組(10H~17H)113組(18H~1FH)在某一時刻只能選用其中的一組寄存器工作,系統(tǒng)復位后,指向工作寄存器組0。如果用戶程序不需要4個工作寄存器區(qū),則不用的工作寄存器單元可以作一般的RAM使用。2).位尋址區(qū)單元地址MSB位地址LSB2FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4AH49H48H28H47H46H45H44H43H42H41H40H27H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H32H31H30H25H2FH2EH2DH2CH2BH2AH29H28H24H27H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH0EH0DH0CH0BH0AH09H08H20H07H06H05H04H03H02H01H00HRAM位尋址區(qū)地址表3).用戶RAM區(qū)30H~7FH共80個字節(jié)單元,為字節(jié)尋址的內(nèi)部RAM區(qū),可供用戶作為數(shù)據(jù)存儲區(qū)。這一區(qū)域的操作指令非常豐富,數(shù)據(jù)處理方便靈活,是非常寶貴的資源。但是,如果堆棧指針初始化時設置在這個區(qū)域,就要留出足夠的字節(jié)單元作為堆棧區(qū),以防止在數(shù)據(jù)存儲時,破壞了堆棧的內(nèi)容。堆棧:是按先進后出或后進先出原則進行讀/寫的特殊RAM區(qū)域。51單片機的堆棧區(qū)是不固定的,原則上可設置在內(nèi)部RAM的任意區(qū)域內(nèi)。實際使用時要根據(jù)對片內(nèi)RAM各功能區(qū)的使用情況而靈活設置,應避開工作寄存器區(qū)、位尋址區(qū)和用戶實際使用的數(shù)據(jù)區(qū),一般設在2FH地址單元以后的區(qū)域。

堆棧的作用:主要用在子程序調(diào)用或中斷處理過程中,用于保護斷點和現(xiàn)場,實現(xiàn)子程序或中斷的多級嵌套處理。在CPU響應中斷或調(diào)用子程序時,會自動地將斷點處的16位返回地址壓入堆棧。在中斷服務程序或子程序結(jié)束時,返回地址會自動由堆棧彈出,并放回到程序計數(shù)器PC中,使程序從原斷口處繼續(xù)執(zhí)行下去。(3)特殊功能寄存器可位尋址不可位尋址地址+0+1+2+3+4+5+6+780HP011111111SP00000111DPL00000000DPH00000000S4CON00000000S4BUFXXXXXXXX-PCON0011000088HTCON00000000TMOD00000000TL000000000TL100000000TH000000000TH100000000AUXR00000001INT_CLKOAUXR20000000090HP111111111P1M100000000PlM000000000P0M100000000P0M000000000P2M100000000P2M000000000CUK_DIVPCON298HSCON00000000SBUFXXXXXXXXS2CON00000000S2BUFXXXXXXXX—PlASF00000000——A0HP211111111BUS_SPEEDXXXXXX10P_SW100000000—一———A8HIE00000000SADDRWKTCLWKTCL_CNT01111111WKTCHWKTCH_CNT01111111S3C0N00000000S3BUFXXXXXXXX—IE2X0000000BOHP311111111P3M100000000P3M000000000P4M100000000P4M000000000IP2XXX00000IP2HXXXXXX00IPHX0000000B8HipX0X00000SADENP_SW2—ADC_CONTR00000000ADC_RES00000000ADC_RESL00000000—C0HP411111111WDT_CONTR0X000000IAP_DATA11111111IAP_ADDRH00000000IAP_ADDRL00000000IAP_CMDXXXXXX00IAP_TRIGXXXXXXXXIAP_CONTR00000000C8HP511111111P5M1XX000000P5M0XX000000P6M100000000P6M000000000SPSTAT00XXXXXXSPCTL00000100SPDAT00000000D0HPSW00000000T4T3M00000000T4H00000000T4L00000000T3H00000000T3L00000000T2H00000000T2L00000000D8HCCON00XX0000CMOD0XXXX000CCAPM0X0000000CCAPM1X0000000CCAPM2X0000000——一E0HACC00000000P7M100000000P7M000000000—————E8HP611111111CL00000000CCAPOL00000000CCAP1L00000000CCAP2L00000000———F0HB00000000PWMCFG00000000PCA_PWM000XXXX00PCA_PWM100XXXX00PCA_PWM200XXXX00PWMCR00000000PWMIFX0000000PWMFDCRXX000000F8HP711111111CH00000000CCAP0H00000000CCAP1H00000000CCAP2H00000000———3.片內(nèi)擴展的數(shù)據(jù)RAM空間(XRAM)STC15的大部分產(chǎn)品,在片內(nèi)還擴展了另一部分數(shù)據(jù)存儲器空間,這部分空間一般比上述基本數(shù)據(jù)RAM要大得多。以STC15W4K32S4為例,這部分空間為4KB-256B=3840B,這部分空間使用16位地址訪問,地址編碼為0000?0EFFH。單片機對這部分空間的訪問,使用和訪問片外數(shù)據(jù)存儲器空間一樣的指令(即MOVX指令),單片機會根據(jù)SFR中地址為8EH的寄存器AUXR的D1位(名為EXTRAM)的狀態(tài),決定是訪問片外的地址單元,還是片內(nèi)的相應地址單元。當EXTRAM=0時,單片機MOVX指令訪問片內(nèi)的單元;當EXTRAM=1時,單片機MOVX指令訪問片外的單元。用戶可以用指令改變EXTRAM的狀態(tài)。4片內(nèi)數(shù)據(jù)Flash存儲器(EEPROM)寄存器名地址MSB位地址及符號LSB復位值IAP_DATAC2H

11111111BIAP_ADDRHC3H

0000000BIAP_ADDRLC4H

00000000B1AP_CMDC5HMS1MS0xxxxx000BIAP_TRIGC6H

xxxxxxxxBIAP_CONTRC7HIAPENSWBSSWRSTCMDFAILWT2WT1WT00000x000BSTC15系列單片機片內(nèi)還集成了一塊較大容量的EEPROM(電可擦可編程只讀存儲器),用于掉電不丟失數(shù)據(jù)的存儲,一般稱為數(shù)據(jù)Flash。該數(shù)據(jù)Flash有單獨的地址空間,采用IAP技術(shù)(“在應用編程”,即下面要介紹的訪問方法)訪問時,地址編址從0開始。在對數(shù)據(jù)Flash做IAP技術(shù)操作時,涉及如表1-15所示的特殊功能寄存器。1.5并行I/O口并行I/O接口是實際應用中使用最多、最普遍的接口類型,開關(guān)量的輸入/輸出都是通過并行I/O接口實現(xiàn)的。STC15系列單片機,根據(jù)芯片型號和封裝的不同,最多具有P0?P7共8個I/O口,62根口線。每個端口的每個口線,均具有輸岀的鎖存和驅(qū)動,以及輸入的三態(tài)緩沖,它們都可以被用戶程序配置為4種工作模式之一。1.5.1I/O口的工作模式及其設置STC15單片機的所有I/O口均有4種工作模式:準雙向口(傳統(tǒng)8051單片機I/O模式)、推挽輸出、僅為輸入(高阻狀態(tài))與開漏模式。

每個口的工作模式由PnMl和PnM0(n=0,1,2,3,4,5,6,7)兩個寄存器的相應位來控制。例如,P0M1和P0M0用于設定P0口的工作模式,其中P0M1.0和P0M0.0用于設置P0.0的工作模式,P0M1.7和P0M0.7用于設置P0.7的工作模式,以此類推。模式控制信號I/O口工作模式PnMlPnM0000準雙向口(傳統(tǒng)8051單片機I/O模式):灌電流可達20mA,拉電流為150?230uA101推挽輸出:強上拉輸出,可達20mA,要外接限流電阻210僅為輸入(高阻)311開漏:內(nèi)部上拉電阻斷開,要外接上拉電阻才可以拉高。此模式可用于5V器件與3V器件電平切換1.模式0——準雙向I/O口模式準雙向口工作模式下,I/O口的電路結(jié)構(gòu)如圖1.7所示。此模式下,I/O口可用直接輸出而不需重新配置口線輸出狀態(tài)。這是因為當口線輸出為“1”時驅(qū)動能力很弱,允許外部裝置將其拉低電平。當引腳輸出為低電平時,它的驅(qū)動能力很強,可吸收相當大的電流。圖1.7準雙向口工作模式I/O口的電路結(jié)構(gòu)2.模式1——推挽輸出工作模式圖1.8推挽輸入輸出工作模式下I/O口的電路結(jié)構(gòu)

推挽輸出工作模式下,I/O口的電路結(jié)構(gòu)如圖1.8所示。此模式下,I/O口輸出的下拉結(jié)構(gòu)、輸入電路結(jié)構(gòu)與準雙向口模式是一致的,不同的是推挽輸出工作模式下I/O口的上拉是持續(xù)的“強上拉”,若輸出高電平,輸出拉電流最大可達20mA;若輸出低電平時,輸出灌電流最大可達20mA。當從端口引腳上輸入數(shù)據(jù)時,必須先向端口鎖存器置“1”,使T2截止。3.模式2——僅為輸入(高阻)工作模式僅為輸入(高阻)工作模式下,I/O口的電路結(jié)構(gòu)如圖1.9所示。此模式下,可直接從端口引腳讀入數(shù)據(jù),而不需要先對端口鎖存器置“1”。圖1.9僅為輸入(高阻)工作模式下I/O口的電路結(jié)構(gòu)4.模式3——開漏工作模式開漏工作模式下,I/O口的電路結(jié)構(gòu)如圖1.10所示。此模式下,I/O口輸出的下拉結(jié)構(gòu)與推挽輸出/準雙向口一致,輸入電路與準雙向口一致,但輸岀驅(qū)動無任何負載,即開漏狀態(tài),輸出應用時,必須外接上拉電阻。圖1.10開漏輸出工作模式下I/O口的電路結(jié)構(gòu)1.5.2并行I/O口使用注意事項1.關(guān)于數(shù)據(jù)/地址/控制三總線

微型計算機系統(tǒng)一般采用三總線結(jié)構(gòu),即以數(shù)據(jù)總線DB、地址總線AB、控制總線CB連接各組成部件。對于STC15單片機為主處理器組成的系統(tǒng)來說,也是采用這樣的結(jié)構(gòu)。STC15單片機的數(shù)據(jù)總線,由P0口提供,雙向8位,地址總線16位,由P0、P2口提供,P0口提供低8位地址、數(shù)據(jù)總線復用,P2口提供高8位地址??刂瓶偩€主要信號由P3、P4口提供,例如,/WR、/RD、ALE等。如圖1.11所示為STC15單片機片外擴展三總線的一般模型圖。圖1.11STC15單片機三總線擴展模型2.引腳口線的多功能性STC單片機的口線,除上述介紹的三總線以外,其他也都具有多種功能。具體功能安排請見芯片的引腳圖。這里需要注意一種情況,即STC15單片機的一些產(chǎn)品,如STC15W4K60S4等,可以將幾種特殊的片內(nèi)部件的引腳,在多個端口間切換。例如,串口1的RxD和TxD引腳,既可安排在P3.0和P3.1上,也可安排在P3.6和P3.7上,還可安排在P1.6和P1.7上,串口1的這種安排,用戶可以通過設置AUXR1(P_SW1)的SFR(地址0A2H)的D7、D6位的狀態(tài)來控制。類似的部件還包括PCA/CCP/PWM、SPI、串口2?4等。當然,在實際應用中,這些部件的功能引腳顯然各自只能出現(xiàn)在某一個口線上。同樣,若單片機系統(tǒng)需要使用某一口線的第二或第三功能,則相應口線也不能再作為一般的I/O使用了。3.復位狀態(tài)和驅(qū)動能力

單片機復位后,各端口鎖存器SFRs置全1。各端口處于準雙線/弱上拉工作模式,進入程序后,用戶可按實際需要,任意設置成4種工作模式之一。必須注意,不管該口線是工作在普通I/O還是第二功能、第三功能,若非工作于模式2--僅輸入模式,則當需要從引腳輸入時,都需要先向口線鎖存器SFR的對應位寫1。復位后各端口引腳已處于可輸入狀態(tài),若在運行過程中,修改了口線SFR對應位的狀態(tài),又需要使用該口線的輸入功能,必須先向?qū)逆i存器SFR相應位寫入l。STC15單片機的口線,都具有最大20mA的灌電流輸岀驅(qū)動能力,若工作于模式1--推挽輸出模式,則還有20mA的拉電流驅(qū)動力。但是,單片機芯片總的功耗有限制,一般40引腳以上的芯片,總電流不超過120mA,40引腳以下的芯片,總電流不能超過90mA。因此,用戶在設計時,并不能每個引腳都使用其最大驅(qū)動能力。絕大部分引腳在驅(qū)動較大負載時,需外加驅(qū)動芯片或三極管增加驅(qū)動能力。

單片機在運行過程中,除了可能執(zhí)行讀引腳狀態(tài)的操作外,還可能有另外一種讀并行口的操作,即讀口鎖存器狀態(tài)的操作。此時單片機內(nèi)部會將端口鎖存器的狀態(tài)讀入內(nèi)部總線。顯然,讀引腳狀態(tài)和讀口鎖存器狀態(tài),其結(jié)果是不一樣的。

哪些指令產(chǎn)生讀口鎖存器的操作,哪些產(chǎn)生讀引腳的操作呢?單片機對并行口的“讀—改—寫”指令執(zhí)行的是讀口鎖存器的操作,除此之外,其他的讀口指令執(zhí)行的是讀引腳的操作。所謂“讀—改—寫”指令,是指那些先將端口(鎖存器)數(shù)據(jù)讀入,經(jīng)過運算修改后,再寫回端口(鎖存器)的指令。例如ANLP0,A,該指令將P0口鎖存器的內(nèi)容和A累加器相與,結(jié)果回寫到P0口鎖存器,這里開始讀的就是P0口鎖存器。類似的指令還有以端口為目標操作數(shù)的ORL、XRL、JBC、CPL、INC、DEC等指令4.讀端口與讀鎖存器的區(qū)別1.6STC15單片機時鐘、復位及啟動流程1.6.1時鐘電路微處理器作為一個復雜的時序邏輯電路,其工作必須要有時鐘驅(qū)動。給單片機提供合適的時鐘是單片機能正常工作的基本條件。主頻時鐘的頻率也直接決定單片機執(zhí)行指令的速度。1.外部時鐘圖1.12外接晶振產(chǎn)生時鐘圖1.13直接外接時鐘2.內(nèi)部R/C時鐘STC15單片機也可以選擇使用片內(nèi)產(chǎn)生的R/C時鐘,有些芯片則只能使用這種方式。STC15系列單片機選擇這種時鐘方式時,需要在給芯片裝入程序代碼時進行適當設置。利用STC公司發(fā)布的ISP(在系統(tǒng)編程)軟件—STC-ISP(V6.86),可以完成程序代碼的下載(寫入單片機片內(nèi)程序Flash)及其他的一些初始化的設置,操作界面如圖1.14所示。3.主時鐘分頻、時鐘輸出和分頻寄存器SFRNameD7D6D5D4D3D2D1D0CLK_DIV(PCON2)MCKO_S1MCKO_S0ADRJTx_RxMCLKO_2CLKS2CLKS1CLKS0以上方法產(chǎn)生的時鐘稱為主時鐘MCLK,單片機內(nèi)部控制CPU、定時器、串行口、SPI、CCP/PWM/PCA、A/D轉(zhuǎn)換的實際工作時鐘稱為系統(tǒng)時鐘SysClk(相當于經(jīng)典51單片機中的機器周期概念)。系統(tǒng)時鐘是對主時鐘分頻而得,分頻系數(shù)由一個SFR時鐘分頻控制器(CLK_DIV,地址97H)設置,CLK_D1V寄存器各位的定義如表所示。(1)CLKS2、CLKS1、CLKS0:系統(tǒng)時鐘頻率選擇控制位,單片機系統(tǒng)時鐘頻率由這三位配置,具體設置情況如表所示。CLKS2CLKS1CLKS0系統(tǒng)時鐘頻率設置000主時鐘頻率/l,不分頻001主時鐘頻率/2010主時鐘頻率/4011主時鐘頻率/8100主時鐘頻率/16101主時鐘頻率/32110主時鐘頻率/64111主時鐘頻率/128通過設置CLKS2、CLKS1、CLKS0這三位,可以讓單片機在較低的頻率上運行。(2)MCKO_S1及MCKO_S1設置引腳MCLKO/P5.4或MCLKO_2/P1.6是否對外輸岀時鐘,輸出的時鐘頻率為多少,具體情況見表。MCKO_S1MCKO_S0引腳MCLKO或MCLKO_2對外輸出時鐘設置00不對外輸出時鐘01對外輸出時鐘,輸出時鐘頻率不分頻10對外輸出時鐘,輸出時鐘頻率2分頻11對外輸出時鐘,輸出時鐘頻率4分頻還需要注意,STC15系列中,有的芯片輸岀的是系統(tǒng)時鐘的分頻信號,如STC15W4K32S4系列等,有的芯片輸出的是主時鐘的分頻信號,如STC15W404S系列等。具體情況請見STC15產(chǎn)品手冊。此外,STC15系列5V單片機I/O口的對外輸出速度最快不超過13.5MHz,3.3V單片機I/O口的對外輸出速度最快不超過8MHz,這個限制也需要在輸出時鐘時予以考慮。

(3)MCLKO_2設置是在MCLKO/P5.4引腳還是在MCLKO_2/P1.6引腳上輸出時鐘,為0在MCLKO引腳,為1在MCLK0_2引腳。4.STC15單片機時序說明

所謂時序,一般指的是在CPU運行時,引腳信號隨著時鐘而變化的時間與次序的安排。單片機的特點是,大部分指令的執(zhí)行,只需在芯片內(nèi)完成,因此也無引腳信號的變化。只是在執(zhí)行片外數(shù)據(jù)存儲器讀/寫操作時,才涉及片外總線的變化,而引起片外三總線的操作時序。(1)主時鐘頻率,系統(tǒng)時鐘頻率,機器周期。

主時鐘頻率MCLK系統(tǒng)時鐘頻率SysClk機器周期(2)指令執(zhí)行時間。指令的執(zhí)行時間,即指令執(zhí)行所需要的機器周期數(shù)。傳統(tǒng)上,將指令的執(zhí)行時間簡稱為指令周期。STC15單片機的各類指令所需要的時間不同,總體來說,這些指令執(zhí)行時間和指令長度(即指令代碼的字節(jié)數(shù))分為以下幾種類型。①單字節(jié)單周期②雙字節(jié)單周期③單字節(jié)雙周期④多字節(jié)多周期1.7復位

單片機復位的意義是給片內(nèi)各寄存器和觸發(fā)器一個確定的初始狀態(tài)。可靠的復位是單片機能正確執(zhí)行用戶程序的必要前提。STC15單片機的復位有兩種類型4種組合:

冷啟動/熱啟動復位

硬(件)復位/軟(件)復位。

具體共有7種復位方式,包括:外部RST引腳復位,軟件復位,掉電復位/上電復位,內(nèi)部低壓檢測復位,MAX810專用復位電路復位,看門狗復位以及程序地址非法復位。熱啟動復位和冷啟動復位對照表復位種類復位源上電復位標志(POF)復位后程序啟動區(qū)域冷啟動復位系統(tǒng)停電后再上電引起的硬復位1從系統(tǒng)ISP監(jiān)控程序區(qū)開始執(zhí)行程序,如果檢測不到合法的ISP下載命令流,將軟復位到用戶程序區(qū)執(zhí)行用戶程序熱啟動復位通過控制RST引腳產(chǎn)生的硬復位不變從系統(tǒng)ISP監(jiān)控程序區(qū)開始執(zhí)行程序,如果檢測不到合法的ISP下載命令流,將軟復位到用戶程序區(qū)執(zhí)行用戶程序內(nèi)部看門狗復位不變?nèi)?SWBS)=1,復位到系統(tǒng)ISP監(jiān)控程序區(qū):若(SWBS)=0,復位到用戶程序區(qū)0000H處通過對IAP_CONTR寄存器操作的軟復位不變?nèi)?SWBS)=1,軟復位到系統(tǒng)ISP監(jiān)控程序區(qū);若(SWBS)=0,軟復位到用戶程序區(qū)0000H處1.復位操作有關(guān)寄存器1).ISP/IAP控制寄存器ISP/IAP控制寄存器(IAP_CONTR,地址0C7H)各位定義如表1-23所示。位D7D6D5D4D3D2D1D0定義IAPENSWBSSWRSTCMD_FAIL—WT2WT1WT0其中,SWBS為0,則復位后從用戶應用程序區(qū)啟動,為1從系統(tǒng)ISP監(jiān)控程序區(qū)啟動(用于下載用戶程序代碼至本芯片的程序存儲器)。SWRST為1,軟件控制產(chǎn)生復位;為0:無操作。2).電源控制寄存器電源控制寄存器(PCON,地址87H)各位定義如表1-24所示。位D7D6D5D4D3D2D1D0定義SMODSMOD0LVDFPOFGF1GF0PDIDL表1-24中,POF為冷啟動復位標志,所謂冷啟動,指單片機從無電到接通電源所進行的復位操作。當單片機冷啟動復位后,POF=1;除此之外的熱啟動,此位保持不變。在冷啟動后,此位可以立即用軟件清零,如此,用戶程序可以通過此位的狀態(tài)是0還是1,來判斷單片機是否是冷啟動。2.復位的實現(xiàn)1)MAX810專用復位電路復位2)外部RST引腳復位3)內(nèi)部低壓檢測復位。4)看門狗復位5)軟件復位。6)掉電復位/上電復位7)程序地址非法復位走近科學北斗衛(wèi)星導航系統(tǒng)由空間段、地面段和用戶段三部分組成,可在全球范圍內(nèi)全天候、全天時為各類用戶提供高精度、高可靠定位、導航、授時服務,并且具備短報文通信能力,已經(jīng)初步具備區(qū)域?qū)Ш?、定位和授時能力,定位精度為分米、厘米級別,測速精度0.2米/秒,授時精度10納秒。2020年7月31日上午,北斗三號全球衛(wèi)星導航系統(tǒng)正式開通。中國北斗衛(wèi)星導航系統(tǒng)是中國自行研制的全球衛(wèi)星導航系統(tǒng),也是繼GPS、GLONASS之后的第三個成熟的衛(wèi)星導航系統(tǒng)。北斗衛(wèi)星導航系統(tǒng)(BDS)和美國GPS、俄羅斯GLONASS、歐盟GALILEO,是聯(lián)合國衛(wèi)星導航委員會已認定的供應商。北斗衛(wèi)星1.8匯編語言簡介1、七種尋址方式2、數(shù)據(jù)傳送類指令3、算術(shù)運算類指令4、控制轉(zhuǎn)移類指令5、匯編語言程序設計匯編語言指令標號:

操作碼

目的操作數(shù),源源操作數(shù)

;注釋符號含

義$當前指令起始地址/對該位內(nèi)容取反Rel轉(zhuǎn)移指令8位偏移量Rn當前R0-R7RiR0R1(i=0、1)#data8/168位常數(shù)(立即數(shù))、16位常數(shù)(立即數(shù))Addr11/1611位目的地址、16位目的地址direct直接地址(00H-FFH)或指SFRbit位地址@間接尋址符號(前綴)(x)X中的內(nèi)容/數(shù)據(jù)((x))由X作為地址存儲單元中的內(nèi)容數(shù)據(jù)傳送方向代碼字節(jié)指令代碼匯編指令指令周期單字節(jié)84DIVAB四周期單字節(jié)A3INCDPTR雙周期雙字節(jié)7410MOVA,#10H單周期三字節(jié)B440relCJNEA,#40H,LOOP雙周期1.8.1尋址方式1立即數(shù)尋址例如:MOVA,#52H;A

52H

MOVDPTR,#5678H;DPTR

5678H2直接尋址

在指令中含有操作數(shù)的直接地址,該地址指出了參與操作的數(shù)據(jù)所在的字節(jié)地址或位地址。

3寄存器尋址

由指令指出某一個寄存器中的內(nèi)容作為操作數(shù),這種尋址方式稱為寄存器尋址。寄存器一般指累加器A和工作寄存器R0~R7。例如:

MOVA,Rn;A

(Rn)其中n為0~7之一,Rn是工作寄存器。

MOVRn,A;Rn

(A)

MOVB,A;B

(A)

寄存器尋址方式的尋址范圍包括:

寄存器尋址的主要對象是通用寄存器,共有4組32個通用寄存器,但寄存器尋址只能使用當前寄存器組。因此指令中的寄存器名稱只能是R0~R7。在使用本指令前,需通過對PSW中RS1、RS0位的狀態(tài)設置,來進行當前寄存器組的選擇。

部分專用寄存器。累加器A、B寄存器以及數(shù)據(jù)指針DPTR等。4

寄存器間接尋址方式

由指令指出某一個寄存器的內(nèi)容作為操作數(shù),這種尋址方式稱為寄存器間接尋址。

寄存器間接尋址用符號“@”表示。例如:MOVR0,#60H;R0

60HMOVA,@R0;A

((R0))MOVA,@R1;A

((R1))5

位尋址

位操作指令能對內(nèi)部RAM中的位尋址區(qū)(20H~2FH)和某些有位地址的特殊功能寄存器進行位操作。也就是說可對位地址空間的每個位進行位狀態(tài)傳送、狀態(tài)控制、邏輯運算操作。例如指令

SETBTR0;TR0

1CLR00H;(00H)

0MOVC,57H;將57H位地址的內(nèi)容傳送到位累加器C中ANLC,5FH;將5FH位狀態(tài)與進位位C相與,結(jié)果在C中6

基址寄存器加變址寄存器間接尋址

它以基址寄存器(DPTR或PC)的內(nèi)容為基本地址,加上變址寄存器A的內(nèi)容形成16位的地址,訪問程序存儲器中的數(shù)據(jù)表格。例如;

MOVCA,@A+DPTRMOVCA,@A+PCJMP@A+DPTRMOVCA,@A+DPTR7

相對尋址

相對尋址以程序計數(shù)器PC的當前值作為基地址,與

指令中給出的相對偏移量rel進行相加,把所得之和作為程序的轉(zhuǎn)移地址。這種尋址方式用于相對轉(zhuǎn)移指令中,指令中的相對偏移量是一個8位帶符號數(shù),用補碼表示。可正可負,轉(zhuǎn)移的范圍為-128~+127。使用中應注意rel的范圍不要超出。例如:

JZLOOP

DJNER0,DISPLAY1.8.2指令系統(tǒng)1.8.2.1數(shù)據(jù)傳送類指令

數(shù)據(jù)傳送類指令用到的助記符有:MOV,MOVX,MOVC,XCH,XCHD,PUSH,POP,SWAP。1.以累加器為目的操作數(shù)的內(nèi)部數(shù)據(jù)傳送指令MOVA,Rn;A

(Rn)MOVA,direct;A

(direct)MOVA,@Ri;A

((Ri))MOVA,#data;A

data2.數(shù)據(jù)傳送到工作寄存器Rn的指令

MOVRn,A;Rn

(A)MOVRn,direct;Rn

(direct)MOVRn,#data;Rn

data3.數(shù)據(jù)傳送到內(nèi)部RAM單元或特殊功能寄存器SFR的指令MOVdirect,A;direct

(A)MOVdirect,Rn;direct

(Rn)MOVdirect1,direct2;direct1

(direct2)MOVdirect,@Ri;direct

((Ri))MOVdirect,#data;direct

#dataMOV@Ri,A;(Ri

(A)MOV@Ri,direct ;(Ri)

(direct)MOV@Ri,#data ;(Ri)

dataMOVDPTR,#data16;DPTR

data164.累加器A與外部數(shù)據(jù)存儲器之間的傳送指令MOVXA,@DPTR;A

(DPTR)MOVXA,@Ri;A

((Ri))MOVX@DPTR,A;(DPTR)

AMOVX@Ri,A;(Ri)

A5

、程序存儲器內(nèi)容與累加器之間傳送MOVCA,@A+PCMOVCA,@A+DPTR6、堆棧操作指令PUSHdirectPOPdirect例如:PUSHPSWPOPDPHPUSHACCPOPDPLPUSHDPLPOPACCPUSHDPHPOPPSW7、字節(jié)交換指令(1)整字節(jié)交換指令XCHA,Rn;(A)

(Rn)XCHA,direct;(A)

(direct)XCHA,@Ri;(A)

((Ri))(2)半字節(jié)交換指令字節(jié)單元與累加器A進行低4位的半字節(jié)數(shù)據(jù)交換。只有一條指令。XCHDA,@Ri

(3)累加器高低半字節(jié)交換指令SWAPA

【例1-13】(R0)=30H,(A)=65H,(30H)=8FH執(zhí)行指令:XCH

A,@R0;(R0)=30H,(A)=8FH,(30H)=65HXCHD

A,@R0;(R0)=30H,(A)=6FH,(30H)=85HSWAP

A;(A)=56H1.8.2.2算術(shù)操作類指令算術(shù)指令用到的助記符共有8種:ADD、ADDC、INC、SUBB、DEC、DA、MUL、DIV。1.加法指令加法指令分為普通加法指令、帶進位加法指令和加1指令。(1)普通加法指令ADDA,Rn;A

(A)+(Rn)ADDA,direct;A

(A)+(direct)ADDA,@Ri;A

(A)+((Ri))ADDA,#data;A

(A)+data

【例1-14】(A)=85H,R0=20H,(20H)=0AFH,執(zhí)行指令:

ADDA,@R0后A,AC,OV,CY的值。(2)帶進位加法指令ADDCA,Rn;A

(A)+(Rn)+(Cy)ADDCA,direct;A

(A)+(direct)+(Cy)ADDCA,@Ri;A

(A)+((Ri))+(Cy)ADDCA,#data;A

(A)+data+(Cy)這組指令的功能與普通加法指令類似,唯一的不同之處是,在執(zhí)行加法時,還要將上一次進位標志Cy的內(nèi)容也一起加進去,對于標志位的影響也與普通加法指令相同。

【例1-15】(A)=85H,(20H)=0FFH,Cy=1執(zhí)行指令:ADDCA,20H

10000101111111111+110000101結(jié)果:(A)=85H;Cy=1;AC=1;OV=0。

(3)增量指令I(lǐng)NCA;A

(A)+1INCRn;Rn

(Rn)+1INCdirect;direct

(direct)+1INC@Ri;(Ri)

((Ri))+1INCDPTR;DPTR

(DPTR)+1【例1-16】(A)=12H,(R3)=0FH,(35H)=4AH,(R0)=56H,(56H)=00H執(zhí)行如下指令:INC

A;執(zhí)

溫馨提示

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

最新文檔

評論

0/150

提交評論