單片機應用技術 課件 項目1、2 LED指示燈設計與實現、LED動感燈箱設計與實現_第1頁
單片機應用技術 課件 項目1、2 LED指示燈設計與實現、LED動感燈箱設計與實現_第2頁
單片機應用技術 課件 項目1、2 LED指示燈設計與實現、LED動感燈箱設計與實現_第3頁
單片機應用技術 課件 項目1、2 LED指示燈設計與實現、LED動感燈箱設計與實現_第4頁
單片機應用技術 課件 項目1、2 LED指示燈設計與實現、LED動感燈箱設計與實現_第5頁
已閱讀5頁,還剩98頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目1LED指示燈系統(tǒng)設計與實現素質目標1.通過單片機應用和國產芯片現狀,激發(fā)學生的民族自信,厚植愛國情懷、責任感和使命感。2.通過任務實施過程培養(yǎng)學生自主學習及團隊協(xié)作意識,提高學生合作探究解決問題的能力。3.通過軟硬件設計培養(yǎng)學生的標準意識、規(guī)范意識、勇于實踐的勞動精神和精益求精的工匠精神。知識目標1.能概述C51系列單片機的內部結構與主要型號。2.能概括C51系列單片機系統(tǒng)構成。3.能提供51單片機最小系統(tǒng)電路設計。4.能說出單片機應用系統(tǒng)的組成。能力目標1.能夠根據設計要求,選擇參數、性能合理的電子元器件,使用Proteus進行硬件電路仿真設計。2.能夠根據項目和產品對微控制器的性能要求,進行單片機選型。3.能夠使用Keil集成開發(fā)環(huán)境創(chuàng)建、編譯、配置工程項目。4.能夠根據芯片類型,選擇和配置程序下載、調試工具。設計要求:

設計制作以MCS-51單片機為主控芯片,外接LED電路,通過編程實現LED點亮與熄滅的LED指示燈控制系統(tǒng)。項目1LED指示燈系統(tǒng)設計與實現什么是單片機單片機,也被稱為微控制器MCU(microcontrollerunit)。如右圖所示。是指采用超大規(guī)模集成電路技術把具有數據處理能力的中央處理器CPU、存儲器、基本輸入/輸出(簡稱I/O)接口電路和中斷系統(tǒng)、定時器/計時器等功能集成在一塊芯片上的微型計算機,全稱單片微型計算機,簡稱單片機。單片機特點1.高度集成,高可靠性,體積小2.控制功能強3.低電壓,低功耗4.系統(tǒng)結構簡單,使用方便,實現模塊化,易擴展5.優(yōu)異的性能價格比單片機應用領域通訊及網絡辦公自動化家電、電子玩具智能儀器儀表工業(yè)測控機器人智能汽車軍事、航天單片機的發(fā)展簡史單片機分類與選型眾多的單片機可以從不同角度進行分類。1.MCU按其存儲器類型可分為無片內ROM型和帶片內ROM型兩種。對于無片內ROM型的芯片,必須外接EPROM才能應用(典型為8031);帶片內ROM型的芯片又分為片內EPROM型(典型芯片為87C51)、MASK片內掩模ROM型(典型芯片為8051)、片內Flash型(典型芯片為89C51)等類型。2.按用途可分為通用型和專用型;3.根據數據總線的寬度和一次可處理的數據字節(jié)長度可分為8、16、32位MCU。MCS-51系列單片機配置一覽表系列片內存儲器(字節(jié))定時器計數器并行I/O串行I/O中斷源片內ROM片內RAM無有ROM有EPROMIntel51子系列803180C31805180C51(4K字節(jié))875187C51(4K字節(jié))128字節(jié)2x164x8位15Intel52子系列803280C32805280C52(8K字節(jié))875287C52(8K字節(jié))256字節(jié)3x164x8位16ATEML89C系列(常用型)1051(1K)/2051(2K)/4051(4K)(20條引腳DIP封裝)1282151589C51(4K)/89C52(8K)(40條引腳DIP封裝)128/2562/33215/6單片機選型要點1.微控制器(MCU),根據產品需求選擇更高性能或更低功耗的8位、16位、32位的微控制器(MCU)。2.封裝,根據產品需求采用40引腳DIP(雙列直插式封裝)或QFP(四方扁平封裝)或其他某種封裝形式。3.RAM和ROM的大小。4.I/O引腳數和定時器、中斷、ADC集成功能等。目前,在國內市場上流行的單片機不下十幾種,占據主導地位的仍是51內核及其兼容單片機。這些單片機和MCS51單片機的指令完全兼容,資料和開發(fā)設備比較齊全,價格也比較便宜。另外,從學習的角度來看,有了51單片機的基礎后,再學習其他單片機時則非常容易。

1.MCS51系列單片機

MCS51系列單片機是Intel公司生產的功能比較強、價格比較低,較早應用的單片機,目前仍被廣泛應用。

