項目1 單燈閃爍控制_第1頁
項目1 單燈閃爍控制_第2頁
項目1 單燈閃爍控制_第3頁
項目1 單燈閃爍控制_第4頁
項目1 單燈閃爍控制_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目1單片機控制單燈閃爍(1)會描述什么是單片機,單片機的特點及應用等知識。(2)初步學會使用單片機的開發(fā)工具KeilC、仿真軟件Proteus進行仿真。(3)學會使用仿真軟件Proteus制作單片機的最小系統(tǒng)電路圖。(4)學會使用KeilC編寫單燈閃爍的控制程序。(5)學會進行軟硬件聯(lián)合仿真。1.1學習目標1項目名稱

單片機控制單燈閃爍2項目要求(1)練習使用Keilc51,Proteus,STC下載軟件等開發(fā)工具。(2)使用AT89C51單片機作為仿真控制器,STC89C51作為硬件電路控制器,控制1個發(fā)光二極管閃爍,時間間隔為0.1S。(3)發(fā)揮功能:①調整發(fā)光二極管亮度。②發(fā)光二極管修改為共陰極接法,如何修改電路圖和程序。③使用單片機P2.0引腳控制發(fā)光二極管以0.2S的時間間隔閃爍。3項目分析使用AT89c51單片機的一個引腳控制一個發(fā)光二極管以0.1秒的時間間隔閃爍。單片機要工作,必須有時鐘電路、復位電路和電源電路,它們和單片機一起構成的電路稱為單片機的最小系統(tǒng),是單片機控制電路的基礎,是必須掌握的單片機基本電路。1.2項目描述發(fā)光二極管(LED,電路符號)是一種最常用的指示器件,近幾年因其成本下降和節(jié)能的特點大量使用在照明設備中。發(fā)光二極管有極性之分,當有足夠的正向電流(正極流向負極的電流,約10mA~30mA)通過時便會發(fā)光。圖1-1-a發(fā)光二極管工作原理圖1-1-b發(fā)光二極管閃爍工作原理1.2項目描述由于單片機系統(tǒng)常常使用+5V電源,而發(fā)光二極管D1只需要2V左右的電壓就可以被點亮,點亮時電流約為15mA。如果在發(fā)光二極管D1兩端直接加+5V將有可能燒毀它。于是我們常常在測量二極管好壞的時候或者是電路設計中串聯(lián)一個限流電阻R1。假設發(fā)光二極管工作電流為15mA,正常工作時兩端的壓降VF=2V,所以電阻R1上應該分擔的電壓為3V。于是得電阻R1的阻值為:R1=3V/15mA=200Ω。如果此電阻取值較大,則發(fā)光二極管亮度不夠,取1KΩ以內的阻值即可(如圖1-1-a所示)。當單片機的P1.0口輸出低電平時(接地),發(fā)光二極管D1正、負極之間獲得電壓而被點亮;當P1.0口輸出高電平時(+5V),發(fā)光二極管D1則熄滅。所以要實現(xiàn)發(fā)光二極管以100ms時間間隔閃爍,變成了讓單片機的P1.0口以100ms為間隔輸出高、低電平。(如圖1-1-b所示)1.2項目描述

圖1-2單個發(fā)光二極管閃爍控制框圖1.2項目描述單片機的概念:把CPU(進行運算、控制)、RAM(數(shù)據(jù)存儲)、ROM(程序存儲)、輸入/輸出設備(例如:串行口、并行口等)、定時器/計數(shù)器、A/D,D/A等集成到一塊集成電路芯片中形成的微處理器就稱為單片機,單片機也稱為MCU(MicroControllerUnit),即微控制器。1.3.1單片機基礎(1)單片機的產生和發(fā)展單片機是由美國的INTEL公司于1971年發(fā)明的,經歷了SCM、MCU、SoC三大階段。(2)單片機硬件特性①單片機集成度高。51系列單片機包括CPU、4KB容量的ROM(8031無)、128B容量的RAM、2個16位定時/計數(shù)器、4個8位并行口、1個全雙工串口行口。②系統(tǒng)結構簡單,使用方便,實現(xiàn)模塊化。③單片機可靠性高,可工作到10^6~10^7小時無故障。④處理功能強,速度快。1.單片機相關知識1.3相關知識(3)單片機的應用目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。單片機應用大致可分如下幾個范疇:①在智能儀器儀表上的應用。(請查閱資料,寫出2種以上應用)②在工業(yè)控制中的應用。(請查閱資料,寫出2種以上應用)③在家用電器中的應用。(請查閱資料,寫出2種以上應用)④在計算機網絡和通信領域中的應用。(請查閱資料,寫出2種以上應用)⑤單片機在醫(yī)用設備領域中的應用。(請查閱資料,寫出2種以上應用)⑥在各種大型電器中的模塊化應用。(請查閱資料,寫出2種以上應用)⑦單片機在汽車設備領域中的應用。(請查閱資料,寫出2種以上應用)1.3.1單片機基礎(4)主要單片機的分類AVR系列/PIC系列51系列單片機(5)嵌入式系統(tǒng)

