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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

任意十進(jìn)制數(shù)

D的展開式:

ki是第

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

例如:

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

1、

2、

3、

4、

5、

6、

7,每位的權(quán)是

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

例如:

(4)十六進(jìn)制數(shù)(Hexadecimal)十六進(jìn)制數(shù)的特點(diǎn)是:①采用的16個(gè)數(shù)碼為0、

1、

2、

…、

9、

A、

B、

C、

D、

E、

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

例如:

任意

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

其中

ki是第

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

0~

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

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

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

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

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

001101111010.101100二進(jìn)制001

101

111

010

101

100

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

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

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

八進(jìn)制數(shù)、十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的方法可以采用與前面相反的步驟,即只要按原來順序?qū)⒚恳晃话诉M(jìn)制數(shù)(或十六進(jìn)制數(shù))用相應(yīng)的三位(或四位)二進(jìn)制數(shù)代替即可。

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

二進(jìn)制

011111101.100110二進(jìn)制

011001111000.10100101所以

(375.46)8=(011111101.100110)2,(678.A5)16=(011001111000.10100101)21.3.2數(shù)制和編碼3.不同數(shù)制間的轉(zhuǎn)換(1)算術(shù)運(yùn)算算術(shù)運(yùn)算:當(dāng)兩個(gè)數(shù)碼分別表示兩個(gè)數(shù)量大小時(shí),它們可以進(jìn)行數(shù)量間的加、減、乘、除等運(yùn)算。這種運(yùn)算稱為算術(shù)運(yùn)算。二進(jìn)制算術(shù)運(yùn)算的特點(diǎn):逢二進(jìn)一。數(shù)字1在不同的位上代表不同的值,按從右至左的次序,這個(gè)值以二倍遞增。二進(jìn)制四則運(yùn)算規(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.二進(jìn)制數(shù)的運(yùn)算(2)原碼、反碼和補(bǔ)碼和補(bǔ)碼運(yùn)算二進(jìn)制數(shù)的正、負(fù)表示方法通常采用的是在二進(jìn)制數(shù)的前面增加一位符號位。這種形式的數(shù)稱為原碼。原碼:符號位為0表示這個(gè)數(shù)是正數(shù),符號位為1表示這個(gè)數(shù)是負(fù)數(shù)。以下各位表示數(shù)值。為避免在求補(bǔ)碼的過程中做減法運(yùn)算,通常是先求出N的反碼,然后在負(fù)數(shù)的反碼上加1而得到補(bǔ)碼。反碼:正數(shù)的反碼等于原碼,負(fù)數(shù)的反碼:符號位不變,以下各位按位取反。補(bǔ)碼:正數(shù)的補(bǔ)碼等于原碼,負(fù)數(shù)的補(bǔ)碼:符號位不變,以下各位按位取反,加1。1.3.2數(shù)制和編碼例1:寫出帶符號位二進(jìn)制數(shù)00011010(+26)、10011010(-26)、00101101(+45)、和10101101(-45)的反碼和補(bǔ)碼。解:

原碼

反碼

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

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

16種組合。當(dāng)用這些組合表示十進(jìn)制數(shù)0~9時(shí),有六種組合不用,如表1-5的第二列所示。①8421BCD碼8421BCD碼是最基本和最常用的BCD碼,它和四位自然二進(jìn)制碼相似,各位的權(quán)值為8、4、2、1,故稱為有權(quán)BCD碼。和四位自然二進(jìn)制碼不同的是,它只選用了四位二進(jìn)制碼中前10組代碼,即用0000~1001分別代表它所對應(yīng)的十進(jìn)制數(shù),余下的六組代碼不用。需要注意的是8421BCD碼本質(zhì)就是十進(jìn)制數(shù),只不過用二進(jìn)制形式描述。②余3碼余3碼是8421BCD碼的每個(gè)碼組加3(0011)形成的。余3碼也具有對9互補(bǔ)的特點(diǎn),即它也是一種9的自補(bǔ)碼,所以也常用于BCD碼的運(yùn)算電路中。用BCD碼可以方便地表示多位十進(jìn)制數(shù),例如十進(jìn)制數(shù)(579.8)10可以分別用8421BCD碼、余3碼表示為1.3.2數(shù)制和編碼1.3.2數(shù)制和編碼十進(jìn)制數(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)變化。其特點(diǎn)是:自右向左,每一位狀態(tài)狀態(tài)中連續(xù)的0、1數(shù)目增加一倍;編碼順序依次變化時(shí),相鄰兩個(gè)代碼之間只有一位發(fā)生變化。(3)美國信息交換標(biāo)準(zhǔn)代碼(ASCⅡ)是一組7位二進(jìn)制代碼,共128個(gè),其中包括表示0~9的十個(gè)代碼,表示大、小英文字母的52個(gè)代碼,32個(gè)表示各種符號的代碼及34個(gè)控制碼。ASCⅡ碼表如表1-6所示。在表1-6中,ASCII碼為十進(jìn)制數(shù),括號內(nèi)為十六進(jìn)制數(shù),十六進(jìn)制形式更常用。如0~9的ASCII碼十六進(jìn)制為(0x30~0x39);大寫字母A~Z的ASCII碼十六進(jìn)制為(0x41~0x5A);小寫字母a~z的ASCII碼十六進(jìn)制為(0x61~0x7A);大小寫相差0X20。在后續(xù)學(xué)習(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)成一個(gè)習(xí)慣:每個(gè)項(xiàng)目建立一個(gè)空文件夾,把該項(xiàng)目的工程文件、C程序文件、Proteus仿真圖形文件放到里面,以避免和其他項(xiàng)目的文件混合,如下圖1-8先創(chuàng)建了一個(gè)名為“dpj”文件夾。(2)啟動(dòng)KEILC軟件1.3.3單片機(jī)編程軟件KeilC使用(3)點(diǎn)擊“project---NewuVisionProject”新建一個(gè)工程:

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

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

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論