2.ATMEL公司的89系列單片機美國ATMEL公司的89系列單片機是以8051核構成的,它和8051系列單片機是兼容的系列。3.國產STC單片機STC12C5A60S2系列單片機是宏晶科技生產的單時鐘/機器周期(1T)的單片機。它是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。目前流行的51內核的8位單片機MCS-51單片機內部結構時鐘電路CPUROMRAMT0T1中斷系統(tǒng)串行接口并行接口P0P1P2P3TXDRXDINT0INT1定時計數器結構框圖中央處理器CPU:8位,運算和控制功能內部RAM:共256個RAM單元,用戶使用前128個單元,用于存放可讀寫數據,后128個單元被專用寄存器占用。內部ROM:4KB掩膜ROM,用于存放程序、原始數據和表格。定時/計數器:兩個16位的定時/計數器,實現定時或計數功能。并行I/O口:4個8位的I/O口P0、P1、P2、P3。串行口:一個全雙工串行口。中斷控制系統(tǒng):5個中斷源(外中斷2個,定時/計數中斷2個,串行中斷1個)時鐘電路:可產生時鐘脈沖序列,允許晶振頻率6MHZ和12MHZ8051單片機的基本組成中央處理器CPU:8位,運算和控制功能內部RAM:共256個RAM單元,用戶使用前128個單元,用于存放可讀寫數據,后128個單元被專用寄存器占用。內部ROM:4KB掩膜ROM,用于存放程序、原始數據和表格。定時/計數器:兩個16位的定時/計數器,實現定時或計數功能。并行I/O口:4個8位的I/O口P0、P1、P2、P3。串行口:一個全雙工串行口。中斷控制系統(tǒng):5個中斷源(外中斷2個,定時/計數中斷2個,串行中斷1個)時鐘電路:可產生時鐘脈沖序列,允許晶振頻率6MHZ和12MHZ中央處理器中央處理器(CPU)是整個單片機的核心部件,是8位數據寬度的處理器,能處理8位二進制數據或代碼,CPU負責控制、指揮和調度整個單元系統(tǒng)協(xié)調的工作,完成運算和控制輸入輸出功能等操作。1

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

31302928272625242422211

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM62641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM6264

器80318751805189C51片內RAM片內ROM256B(字節(jié))4K64K64K程序存儲器程序存儲器內部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序執(zhí)行的起始單元,

在這三個單元存放一條

無條件轉移指令中斷5中斷4中斷3中斷2中斷10003H000BH0013H001BH0023H002BH外部中斷0定時器0中斷外部中斷1定時器1中斷串行口中斷8位...0FFFH0FFEHEA=1EA=0程序存儲器資源分布中斷入口地址注意:一個單元地址對應有8個位地址

MSB——MostSignificantBit(最高有效位)

LSB——LeastSignificantBit(最低有效位)單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位尋址區(qū)位地址表特殊功能寄存器標識符號地址寄存器名稱ACC0E0H累加器B0F0HB寄存器PSW0D0H程序狀態(tài)字SP81H堆棧指針DPTR82H、83H數據指針(16位)含DPL和DPHIE0A8H中斷允許控制寄存器IP0B8H中斷優(yōu)先控制寄存器P080HI/O口0寄存器P190HI/O口1寄存器P20A0HI/O口2寄存器P30B0HI/O口3寄存器PCON87H電源控制及波特率選擇寄存器SCON98H串行口控制寄存器SBUF99H串行數據緩沖寄存器TCON88H定時控制寄存器TMOD89H定時器方式選擇寄存器TL08AH定時器0低8位TH08CH定時器0高8位TL18BH定時器1低8位TH18DH定時器1高8位40個引腳大致可分為4類:電源、時鐘、控制和I/O引腳。電源

1)Vcc:電源(+5V)

2)Vss:接地時鐘

XTAL1、XTAL2:晶體振蕩電路反相輸入端和輸出端。單片機外部結構I/O引腳(4個8位并行口,共32個引腳)P0口:8位雙向I/O口

并行擴展時,分時傳送低8位地址和8位數據信號。P1口:8位準雙向I/O口

準雙向:內部有固定的上拉電阻。P2口:8位準雙向I/O口傳送高8位地址P3口:8位準雙向I/O口控制引腳ALE/PROG:地址鎖存允許/片內EPROM編程脈沖1)ALE:用來鎖存P0口送出的低8位地址(并行擴展)有效:P0口傳送低8位地址信號無效:P0口傳送8位數據信號2)PROG:片內有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。PSEN:外ROM讀選通信號RST/VPD:復位/備用電源1)RST:該引腳上連續(xù)保持兩個機器周期以上高電平。2)VPD:在Vcc掉電情況下,接備用電源。EA/VPP:內外ROM選擇/片內EPROM編程電源1)EA:EA=“1”,先訪問內ROM,當超過4KB時,自動轉向外ROM。EA=“0”,只訪問外ROM。