ARM處理器除具有單片機的功能外,還可以運行嵌入式操作系統(tǒng),可以看成簡化了的PC,因而可以實現(xiàn)許多單片機系統(tǒng)不能完成的功能。比如:嵌入式web服務器,java虛擬機等,從而在智能手機、物聯(lián)網應用等領域應用廣泛。1.3.1單片機基礎單片機芯片①電源:AT89S51的VCC(40管腳)和GND(20管腳)分別為電源端和接地端,AT89S51的供電電壓范圍為直流+4.0~+5.5V。②振蕩電路:XTAL1、XTAL2③復位引腳:RST④并行口:P0、P1、P2、P3,4個端口32位2單片機最小系統(tǒng)1.3.1單片機基礎⑤:訪問程序存儲控制信號/加編程電壓⑥:外部ROM讀選通信號⑦ALE/:地址鎖存控制信號/編程脈沖輸入端⑧P3口第二功能說明如表1-2所示1.3.1單片機基礎表1-2單片機P3口第二功能說明表1.3.1單片機基礎時鐘電路用于產生單片機工作所需的時鐘控制信號,其性能影響單片機系統(tǒng)的穩(wěn)定性。時鐘頻率影響單片機的運行速度。常用時鐘電路有兩種:內部時鐘電路和外部時鐘電路。XTAL1端(19管腳)、XTAL2(18管腳)內部有一個片內振蕩器結構,但仍然需要在XTAL1和XTAL2之間連接一個晶振Y1,并加上兩個容量介于20~40pF的電容C1、C2組成時鐘電路,如圖所示1-4(a)所示。晶振的頻率決定了該系統(tǒng)的時鐘頻率,比如晶振頻率選擇12MHz,那么單片機工作的頻率就是12MHz。根據(jù)系統(tǒng)對速度的要求,一般可以選擇1.2MHz~12MHz的晶振。通常我們使用12MHz的晶振。(1)時鐘電路(a)內部時鐘電路(b)外部時鐘電路1.3.1單片機基礎振蕩周期:振蕩周期是單片機的基本時間單位。主頻為fosc,則振蕩周期是主頻的倒數(shù)。如12MHZ晶振的時鐘周期就是1/12MHZ。時鐘周期:時鐘周期為振蕩周期的2倍。分為兩個節(jié)拍,為P1和P2,每拍為一個振蕩周期。機器周期:6個時鐘周期,12個振蕩周期組成一個機器周期,所以12MHZ晶振的時鐘周期就是:12*(1/12MHZ)=1us。指令周期:若干個機器周期(1、2、4個)組成指令周期。圖1-5時鐘周期1.3.1單片機基礎AT89S51單片機的RST端(9管腳)是復位端。當向RST端輸入一個2個機器周期的高電平單片機就會復位,復位后單片機從0000H開始執(zhí)行程序。如果在單片機執(zhí)行程序的過程中觸發(fā)復位,則單片機立即放棄當前操作而被強行從頭開始執(zhí)行程序。(2)復位電路1.3.1單片機基礎(3)電源電路①方法1:使用電源適配器在市場上購買一個額定電壓5V,額定電源大于500mA的電源適配器,購買一個直流插座,將+5v輸出接單片機的40腳,GND接20腳即可對單片機供電。②方法2:使用USB線供電

圖1-7A型USB接頭根據(jù)表1-3和圖1-7所示,將USB線的一端接PC機,另一端剪斷,將紅色線接單片機的40腳,黑色線接20腳即可對單片機供電。引腳名稱描述顏色1VCC電源紅色2D-數(shù)據(jù)-白色3D+數(shù)據(jù)+綠色4GND地黑色表1-3A型USB接頭定義1.3.1單片機基礎③方法3自己制作單片機供電電源。參考圖1-8進行。