8031片內無ROM,EA必須接地。2)VPP:片內有EPROM的芯片,在EPROM編程期間,施加編程電源。預備知識之電平定義數字電路中只有兩種電平:高(1)和低(0)電平高低取值與系統(tǒng)工作電壓有關。RS232電平:計算機的串口RS-232C采用的是負邏輯,即邏輯“1”:-5V至-15V;邏輯“0”:+5V至+15V。CMOS電平為:邏輯“1”:4.99V;邏輯“0”:0.01V;TTL電平的邏輯“1”和“0”則分別為3.5V-5V和0-0.2V二進制與十六進制的表示與轉換十進制中的0-15分別表示為十六進制的0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F熟練掌握二進制與十六進制之間的轉換。

轉換方法:一般把四個二進制數放在一起轉換成一個十六進制數,轉換時先把二進制數轉換成十進制數,再把十進制數轉換成十六進制數。如:0001B->1->1HB表示為二進制,H為十六進制

1001B->9->9H1010B->10->AH00101100->44->2CH

各種進位制的對應關系十進制二進制十六進制十進制二進制十六進制000000910019100011101010A200102111011B300113121100C401004131101D501015141110E601106151111F701117161000010810008

本系統(tǒng)功能由硬件和軟件兩大部份協(xié)調完成,硬件部分主要完成信息的顯示;軟件主要完成信號的處理及控制。

本系統(tǒng)的硬件采用模塊化設計,以AT89C52單片機為核心,與LED電路組成控制系統(tǒng)。該系統(tǒng)硬件主要包括以下幾個模塊:AT89C52主控模塊、LED模塊等。其中AT89C52主要完成外圍硬件的控制以及一些運算功能,LED電路完成燈光功能。本系統(tǒng)軟件主要實現LED燈的亮與滅。LED指示燈系統(tǒng)方案設計單片機LED電路復位電路時鐘電路電源電路硬件方案確定電源選擇單片機復位電路硬件方案時鐘電路設計接口電路設計單片機最小系統(tǒng)三要素:電源電路、復位電路、晶振電路。特點:單片機可以運行程序,是單片機控制系統(tǒng)的核心。電源電路依據AT89S52單片機的主要電源特性:電壓操作范圍為:4.0~5.5V電源可以通過計算機的USB口供給,也可使用外部穩(wěn)定的5V電源供電模塊供給時鐘電路單片機的連接引腳XTAL1、XTAL2;連接方法內部時鐘方式外部時鐘方式內部機器頻率F=fosc/12C1和C2的一般取值20~30pF陶瓷電容復位電路單片機的連接引腳RST;復位電路復位電路1、復位后內部寄存器狀態(tài)

PC=0000H、SP=07H、P0~P3=0FFH、其他均為00H。

2、電路參數選擇依據RST引腳出現的高電平持續(xù)兩個機器周期以上的時間RC電路的充電時間為:τ=R*C電路參數R、C器件值得選擇R*C〉2*TCN(TCN為機器周期)單片機應用系統(tǒng)單片機應用系統(tǒng)是為完成某一特定任務而設計的用戶系統(tǒng)。單片機應用系統(tǒng)由硬件和軟件兩部分組成。硬件系統(tǒng)一般以單片機最小系統(tǒng)為核心,配以輸入、輸出、通信接口、顯示等外圍接口電路和軟件構成。被控對象單片機光電隔離A/D光電隔離繼電器驅動D/A擴展存儲器LED、LCD顯示、鍵盤接口功能芯片接口數字量輸入模擬量輸入開關量輸入開關量輸出模擬量輸出輸入輸出接口I/O接口單片機應用系統(tǒng)硬件部分組成發(fā)光二極管工作特性LED的發(fā)光工作條件,不同的LED其額定電壓和額定電流不同,一般而言,紅或綠顏色的LED的工作電壓為1.7V~2.4V,藍或白顏色的LED工作電壓為2.7~4.2V,直徑為3mmLED的工作電流2mA~10mA。LED通過限流電阻R與單片機的I/O口連接,LED的陽極連接到+5V電源。LED串接的電阻若是1KΩ,LED工作電壓是2.0V,那么此時通過LED的電流為(5V-2V)/1000Ω=3mA。如果需要提高亮度,電流一般會控制在10mA左右,則此時電阻應該選擇(5V-2V)/10mA=300Ω。LED彩燈接口電路設計拉電流

高電平輸出時,一般是對負載提供電流,其提供電流的數值叫“拉電流”;

(5V-2V)/10mA=300Ω電阻的選擇

灌電流

低電平輸出時,一般是要吸收負載的電流,其吸收電流的數值叫“灌電流”;

硬件電路設計單片機指示燈控制系統(tǒng)的硬件電路包括最小系統(tǒng)電路及LED驅動顯示電路。單片機的最小系統(tǒng)電路:+5V電源電路、晶體振蕩時鐘電路、復位電路。LED驅動顯示接口電路:單片機的P2口的P2.0引腳與發(fā)光二極管的陰極連接當P1口對應引腳輸出低電平時,發(fā)光二極管點亮;當P2.0口對應引腳輸出高電平時,發(fā)光二極管熄滅。LED信號指示系統(tǒng)的硬件原理圖Proteus是一個完整的嵌入式系統(tǒng)軟、硬件設計仿真平臺。ISIS為功能強大的原理布線工具。ARESPCB設計為一PCB設計系統(tǒng)。PROTEUS原理圖輸入系統(tǒng)ISIS混合模型仿真器動態(tài)器件庫高級圖形分析模塊處理器仿真模型VSM布線/編輯ARESProteus仿真軟件主菜單標準工具欄1.Proteus窗口繪圖專用工具欄電路編輯窗口瀏覽窗口器件工具列表窗口仿真按鍵繪圖工具←選擇模式:點擊此鍵可取消左鍵的放置功能,但可編輯對象.←選擇元器件:在元件表選中器件,在編輯窗中移動鼠標,點擊左鍵放置器件.←放置節(jié)點:當兩條連線交叉時,放個節(jié)點表示連通.←標志網絡線標號:電路聯線可用網絡標號代替,相同標號的線是相同的.←放置文本說明:是對電路的說明,與電路仿真無關!←繪制總線:當多線并行簡化聯線,用總線標示.←繪制子電路:可將部分電路以子電路形式畫在另一圖紙上.←放置圖紙內部終端:有普通.輸入.輸出.雙向.電源.接地.總線.調試工具←放置器件引腳:在對象選擇器中列出各種引腳(如普通引腳、時鐘引腳、反電壓引腳和短接引腳等←放置分析圖:有模擬.數字.混合.頻率特性.傳輸特性.噪聲分析等.←放置電源.信號源:有直流電源,正弦信號源,脈沖信號源等.←放置電壓探針:顯示網絡線上的電壓.←放置電流探針:串聯在指定的網絡線上,顯示電流值.←放置虛擬儀器:有示波器.計數器.RS232終端.SPI調試器.I2C調試器.信號發(fā)生器.

圖形發(fā)生器.直流電壓表.直流電流表,交流電壓表.交流電流表.圖形工具←放置各種線:有器件.引腳.端口.圖形線.總線等←放置矩形框:移動鼠標到框的一角,按下左鍵拖動,釋放后完成.←放置圓形框:移動鼠標到圓心,按下左鍵拖動,釋放后完成.←放置圓弧線:鼠標移到起點,按下左鍵拖動,釋放后調整弧長,點擊鼠標完成.←畫閉合多邊形:鼠標移到起點,點擊產生折點,閉合后完成.←放置文字標簽:在編輯框放置說明文本標簽.←放置特殊圖形:可在庫中選擇各種圖形←放置特殊節(jié)點:可有原點.節(jié)點.標簽引腳名.引腳號.2.Proteus繪圖工具欄3.Proteus元件庫AnalogICs模擬ICCMOS4000seriesCMOS4000系列DataConverters數據轉換器Diodes二極管Electromechanical機電設備(只有電機模型)Inductors電感LaplacePrimitivesLaplace變換器MemoryICs存儲器ICMicroprocessorICs微處理器ICMiscellaneous雜類(只有電燈和光敏電阻組成的設備)ModellingPrimitives模型基元OperationalAmplifiers運算放大器Optoelectronics光電子器件Resistors電阻SimulatorPrimitives仿真基元Switches&Relays開關和繼電器Transistors三極管TTL74、74ALS、74AS、74F、74HC、74HCT、74LS、74Sseries74系列集成電路4.繪制仿真電路創(chuàng)建新項目:打開Proteus軟件,選擇“File”菜單中的“NewProject”選項,創(chuàng)建一個新項目。添加元件:在左側的元件庫中選擇需要的元件,拖動到右側的工作區(qū)中。連接元件:使用連線工具將元件連接起來,形成電路圖。設置元件屬性:雙擊元件,可以設置元件的屬性,如電阻值、電容值等。進行仿真:在工具欄中選擇仿真工具,進行仿真操作。調試電路:根據仿真結果,調試電路,找出問題并進行修正。輸出結果:仿真完成后,可以輸出仿真結果,如波形圖、電路圖等。C語言程序組成版權和版本說明主函數頭文件C語言程序組成C語言的注釋符C語言中,程序塊的注釋常采用“/*…*/”,行注釋一般采用“//…”,不編譯,僅作代碼解釋,幫助理解。頭文件(預處理命令)主函數,有且僅有一個函數體(執(zhí)行部分)每個C程序都有且只一個主函數main(),程序執(zhí)行總是從main函數開始,main函數后面的一對花括號不能省略,?表示程序的結構層次范圍。注意“{}”必須配對使用?;ɡㄌ杮}擴起來的部分為函數體,用來描述函數的功能,一般函數體由變量定義和完成本函數功能的語句序列組成在include的地方,把頭文件里的內容原封不動的復制到引用該頭文件的地方。函數首部算法與流程圖算法就是一組明確的解決問題的步驟,它產生結果并可在有限的時間內終止,可以用流程圖表示算法。常用流程表符號KeilC軟件使用本書后文的所有教學項目例程都是在KeilC51軟件下開發(fā)和調試的,因此有必要對KeilC51的使用進行簡要介紹。KeilC51是眾多單片機應用開發(fā)的優(yōu)秀軟件之一,它集編輯、編譯、仿真于一體,支持匯編、PLM語言和C語言的程序設計,界面友好,易學易用。準備工作:Keil添加STC芯片庫打開STC的燒錄軟件,單擊“Keil仿真設置”選項卡,單擊選項卡中“添加型號和頭文件到Keil中/添加STC仿真器驅動到Keil中”按鈕,如圖1-30所示。1.創(chuàng)建工程文件夾首先我們要養(yǎng)成一個習慣:最好先建立一個空文件夾,把您的工程文件放到里面,以避免和其他文件混合,如圖創(chuàng)建一個名為“Mytest”文件夾。2創(chuàng)建工程(1)啟動Keil雙擊桌面上的KeilμVision5圖標。(2)新建Project工程項目單擊“Project->NewμVision5Project”,在彈出的對話框中設置保存路徑及文件名,如圖所示。KeilC51幾乎支持所有的MCS-51內核的單片機,在對話框中選擇“STCMCUDatabase”,如圖所示。選擇單片機型號編碼設置為GB2312,否則中文注釋會有亂碼。單擊菜單“edit->ConfiguratI/On”,在配置對話框設置“Encoding”,選擇“ChineseGB2312Simplified”編碼,如圖所示。編碼設置晶振:在窗口工具欄中選擇“魔法棒”->“Target”->“Xtal(?)”,參數設置為12,如圖所示。參數設置選擇“Output”->勾選“CreateHEXFile”,創(chuàng)建HEX文件新建:單擊“File->New”,新建文件Text1,如圖1-39所示。新建->保存“.c源文件”保存.c文件:單擊“File->Save”,保存文件,文件名為*.c,.c擴展名一定要添加,如圖1-39所示。右擊工程項目窗口中“SourceGroup”,選擇,或雙擊“SourceGroup”,在對話框中選擇“l(fā)ed.c”文件,單擊“Add”,文件添加到工程中,然后單擊“Close”,關閉對話框即可。如圖1-40所示。添加.c文件到組編寫源代碼:在*.c文件代碼編輯區(qū)中編寫源代碼,如圖1-41所示。編寫&編譯源程序編譯,生成HEX文件:單擊工具欄中“buildtargetfiles”,編譯生成HEX文件,如圖1-42所示。1.單片機是由中央處理器、程序存儲器(ROM)、數據存儲器(RAM)、定時/計數器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數據總線、地址總線和控制總線等三大總線集成在一塊芯片的微型計算機。2.單片機的存儲器包括兩大類:程序存儲器(ROM)和數據存儲器(RAM)。MCS-51單片機在物理結構上有四個存儲空間:即片內數據存儲器(IDATA區(qū))、片外數據存儲器(XDATA區(qū))、片內程序存儲器和片外程序存儲器(程序存儲器合稱為CODE區(qū))3.單片機最小系統(tǒng)電路除了單片機外,還包括電源電路、時鐘電路和復位電路。電源電路給單片機應用系統(tǒng)提供+5V電壓,時鐘電路為單片機提供基本時鐘,復位電路用于將單片機內部各電路的狀態(tài)恢復到初始值。4.C源程序結構包含:(1)定義文件開頭處的版權和版本聲明。(2)對一些頭文件的引用。(3)程序的實現體(包括數據和代碼)。1.修改項目訓練中的參考源程序,使8個發(fā)光二極管按照下面的形式發(fā)光。

P1口管腳P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0

燈的狀態(tài)

●注:●表示滅,○表示亮。2.若發(fā)光二極管接成共陰極型,試修改程序并調試。3.調查目前都有哪些新型的8位單片機,它們各有哪些特點?應用在什么場合?項目2動態(tài)燈箱素質目標:1.通過需求分析、設計與制作等任務,培養(yǎng)學生自主學習能力,規(guī)范意識,安全意識。2.通過動感燈箱的創(chuàng)意設計,培養(yǎng)學生勇于實踐和勇于創(chuàng)新的科學精神。知識目標:1.能概述MCS-51單片機并行輸入/輸出(I/O)端口的結構和功能。2.能使用單片機的時鐘和時序。3.熟練使用C語言基本語句,能區(qū)別循環(huán)語句while、do…while、for的語法特點。4.熟練應用延時程序設計。能力目標:1.能根據用戶需求進行燈光控制系統(tǒng)設計。2.能夠編寫MCS-51單片機控制多路LED燈組合的驅動程序。3.會制作與調試LED動感燈箱。設計要求:

LED動感燈箱控制系統(tǒng)的設計與實現,以MCS-51單片機為主控芯片,外接多個LED組成創(chuàng)意動感燈箱電路,通過編程實現多個LED的動態(tài)、個性化的顯示。LED動感燈箱控制系統(tǒng)的設計與實現并行輸入輸出(I/O)端口51系列單片機有4個I/O端口,每個端口都是8位準雙向口,共占32根引腳。每個端口都包括一個鎖存器(即專用寄存器P0~P3)、一個輸出驅動器和輸入緩沖器。通常把4個端口籠統(tǒng)地表示為P0~P3。在無片外擴展存儲器的系統(tǒng)中,這4個端口的每一位都可以作為準雙向通用I/O端口使用。在具有片外擴展存儲器的系統(tǒng)中,P2口作為高8位地址線,P0口分時作為低8位地址線和雙向數據總線。P0口

用作通用I/O口作為輸出口:當P0口用作輸出口時,因輸出級處于開漏狀態(tài),必須外接上拉電阻作為輸入口:當P0口用作輸入口時,必須先向該端口鎖存器寫入“1”

地址/數據總線輸出

P0口用于低8位地址總線和數據總線(分時傳送)P1和P2口P1口:用作通用I/O口,用作輸入時,均須先寫入“1”。

P2口:用作通用I/O口,用作輸入時,均須先寫入“1”;P2口用于高8位地址總線。P3口P3口用作通用I/O口,用作輸入時,均須先寫入“1”;引腳第二功能引腳第二功能P3.0RXD串行輸入口P3.4T0定時計數器0P3.1TXD串行輸出口P3.5T1定時計數器1P3.2INT0外部中斷0(低電平有效)P3.6WR外部數據存儲器寫選通(低電平有效)P3.3INT1外部中斷1(低電平有效)P3.7RD外部數據存儲器讀選通(低電平有效)P3口第二功能小結P0~P3口都能用作I/O口,用作輸入時,均須先寫入“1”;用作輸出時,P0口應外接上拉電阻;在并行擴展外存儲器或I/O口情況下,P0口用于低8位地址總線和數據總線(分時傳送);P2口用

于高8位地址總線;P3口常用于第二功能,用戶能使用的I/O口只有P1口和未用作第二功能的部分P3口端線。CPU時序單片機時序是指單片機執(zhí)行指令時應發(fā)出的控制信號的時間序列。這些控制信號在時間上的相互關系就是CPU的時序。它是一系列具有時間順序的脈沖信號。programBCPU時序機器周期指令周期時鐘周期時鐘周期與狀態(tài)周期時鐘周期晶振的振蕩信號從晶振引腳2端送入內部時鐘電路,該振蕩信號被二分頻,產生一個兩相時鐘信號P1和P2供單片機使用。CPU就是通過兩相時鐘P1和P2為基本節(jié)拍來協(xié)調單片機實現各部分的有效工作。振蕩器脈沖信號經過時鐘電路二分頻之后產生的單片機時鐘信號的周期(用S表示)稱為狀態(tài)周期。故一個狀態(tài)周期S包含2個節(jié)拍,前一時鐘周期稱為P1節(jié)拍,后一時鐘周期稱為P2節(jié)拍。狀態(tài)周期時鐘周期1時鐘周期是最小時序單位。2時鐘周期=晶振周期或振蕩周期Tosc=晶振頻率(振蕩頻率fosc)的倒數。3若晶振為12MHz,則時鐘周期=1/12us。ClockCycle機器周期1CPU完成一項基本操作(取指令、存儲器讀寫等)所消耗的最短時間。2MCS-51的機器周期時間是不變的,一般為12個時鐘周期或6個狀態(tài)周期組成。即機器周期=12個時鐘周期或6個狀態(tài)周期。3若晶振為12MHz,則機器周期=12*1/12us(時鐘周期)=1us。指令周期1取出并執(zhí)行一條指令的時間。2MCS-51的指令按指令執(zhí)行的時間可分為:單周期、雙周期和四周期(只有乘法和除法兩條指令),所以指令周期不盡相同,可能包括一到四個不等的機器周期。3如MCS-51外接晶振為12MHz,機器周期是1us,則指令周期=(1~4)=(1~4)=1~4us.。時鐘周期、機器周期、指令周期的計算【例2-1】MCS-51的時鐘周期、機器周期、指令周期是如何分配的?當晶振頻率分別為6MHz和12MHz時,一個機器周期為多少μs?解:MCS-51單片機每個狀態(tài)周期包含2個時鐘周期,1個機器周期有6個狀態(tài)周期,每條指令的執(zhí)行時間(即指令周期)為1~4個機器周期。當f=6MHz時,時鐘周期=1/f=1/6μs,機器周期=(1/6)×12μs=2μs

當f=12MHz時,時鐘周期=1/f=1/12μs,機器周期(1/12)×12μs=1μs小結時鐘周期、機器周期和指令周期均是單片機時序單位。時鐘周期是最小時序單位。機器周期是單片機計算其它時間值(如波特率、定時器的定時時間等)的基礎時序單位。1個指令周期=(1~4)個機器周期1個機器周期=12個時鐘周期(晶振頻率倒數)1個時鐘周期=晶振頻率倒數C語言基本語句函數體變量聲明語句執(zhí)行語句表達式語句表達式;如:x=y+z;流程控制語句條件判斷語句if語句、switch語句;循環(huán)執(zhí)行語句dowhile語句、while語句、for語句;轉向語句break語句、goto語句、continue語句、return語句。函數調用語句函數名(實際參數表);delay(100);復合語句{……}空語句;C語言三種結構根據給定的條件是否滿足執(zhí)行A塊或B塊順序執(zhí)行AB塊根據終止條件是否滿足執(zhí)行循環(huán)體b)直到型循環(huán)a)當型循環(huán)for語句for循環(huán)是當型循環(huán),for循環(huán)常用于循環(huán)次數已定的情況。【一般格式】【流程圖】for(表達式1;表達式2;表達式3){

循環(huán)主體;}重復要做的事情循環(huán)變量增值循環(huán)條件表達式,用來判定是否繼續(xù)執(zhí)行循環(huán)初始化變量:設置初始值while語句while循環(huán)語句屬于當型循環(huán),即先判斷條件,再執(zhí)行循環(huán)體語句?!疽话愀袷健縲hile(表達式){

循環(huán)體;}循環(huán)控制條件表達式由一條或多條語句組成,循環(huán)體的語句盡量不重復。【流程圖】do…while語句do…while循環(huán)語句屬于直到型循環(huán),即先執(zhí)行循環(huán)體語句一次,再判斷條件,決定是否繼續(xù)執(zhí)行循環(huán)體?!疽话愀袷健抗搀w...do{

循環(huán)體;}while(表達式);循環(huán)控制條件表達式由一條或多條語句組成,循環(huán)體的語句盡量不重復。共同體...【流程圖】C51數據類型數據類型名稱長度取值區(qū)域unsignedchar無符號字符型8位0~255signedchar有符號字符型8位-128~+127unsignedint無符號整型16位0~65535signedint有符號整型16位-32768~+32767unsignedlong無符號長整型32位0~4294967295signedlong有符號長整型32位-2147483648~+2147483648float浮點型32位±1.175494E-38~±3.402823E+38*指針型8~24位對象的地址bit位類型1位0或1sfr特殊功能寄存器8位0~255sfr1616位特殊功能寄存器16位0~65535C51運算符及表達式1.運算符