圖1-878系列三端穩(wěn)壓電路供電電路1.3.1單片機基礎最小系統(tǒng),是使用最少的外圍元器件讓單片機能夠工作的電路。AT89C51單片機的最簡系統(tǒng)如圖所示,首先,單片機的VCC接+5V,GND接地獲得工作電源。(仿真不用接)此外,還得有復位電路和振蕩電路。單片機的(31管腳)也接到了+5V上,這是由于目前單片機均自帶程序存儲器,在不需要擴展ROM,直接使用內部自帶的程序存儲器的時候,就要把此引腳接高電平。(4)最小系統(tǒng)1.3.1單片機基礎1.數(shù)字量與模擬量(1)數(shù)字量數(shù)字量:物理量的變化在時間上和數(shù)量上都是離散的。它們數(shù)值的大小和每次變化的增減變化都是某一個最小數(shù)量單位的整數(shù)倍,而小于這個最小數(shù)量單位的數(shù)值沒有任何物理意義。例如:統(tǒng)計書本生產線上的書本數(shù)量,得到的就是一個數(shù)字量,最小數(shù)量單位的“1”代表“一本”書,小于1的數(shù)值沒有任何物理意義。數(shù)字信號:表示數(shù)字量的信號。如矩形脈沖,如圖1-13(a)所示。數(shù)字信號通常都是以數(shù)碼形式給出的。不同的數(shù)碼不僅可以用來表示數(shù)量的不同大小,而且可以用來表示不同的事物或事物的不同狀態(tài)。數(shù)字電路:工作在數(shù)字信號下的電子電路。(2)模擬量模擬量:物理量的變化在時間上和數(shù)值上都是連續(xù)的。例如:熱電偶工作時輸出的電壓或電流信號就是一種模擬信號,因為被測的溫度不可能發(fā)生突跳,所以測得的電壓或電流無論在時間上還是在數(shù)量上都是連續(xù)的。模擬信號:表示模擬量的信號。如正弦信號,如圖1-13(b)所示。模擬電路:工作在模擬信號下的電子電路。這個信號在連續(xù)變化過程中的任何一個取值都有具體的物理意義,即表示一個相應的溫度。1.3.2數(shù)制和編碼tuut

(a)(b)圖1-13數(shù)字信號與模擬信號數(shù)制:把多位數(shù)碼中每一位的構成方法以及從低位到高位的進位規(guī)則稱為數(shù)制。在單片機電路中經常使用的計數(shù)進制有十進制、二進制和十六進制。(1)十進制數(shù)(Decimal)十進制是日常生活中最常使用的進位計數(shù)制。在十進制數(shù)中,每一位有0~9十個數(shù)碼,所以計數(shù)的基數(shù)是10。超過9的數(shù)必須用多位數(shù)表示,其中低位和相鄰高位之間的進位關系是“逢十進一”。

任意十進制數(shù)

D的展開式:

ki是第

i位的系數(shù),可以是0~9中的任何一個。例:將十進制數(shù)12.56展開為:(2)二進制數(shù)(Binary)二進制數(shù)的進位規(guī)則是“逢二進一”,其進位基數(shù)R=2,每位數(shù)碼的取值只能是0或1,每位的權是2的冪。任何一個二進制數(shù),可表示為:

例如:

1.3.2數(shù)制和編碼2.幾種常用的數(shù)制(3)八進制數(shù)(Octal)八進制數(shù)的進位規(guī)則是“逢八進一”,其基數(shù)R=8,采用的數(shù)碼是0、

1、

2、

3、

4、

5、

6、

7,每位的權是

8的冪。任何一個八進制數(shù)也可以表示為:

例如:

(4)十六進制數(shù)(Hexadecimal)十六進制數(shù)的特點是:①采用的16個數(shù)碼為0、

1、

2、

…、

9、

A、

B、

C、

D、

E、

F。符號A~F分別代表十進制數(shù)的10~15。②進位規(guī)則是“逢十六進一”基數(shù)R=16,每位的權是16的冪。任何一個十六進制數(shù),可以表示為:

例如:

任意

N進制數(shù)展開式的普遍形式:

其中

ki是第