運算符就是完成某種特定運算的符號。2.表達式由運算符及運算對象所組成的具有特定含義的式子。3.表達式語句

表達式后面加“;”號就構成了一個表達式語句。4.優(yōu)先級優(yōu)先級是用來標識運算符在表達式中的運算順序5.結合性當一個運算對象兩側的運算符優(yōu)先級別相同時,則按運算符的結合性來確定表達式的運算順序。同一優(yōu)先級的運算符,運算次序由結合方向所決定。6.用運算符優(yōu)先級順序!>算術運算符>關系運算符>&&>||>賦值運算符運算符名稱運算符算術運算符+、-、*、/、%、++、--關系運算符<、<=、>、>=、==、!=邏輯運算符&&、||、!位運算符&、|、^、~、<<、>>賦值運算符與復合賦值運算=+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>=強制類型轉換運算符(類型)特殊運算符[]()·->逗號運算符,C51常用運算符常量和變量(一)常量常量是不可變的量,常量可以表示各種數據類型的值。常量可以是數值型常量,也可以是符號常量。數值型常量即常說的常數,在程序中直接引用的數據。如0x8f,23,’a’,’good!’等。符號常量指用標識符來代表一個數據,符號常量在使用之前必須用編譯預處理命令“#define”先進行宏定義。符號常量的定義形式:

#define符號常量標識符常量數據例如:#defineLEDP0//用LED表示P0口#difineFalse0x0;//用預定義語句可以定義常量#difineTrue0x1;//這里定義False為0,True為1

使用含義直觀的常量來表示那些將在程序中多次出現的數字或字符串。常量的合理使用可以提高程序的可讀性、可維護性。常量和變量(二)變量變量,也就是可變的量,變量在程序執(zhí)行過程中是可變的量,由變量名和變量值組成,變量名是一個標識,變量值是一個數據值,程序為每個變量開辟了存儲空間,變量值就存儲在這個空間當中,可以通過變量名訪問這個空間。使用變量時必須“先定義,后使用”。要在程序中使用變量必須先用標識符作為變量名,并指出所用的數據類型和存儲模式,這樣編譯系統(tǒng)才能為變量分配相應的存儲空間。定義一個變量的格式如下:

[存儲種類]數據類型標識符[存儲器類型]變量名表

在定義格式中除了數據類型和變量名表是必要的,其它都是可選項。類型標識符為定義變量數據類型,數據類型分為整型、實型、字符型等。變量定義形式可簡化為:數據類型標識符變量名1[,變量名2,變量名3...];例如:unsignedinti,j;charc1,c2;。結構化程序設計結構化程序設計方法:

自頂向下;逐步細化;模塊化設計;結構化編碼典型C程序頭文件#include(預處理指令)主函數main()語句子函數functiona()語句子函數functionb()……子函數functionc()…………無參函數1.無參函數無參數函數被調用時,既無參數輸入,也不返回結果給調用函數,它是為完成某種操作而編寫的函數。無參函數的定義形式為:函數類型標識符函數名(){變量類型說明;函數體;}函數類型標識符是指函數返回值的類型。有參函數2.有參函數有參數函數在被調用時,必須提供實際的輸入參數,必須說明與實際參數一一對應的形式參數,并在函數結束時返回結果供調用它的函數使用。有參函數的定義形式為:函數類型標識符函數名(形式參數表){變量類型說明;函數體;}有參函數比無參函數多了形式參數表,各參數之間用逗號間隔。定義一個有參函數時,位于函數名后面圓括號中的變量名為形式參數。在函數調用時,主調函數名后面括號中的表達式為實際參數。有參函數2.有參函數參數傳遞函數兩種傳遞方式:值傳遞和地址傳遞。值傳遞,又稱單向傳遞,只能把實參數值傳給形參,形參最后的結果不影響實參(形參改變大小,實參大小不變);地址傳遞,通過指針變量(本書項目不涉及應用),把實參的地址給形參,形參的大小可以影響實參。系統(tǒng)設計本系統(tǒng)功能由硬件和軟件兩大部份協(xié)調完成,硬件部分主要完成LED燈的輸出顯示;軟件主要完成信號的處理及控制功能等。本系統(tǒng)的硬件采用模塊化設計,以AT89C52單片機為核心,與LED接口電路組成控制系統(tǒng)。該系統(tǒng)硬件主要包括以下幾個模塊:AT89C52單片機最小系統(tǒng)、LED接口電路模塊等。其中AT89C52主要完成外圍硬件的控制以及一些運算功能,LED接口電路完成燈光的閃爍功能。系統(tǒng)組成方框圖如圖2-1所示。該系統(tǒng)軟件主要由主程序、延時功能函數模塊等組成,系統(tǒng)軟件結構框圖如圖2-2所示。LED電路復位電路時鐘電路電源電路圖2-1LED燈閃爍控制系統(tǒng)組成方框圖單片機延時子程序主程序圖2-2單片機燈閃爍系統(tǒng)軟件結構框圖硬件電路設計軟件設計開始P0=0xFF,D1燈點亮熄滅調用延時子程序P0=0x00,D1燈熄滅調用延時子程序主程序設計流程圖算法設計根據系統(tǒng)工作原理圖2-5可知:當P0口輸出高電平,即P0=0xff時,根據發(fā)光二極管的單向導電性可知,這時發(fā)光二極管全亮;當P0口輸出低電平,即P0=0x00時,發(fā)光二極管D1~D7全熄滅;發(fā)光二極管閃爍過程實際上就是發(fā)光二極管交替亮、滅的過程,單片機運行一條指令的時間只有幾微秒,時間太短,眼睛無法分辨,看不到閃爍的效果。因此,用單片機控制發(fā)光二極管閃爍時,需要增加一定的延時時間。#include"reg51.h"voidmain(){ P0=0x00; //全亮