i位的系數(shù);ki可以是

0~

N-1中的任何一個;N稱為計數(shù)的基數(shù);Ni稱為第

i位的權。1.3.2數(shù)制和編碼2.幾種常用的數(shù)制(5)不同進制數(shù)的對照表

對于以上4種數(shù)制,關鍵是要對0~15這16個數(shù)字的二、八、十、十六進制形式非常熟悉,達到看到十進制數(shù)就能說出二進制和十六進制的程度。4種進制數(shù)字的對照如表1-4所示。1.3.2數(shù)制和編碼2.幾種常用的數(shù)制十進制二進制八進制十六進制0000010102020303040405050606070708100911101211131214131514161517(1)十—二轉換①整數(shù)轉換——除2取余法。例如:將(57)10轉換為二進制數(shù):②小數(shù)轉換——乘2取整法。例如:將(0.724)10轉換成二進制小數(shù)。1.3.2數(shù)制和編碼3.不同數(shù)制間的轉換(2)二—十轉換二進制數(shù)轉換成十進制數(shù)時,只要將二進制數(shù)按權展開,然后將各項數(shù)值按十進制數(shù)相加,便可得到等值的十進制數(shù)。例如:

同理,若將任意進制數(shù)轉換為十進制數(shù),只需將數(shù)(N)R寫成按權展開的多項式表示式,并按十進制規(guī)則進行運算,便可求得相應的十進制數(shù)(N)10。

(3)二進制數(shù)與八進制數(shù)、十六進制數(shù)之間的相互轉換八進制數(shù)和十六進制數(shù)的基數(shù)分別為8=23,16=24,所以三位二進制數(shù)恰好相當一位八進制數(shù),四位二進制數(shù)相當一位十六進制數(shù),它們之間的相互轉換是很方便的。二進制數(shù)轉換成八進制數(shù)的方法是從小數(shù)點開始,分別向左、向右,將二進制數(shù)按每三位一組分組(不足三位的補0),然后寫出每一組等值的八進制數(shù)。1.3.2數(shù)制和編碼3.不同數(shù)制間的轉換例如,求(01101111010.1011)2的等值八進制數(shù):二進制

001101111010.101100二進制001

101

111

010

101

100

八進制1572.54所以(01101111010.1011)2=(1572.54)8

二進制數(shù)轉換成十六進制數(shù)的方法和二進制數(shù)與八進制數(shù)的轉換相似,從小數(shù)點開始分別向左、向右將二進制數(shù)按每四位一組分組(不足四位補0),然后寫出每一組等值的十六進制數(shù)。例如,將(1101101011.101)轉換為十六進制數(shù):

001101101011.101036B.A所以(1101101011.101)2=(36B.A)16

八進制數(shù)、十六進制數(shù)轉換為二進制數(shù)的方法可以采用與前面相反的步驟,即只要按原來順序將每一位八進制數(shù)(或十六進制數(shù))用相應的三位(或四位)二進制數(shù)代替即可。

例如,分別求出(375.46)8、(678.A5)16的等值二進制數(shù):

二進制

011111101.100110二進制

011001111000.10100101所以

(375.46)8=(011111101.100110)2,(678.A5)16=(011001111000.10100101)21.3.2數(shù)制和編碼3.不同數(shù)制間的轉換(1)算術運算算術運算:當兩個數(shù)碼分別表示兩個數(shù)量大小時,它們可以進行數(shù)量間的加、減、乘、除等運算。這種運算稱為算術運算。二進制算術運算的特點:逢二進一。數(shù)字1在不同的位上代表不同的值,按從右至左的次序,這個值以二倍遞增。二進制四則運算規(guī)則:加法

0+0=0,0+1=1+0=1,1+1=10減法

0-0=0,1-0=1,1-1=0,0-1=-1乘法

0×0=0,0×1=1×0=0,1×1=1除法

0÷1=0,1÷1=1

1.3.2數(shù)制和編碼4.二進制數(shù)的運算(2)原碼、反碼和補碼和補碼運算二進制數(shù)的正、負表示方法通常采用的是在二進制數(shù)的前面增加一位符號位。這種形式的數(shù)稱為原碼。原碼:符號位為0表示這個數(shù)是正數(shù),符號位為1表示這個數(shù)是負數(shù)。以下各位表示數(shù)值。為避免在求補碼的過程中做減法運算,通常是先求出N的反碼,然后在負數(shù)的反碼上加1而得到補碼。反碼:正數(shù)的反碼等于原碼,負數(shù)的反碼:符號位不變,以下各位按位取反。補碼:正數(shù)的補碼等于原碼,負數(shù)的補碼:符號位不變,以下各位按位取反,加1。1.3.2數(shù)制和編碼例1:寫出帶符號位二進制數(shù)00011010(+26)、10011010(-26)、00101101(+45)、和10101101(-45)的反碼和補碼。解:

原碼

反碼

補碼00011010 00011010 0001101010011010 11100101 1110011000101101 00101101 0010110110101101 11010010 110100115.幾種常用的編碼不同的數(shù)碼不僅可以表示數(shù)量的大小,而且還可以表示不同事物或事物的不同狀態(tài)在用于表示不同事物的情況下,這些數(shù)碼已經不再具有表示數(shù)量大小的含義了,它們只是不同事物的代號而已。這些數(shù)碼稱為代碼。例如:每個人編一個身份證號碼,每個學生編一個學號。為了便于記憶和查找,在編制代碼時總要遵循一定的規(guī)則,這些規(guī)則就稱為碼制。(1)十進制代碼用四位二進制碼的10種組合表示十進制數(shù)0~9,簡稱BCD碼(BinaryCodedDecimal)。

這種編碼至少需要用四位二進制碼元,而四位二進制碼元可以有

16種組合。當用這些組合表示十進制數(shù)0~9時,有六種組合不用,如表1-5的第二列所示。①8421BCD碼8421BCD碼是最基本和最常用的BCD碼,它和四位自然二進制碼相似,各位的權值為8、4、2、1,故稱為有權BCD碼。和四位自然二進制碼不同的是,它只選用了四位二進制碼中前10組代碼,即用0000~1001分別代表它所對應的十進制數(shù),余下的六組代碼不用。需要注意的是8421BCD碼本質就是十進制數(shù),只不過用二進制形式描述。②余3碼余3碼是8421BCD碼的每個碼組加3(0011)形成的。余3碼也具有對9互補的特點,即它也是一種9的自補碼,所以也常用于BCD碼的運算電路中。用BCD碼可以方便地表示多位十進制數(shù),例如十進制數(shù)(579.8)10可以分別用8421BCD碼、余3碼表示為1.3.2數(shù)制和編碼1.3.2數(shù)制和編碼十進制數(shù)余