(1)

P0=0xff; //全滅

(2)}P0=0xff;是什么呢?0xff對應二進制的數值是11111111,對應的引腳為1是熄滅單色燈,8個1,代表的就是熄滅8個單色燈。錄入程序后我們通過單步運行程序,就可以看到當程序走過第(1)條語句后單色燈全亮,走過第二條語句后單色燈全滅了。單片機執(zhí)行的速度實在是太快了,我們跟本分辨不出單色燈點亮呢。單色燈就已經被熄滅了,如何能讓我們分辨出單色燈的亮和滅呢,解決的辦法就是“延時”,如何做延時呢?單色燈閃爍延時程序是一種應用較為廣泛的小程序,在程序設計中一般采用通過執(zhí)行無意義的操作消耗CPU時間實現延時的。在C語言中“空語句;”在程序執(zhí)行時需要占用一條指令的執(zhí)行時間,但是什么也不做。常用延時方法:非精確延時for(i=0;i<100;i++);i=100;while(i--);精確延時辦法利用庫函數_nop_();(需要include<intrins.h>)利用定時器進行定時(后邊的課程進行介紹)

延時算法分析開始外循環(huán)次數i內循環(huán)次數j空操作j-1=0?i-1=0?結束YYNN延時函數流程/***********************************/*函數功能:延時約1ms/*********************************/voidde

溫馨提示

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

評論

0/150

提交評論