000000011100010100200100101300110110401000111501011000601101001701111010810001011910011100表1-5二種常用的BCD碼1.3.2數(shù)制和編碼(2)格雷碼格雷碼又稱循環(huán)碼。每一位的狀態(tài)變化都按一定的順序循環(huán)。如果從0000開始,最右邊一位的狀態(tài)按0110順序循環(huán)變化,右邊第二位的狀態(tài)按00111100順序變化,右邊第三位按0000111111110000順序循環(huán)變化。其特點是:自右向左,每一位狀態(tài)狀態(tài)中連續(xù)的0、1數(shù)目增加一倍;編碼順序依次變化時,相鄰兩個代碼之間只有一位發(fā)生變化。(3)美國信息交換標準代碼(ASCⅡ)是一組7位二進制代碼,共128個,其中包括表示0~9的十個代碼,表示大、小英文字母的52個代碼,32個表示各種符號的代碼及34個控制碼。ASCⅡ碼表如表1-6所示。在表1-6中,ASCII碼為十進制數(shù),括號內為十六進制數(shù),十六進制形式更常用。如0~9的ASCII碼十六進制為(0x30~0x39);大寫字母A~Z的ASCII碼十六進制為(0x41~0x5A);小寫字母a~z的ASCII碼十六進制為(0x61~0x7A);大小寫相差0X20。在后續(xù)學習的液晶顯示程序中,會使用ASCII碼顯示字符信息。1.3.2數(shù)制和編碼ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符0(0x00)NUT32(0x20)(space)64(0x40)@96(0x60)、1(0x01)SOH33(0x21)!65(0x41)A97(0x61)a2(0x02)STX34(0x22)”66(0x42)B98(0x62)b3(0x03)ETX35(0x23)#67(0x43)C99(0x63)c4(0x04)EOT36(0x24)$68(0x44)D100(0x64)d5(0x05)ENQ37(0x25)%69(0x45)E101(0x65)e6(0x06)ACK38(0x26)&70(0x46)F102(0x66)f7(0x07)BEL39(0x27),71(0x47)G103(0x67)g8(0x08)BS40(0x28)(72(0x48)H104(0x68)h9(0x09)HT41(0x29))73(0x49)I105(0x69)i10(0x0A)LF42(0x2A)*74(0x4A)J106(0x6A)j11(0x0B)VT43(0x2B)+75(0x4B)K107(0x6B)k12(0x0C)FF44(0x2C),76(0x4C)L108(0x6C)l13(0x0D)CR45(0x2D)-77(0x4D)M109(0x6D)m14(0x0E)SO46(0x2E).78(0x4E)N110(0x6E)n15(0x0F)SI47(0x2F)/79(0x4F)O111(0x6F)o16(0x10)DLE48(0x30)080(0x50)P112(0x70)p17(0x11)DCI49(0x31)181(0x51)Q113(0x71)q18(0x12)DC250(0x32)282(0x52)R114(0x72)r19(0x13)DC351(0x33)383(0x53)X115(0x73)s20(0x14)DC452(0x34)484(0x54)T116(0x74)t21(0x15)NAK53(0x35)585(0x55)U117(0x75)u22(0x16)SYN54(0x36)686(0x56)V118(0x76)v23(0x17)TB55(0x37)787(0x57)W119(0x77)w24(0x18)CAN56(0x38)888(0x58)X120(0x78)x25(0x19)EM57(0x39)989(0x59)Y121(0x79)y26(0x1A)SUB58(0x3A):90(0x5A)Z122(0x7A)z27(0x1B)ESC59(0x3B);91(0x5B)[123(0x7B){28(0x1C)FS60(0x3C)<92(0x5C)\124(0x7C)|29(0x1D)GS61(0x3D)=93(0x5D)]125(0x7D)}30(0x1E)RS62(0x3E)>94(0x5E)^126(0x7E)~31(0x1F)US63(0x3F)?95(0x5F)—127(0x7F)DEL表1-6ASCⅡ碼表(1)首先我們要養(yǎng)成一個習慣:每個項目建立一個空文件夾,把該項目的工程文件、C程序文件、Proteus仿真圖形文件放到里面,以避免和其他項目的文件混合,如下圖1-8先創(chuàng)建了一個名為“dpj”文件夾。(2)啟動KEILC軟件1.3.3單片機編程軟件KeilC使用(3)點擊“project---NewuVisionProject”新建一個工程:

在對話框,選擇將工程放在剛才建立的“dpj”文件夾下,給這個工程取個名“test”后保存,不需要填后綴。1.3.3單片機編程軟件KeilC使用(4)在彈出對話框中,在CPU類型下我們找到并選中“Atmel”下的AT89C51或52:(5)以上工程創(chuàng)建完畢,接下來開始建立一個源程序文本文件:1.3.3單片機編程軟件KeilC使用(6)寫入或復制一個完整的C程序源程序存盤,在如圖1-15對話框中輸入源程序文件名名稱,在這里筆者示例輸入“test”,這個名稱,同樣大家可以按規(guī)則命名。注意一定要加上后綴名:如果采用C語言,則是“test.c”;匯編語言,則是“test.asm”,然后保存。1.3.3單片機編程軟件KeilC使用/*程序:xm1-1.c功能:控制一個信號燈閃爍程序*/#include<reg51.h> //包含頭文件REG51.H,定義了MCS-51單片機的特殊功能寄存器sbitP1_0=P1^0; //定義位名稱,注意自定義的位變量P1_0其字母P大寫小寫均可,而//P1^0是特殊功能寄存器的1位,所以P必須大寫。voiddelay(unsignedchari); //延時函數(shù)聲明voidmain() //主函數(shù){while(1){P1_0=1; //點亮信號燈delay(100); //調用延時函數(shù),實際變量為100,實現(xiàn)0.1S延時。P1_0=0; //熄滅信號燈;delay(100); //調用延時函數(shù),實際變量為100,實現(xiàn)0.1S延時。}}//函數(shù)名:delay//函數(shù)功能:實現(xiàn)軟件延時//形式參數(shù):unsignedchari;i控制外循環(huán)次數(shù),共循環(huán)i*124次,實現(xiàn)i*1ms延時。//返回值:無voiddelay(unsignedchari) //延時函數(shù),無符號字符型變量i為形式參數(shù){unsignedcharj,k; //定義無符號字符型變量j和kfor(k=0;k<i;k++) //雙重for循環(huán)語句實現(xiàn)軟件延時for(j=0;j<124;j++); //采用12MHZ晶振,則此循環(huán)的時間約為1ms}1.3.3單片機編程軟件KeilC使用如圖1-16所示,右鍵單擊“SourceGroup1”選擇“AddFiles…”,在對話框中找到自己剛才存盤的C文件,單擊一次“ADD”即可完成,注意在點“ADD”按鈕時會感到奇怪,怎么對話框不會消失呢?不管它,直接點擊“Close”關閉就行了,此時大家可以看到程序文本字體顏色已發(fā)生了變化。如果要移除文件,在左側文件窗口中,右鍵單擊相應的C文件,在菜單中選擇“RemoveFile”,確定即可移除文件。(7)項目中加入源程序1.3.3單片機編程軟件KeilC使用(8)項目并進行設置在Output欄勾選中CreateHEXFile,使編譯器輸出單片機需要的HEX文件設置晶振頻率,建議初學者修改成12M,因12MHZ方便計算指令周期1.3.3單片機編程軟件KeilC使用(9)工程項目創(chuàng)建和設置全部完成!點擊保存并編譯注意避免出現(xiàn)沒有加入源程序就編譯。此時沒有錯誤提示,顯示2個警告休息。查看的方法是點擊SourceGroup1左邊的加號展開項目文件,看到有編輯的C程序名字才能編譯。編譯的C源程序一定要保證圖中1和2是同一個程序。初學者可能會修改的是一個程序,而加入項目中編譯的是另外一個程序。溫馨提示:C51常見錯誤參考附錄一。1.3.3單片機編程軟件KeilC使用(1)進入ProteusISIS(2)工作界面介紹1.3.4仿真工具Proteus使用(3)單擊File/NewDesign,在對話框中單擊“OK”新建文件,保存為RW1.DSN。

(4)加入以下元器件。在圖1-23所示器件對話框中輸入以下元器件的名字,出現(xiàn)器件后,在繪圖區(qū)域單擊鼠標就會出現(xiàn)器件,再在指定位置單擊一下鼠標即可將器件放在繪圖區(qū)域中。1.3.4仿真工具Proteus使用(5)按圖連線注意器件之間要有一定的位置,靠太近則會連接不上。也不要將器件直接放在線上就認為連接好了。連接好電路圖后單擊“Tools/ElectricalRuleCheck…”,進行電氣規(guī)則檢查。顯示“NetlistGeneratedOK”和“NoERCerrorsfound”則表示通過了電氣規(guī)則檢查。1.3.4仿真工具Proteus使用(6)仿真調試a)在仿真電路圖上選中單片機AT899C51,雙擊AT89C51,在出現(xiàn)的對話框里點擊ProgramFile:后面打開文件的按鈕,裝入HEX文件,然后點擊“OK”按鈕;b)點擊模擬調試按鈕的運行按鈕,進人調試狀態(tài);c)觀察發(fā)光二極管是否一亮一滅在閃爍。1.3.4仿真工具Proteus使用1啟動下載軟件下載操作按照下圖進行操作。1.3.5下載工具STC下載軟件使用當顯示一個藍色的進度條后,給實驗板通電就可以完成程序下載過程(如果實驗板已經通電,則必須關掉電源5秒鐘再次通電)。一定要是先斷電——再點下載——再開電!2下載程序1啟動下載軟件1.3.5下載工具STC下載軟件使用先用鼠標右鍵單擊桌面上的“我的電腦”圖標,選擇“管理”,打開如圖1-34的“計算機管理”對話框,在左邊選擇“設備管理”后,再在右邊選擇“端口”,單擊“端口”左側的“+”號,將端口打開,即可看到計算機的串口及串口號。注意,如果計算機沒有自帶的串口,則需要使用USB轉串口線進行轉換。將線接上,安裝驅動程序后,即可在圖1-34中看到轉換后的串口及串口號。圖1-34查看計算機端口1.4項目實施(1)首先單擊File/NewDesign,在對話框中單擊“OK”新建文件,保存為xm1.DSN。(2)加入以下元器件。在圖1-32所示器件對話框

溫馨提示

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

評論

0/150

提交評論