《 單片機應用技術》課件-項目一 流水燈的制作_第1頁
《 單片機應用技術》課件-項目一 流水燈的制作_第2頁
《 單片機應用技術》課件-項目一 流水燈的制作_第3頁
《 單片機應用技術》課件-項目一 流水燈的制作_第4頁
《 單片機應用技術》課件-項目一 流水燈的制作_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機的內(nèi)部結構任務小結任務導讀什么是微控制器?單片機引腳介紹任務一、認識微控制器項目一流水燈的制作任務目標導讀學習目標技能目標掌握51系列單片機常用引腳及功能。了解常用型號單片機的特點。掌握單片機的內(nèi)部結構。能識別不同類型的單片機芯片。熟悉單片機的外部特征及引腳功能。1.了解什么是單片機及其應用領域。2.熟悉單片機的外部特征及引腳功能。3.掌握51單片機的內(nèi)部結構。4.理解CPU、振蕩器、程序存貯器、數(shù)據(jù)存貯器的作用。知識教學點

項目目標導讀教學重點、難點

教學重點:1.單片機的引腳功能。2.理解CPU、振蕩器、程序存貯器、數(shù)據(jù)存貯器的作用。教學難點:1.控制信號引腳功能的理解。2.理解CPU、晶振電路、程序存貯器、數(shù)據(jù)存貯器的作用。

參考學時:1學時~2學時

單片機在哪里?4任務導入任務一認識單片機電磁爐與單片機5輸入設備(箭頭指向單片機):加、減按鈕輸出設備(箭頭指向設備):4個指示燈、電磁線圈的驅動電路任務導入任務一認識單片機

更多單片機6單片機還隱藏在我們?nèi)粘I畹脑S多電子產(chǎn)品中,如鼠標、遙控器、洗衣機、機器人等。任務一認識單片機單片機應用領域:測控系統(tǒng)、智能儀表、智能接口、辦公自動化、光機電一體化設備、通訊設備、網(wǎng)絡設備、汽車電子、消費類電子產(chǎn)品、智能樓宇設備…任務一認識單片機單片機技術的應用遍布國民經(jīng)濟與人民生活的各個領域任務一認識單片機任務導入在日常生活中,像手機、電話機、洗衣機、電冰箱、空調機、彩電、玩具、電子表、電子秤、MP3、MP4、數(shù)碼相機、錄音筆、汽車防盜器等常用設備,給我們帶來了許多方便和生活情趣,可你了解在這些設備中發(fā)揮主要作用的單片機嗎?圖1-3單片機芯片外型圖

計算機系統(tǒng)通常由多塊印刷電路板制成

主板顯卡聲卡存儲器接口網(wǎng)卡輸入輸出接口內(nèi)存條CPU任務一認識單片機1、什么是單片機CPU輸入設備輸出設備軟件系統(tǒng)+微型計算機系統(tǒng)硬件系統(tǒng)輸入接口設備輸出接口設備運算器控制器存儲器單片微型計算機是指集成在一個芯片上的微型計算機,簡稱單片機——單片機實質上就是一個芯片相關知識:單片機基本知識

單硅晶片CPU存儲器控制電路定時器時鐘電路I/O口單片機任務一認識單片機1.什么是單片機(展示)任務一認識單片機通俗:單片機是一塊集成芯片,但這塊集成芯片具有一些特殊功能,而它的功能的實現(xiàn)要靠我們使用者自己來編程完成(指揮、發(fā)出指令)。我們編程的目的就是控制這塊芯片的各個引腳在不同的時間輸出不同的電平,進而控制與單片機各個引腳相連接的外圍電路的電氣狀態(tài)。實現(xiàn)我們需要的控制效果(功能)。書面:就是將中央處理器(CPU)、存儲器(包括隨機存儲器RAM和只讀存儲器ROM)及各種輸入/輸出接口集成在一塊芯片上的微控制器(MCU)。目前國外已普遍稱之為微控制器MCU。什么是單片機任務一認識單片機任務一認識單片機2、51系列單片機及其內(nèi)部結構串行通信接口全雙工1個ROMTXDRXD中斷系統(tǒng)并行通信接口4×8bit定時/計數(shù)器RAM時鐘電路CPU總線控制圖1-2MCS-51單片機結構框圖

任務一認識單片機(1)中央處理器CPU:8位,運算和控制功能(2)內(nèi)部RAM:共256個RAM單元,用戶使用前128個單元,用于存放可讀寫數(shù)據(jù),后128個單元被專用寄存器占用。(3)內(nèi)部ROM:4KB掩膜ROM,用于存放程序、原始數(shù)據(jù)和表格。(4)定時/計數(shù)器:兩個16位的定時/計數(shù)器,實現(xiàn)定時或計數(shù)功能。(5)并行I/O口:4個8位的I/O口P0、P1、P2、P3。(6)串行口:一個全雙工串行口。(7)中斷控制系統(tǒng):5個中斷源(外中斷2個,定時/計數(shù)中斷2個,串行中斷1個)(8)時鐘電路:可產(chǎn)生時鐘脈沖序列,允許晶振頻率6MHZ和12MHZ程序下載到哪里?16以.HEX為后綴的執(zhí)行代碼文件可通過下載線下載到單片機中。如果用記事本打開執(zhí)行代碼文件會得到一串十六進制數(shù),其中包含了每條指令的執(zhí)行代碼。執(zhí)行代碼通過下載線下載到了單片機的片內(nèi)ROM中。因為片內(nèi)ROM中下載的是程序,所以也稱這個片內(nèi)ROM為片內(nèi)程序存儲器。任務一認識單片機3.51系列單片機信號引腳簡介

VCCGNDXTAL2

XTAL1RSTP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.72、振蕩電路:XTAL1、XTAL23、復位引腳:RST4、并行口:P0、P1、P2、P37、ALE:地址鎖存控制信號1、電源線:VCC(+5V)、GND(地)EAPSEN5、EA:訪問程序存儲控制信號6、PSEN:外部ROM讀選通信號RXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C51任務一認識單片機40個引腳雙排直插DIP封裝,大致可分為3類:電源及時鐘、控制和I/O引腳。40只引腳按功能分為3類:(1)電源及時鐘引腳:Vcc、GND;XTAL1、XTAL2。(2)控制引腳:

PSEN*、EA*、ALE、RESET(即RST)。(3)I/O口引腳:P0、P1、P2、P3,為4個8位I/O口的外部引腳任務一認識單片機1951系列單片機芯片引腳及其功能89C51是標準的40引腳雙列直插封裝(DIP)集成電路芯片1.主電源和時鐘振蕩電路引腳VCC(40腳) 運行和程序校驗時接+5V電源GND(20腳) 地線XTAL1(19腳)用作晶體振蕩電路的反相器輸入端,內(nèi)部接至振蕩器的反相放大器。當采用外部時鐘時,該引腳接地;XTAL2(18腳) 用作晶體振蕩電路的反相器輸出端,內(nèi)部接至時鐘發(fā)生器。當采用外部時鐘時,該引腳接收振蕩器信號;任務一認識單片機202.輸入/輸出(I/O)引腳P0.0~P0.7(39腳~32腳):8位漏極開路的雙向I/O口

當使用片外ROM和RAM時,用作低8位地址和數(shù)據(jù)分時復用。P1.0~P1.7(1腳~8腳):8位帶上拉電阻的準雙向I/O口

在編程/校驗期間,用作輸入低8位地址。對于8052,P1.0是定時器T2的計數(shù)輸入端;P1.1是定時器T2的外部輸入端。

P2.0~P2.7(21腳~28腳):8位帶上拉電阻的準雙向I/O口

當使用片外ROM和RAM時,輸出高8位地址。

P3.0~P3.7(10腳~17腳):8位帶上拉電阻的準雙向I/O口 P3口具有第二功能在單片機中,“口”是一個集數(shù)據(jù)輸入緩沖、輸出驅動及鎖存等多項功能于一體的I/O電路。任務一認識單片機213.控制信號引腳RST/VPD(9引腳):RST為復位信號輸入端。當RST端保持2個機器周期以上高電平時,單片機完成復位操作。ALE /PROG(30引腳):ALE為地址鎖存允許信號在系統(tǒng)擴展時,ALE用于控制把P0口輸出的低8位地址送入鎖存器鎖存起來,以實現(xiàn)低8位地址和數(shù)據(jù)的分時傳送。任務一認識單片機22PSEN(29引腳):外部程序存儲器(ROM)讀選通信號訪問外部ROM時,PSEN產(chǎn)生負脈沖作為外部ROM選通信號。訪問外部RAM或內(nèi)部ROM時,不會產(chǎn)生有效的PSEN信號。EA/VPP(31引腳):EA為訪問程序存儲器(ROM)控制信號對8051和8751,它們的片內(nèi)有4KB的ROM,當EA為高電平時,若訪問的地址空間在0~4KB范圍內(nèi),CPU訪問片內(nèi)ROM;若訪問的地址范圍超過4KB時,CPU將自動訪問外部ROM。EA保持低電平,則訪問外部ROM。對于8031,EA必須接地,只能訪問外部ROM。任務一認識單片機任務小結:1.單片機

40個引腳雙排直插DIP封裝,大致可分為3類:電源及時鐘、控制和I/O引腳。40只引腳按功能分為3類:(1)電源及時鐘引腳:Vcc、GND;XTAL1、XTAL2。(2)控制引腳:

PSEN*、EA*、ALE、RESET(即RST)。(3)I/O口引腳:P0、P1、P2、P3,為4個8位I/O口的外部引腳任務一認識單片機2.89C51單片機的片內(nèi)結構片內(nèi)結構如圖所示:單片機的片內(nèi)結構任務一認識單片機點亮1個LED燈任務小結任務導讀單片機最小系統(tǒng)任務二、點亮1個LED燈項目一流水燈的制作任務目標導讀學習目標技能目標理解單片機的最小系統(tǒng)。掌握單片機4個I/O端口的功能和使用方法。掌握C語言程序設計的基本方法。根據(jù)任務要求能構建單片機最小應用系統(tǒng)。會使用單片機4個I/O端口連接外部設備。能夠編寫常見的順序程序。熟悉KeiluVision4軟件的使用1.理解單片機的最小系統(tǒng)。2.掌握單片機4個I/O端口的功能和使用方法。3.理解LED發(fā)光二極管原理及點亮led燈的編程方法。4.掌握keil軟件及ISP下載軟件的使用。知識教學點

任務目標導讀教學重點、難點

教學重點:1.單片機的最小系統(tǒng)。2.單片機4個I/O端口的功能和使用。教學難點:1.單片機4個I/O端口的功能和使用。2.理解LED發(fā)光二極管原理及點亮led燈的編程方法。參考學時:1學時~2學時

28任務導入任務二點亮1個led燈五顏六色的LED燈是怎么亮起來的?什么是LED燈?半導體二極管的一種,可以把電能轉化成光能;常簡寫為LED。發(fā)光二極管與普通二極管一樣是由一個PN結組成,也具有單向導電性。由鎵(Ga)與砷(AS)、磷(P)的化合物制成的二極管能發(fā)出不同的光。任務二點亮1個led燈提出任務:單片機的最小系統(tǒng)單片機是如何控制LED燈的?如何實現(xiàn)單片機與LED燈的連接與控制?具體任務:1.如何點亮一個LED燈?2.如何點亮8個LED燈?3.如何讓LED燈閃爍?任務二點亮1個led燈用最少的元件組成以單片機為核心元件的可以正常工作的系統(tǒng)。能夠正常運行的單片機最小組成。

要讓單片機里面的程序運行,需要的最低硬件配置。什么是單片機最小系統(tǒng)?任務二點亮1個led燈(1)時鐘電路

表1-3AT89S51單片機主要特性參數(shù)

單片機的連接引腳XTAL1、XTAL2;連接方法內(nèi)部時鐘方式

外部時鐘方式

內(nèi)部機器頻率F=fosc/12C1和C2的一般取值

20~30pF陶瓷電容任務二點亮1個led燈(2)復位電路

單片機復位的條件是:必須使RST引腳(第9引腳)加上持續(xù)兩個機器周期(即24個振蕩周期)的高電平。若時鐘頻率為12MHz,每機器周期為1us,則只需2us以上時間的高電平。

(a)上電復位電路(b)按鍵復位電路

圖1單片機常見的復位電路任務二點亮1個led燈復位后,內(nèi)部各專用寄存器狀態(tài)如表1-1,其中*表示無關位。表1-1

單片機復位狀態(tài)

專用寄存器復位狀態(tài)專用寄存器復位狀態(tài)PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0~P3FFHSCON00HIP***00000BSBUF不定IE0**00000BPCON0***0000B任務二點亮1個led燈單片機的最小系統(tǒng)任務二點亮1個led燈點亮LED燈硬件設計方案選用STC89C52單片機芯片、時鐘電路、復位電路、電源和一個發(fā)光二極管構成最小系統(tǒng),完成對單個信號燈的控制。并行接口STC89C52單片機電源時鐘電路復位電路發(fā)光二極管LED顯示點亮LED燈硬件設計方案

任務二點亮1個led燈

點亮LED燈采用STC89C52單片機,通過74HC573鎖存器與單片機P0相連。硬件電路如圖所示:任務二點亮1個led燈STC89C52單片機電路任務二點亮1個led燈單片機如何控制LED的亮滅狀態(tài)當單片機的P0.0輸出高電平,發(fā)光二極管D1就會導通發(fā)亮;否則,不亮。由于單片機P1口的8個引腳可以同時輸出不同的電平,所以可以控制不同的發(fā)光二極管D1~D8同時亮滅。任務二點亮1個led燈74HC573芯片資料任務二點亮1個led燈1、庫函數(shù)文件reg51.h可以幫助我們使用C51芯片內(nèi)部資源。2、C程序由函數(shù)構成,其中main()為程序的主函數(shù),是每個程序執(zhí)行的起始點。3、C語言程序的書寫格式:一行可以寫幾個語句,一個語句也可以寫在多行上;每條語句的最后必須有一個分號“;”表示語句的結束。4、使用注釋可以提高程序可讀性,是編程人員的良好習慣。例如使用/**/進行多行注釋,或者使用//對當前行注釋。KEILC51相關知識:任務二點亮1個led燈5、在程序的書寫中,我們多用TAB鍵將每一部分的語句對齊,使編寫的程序呈現(xiàn)鋸齒形,這樣可以幫助我們分清不同的程序體,便于調試。6、while(1);為一個死循環(huán),可以理解為程序將在此處進入空閑和等待狀態(tài)。7、我們可以通過sbit定義位變量,表示單片機的一個位地址或者一個二進制的位變量。KEILC51相關知識:任務二點亮1個led燈1.如何點亮一個LED燈?

#include<reg52.h>sbitDLE=P1^6;//打開第一片573鎖存器

sbitled0=P0^0;sbitled1=P0^1;voidmain(){P0=0X00;DLE=1;led0=1;//P0=0x01;

while(1); //原地循環(huán)

}軟件設計:位輸出任務二點亮1個led燈2.如何點亮8個LED燈?

#include<reg52.h>//包含庫函數(shù)文件

sbitDLE=P1^6;//打開第一片573鎖存器

voidmain()//主程序

{DLE=1;

P0=0xFF;//P0=0x01;

while(1); //原地循環(huán)

}通過總線方式,給P0口送8個高電平!并口輸出任務二點亮1個led燈3.如何讓LED燈閃爍?

需要用到延時子程序。任務二點亮1個led燈2.如何讓LED燈閃爍?

讓第一個燈與最后一個燈閃爍

#include<reg52.h>sbitwle=P1^6;sbitled0=P0^0;sbitled7=P0^7;voiddelay(){unsignedinti;i=50000;while(i--);}

voidmain(){ P0=0X00;DLE=1;while(1){led0=1;led1=1;delay();led0=0;led1=0;}}任務二點亮1個led燈任務小結:

本次課講解了單片機最小系統(tǒng)的組成。包括復位電路和時鐘電路。通過具體任務:1.如何點亮一個LED燈?2.如何點亮8個LED燈?3.如何讓LED燈閃爍?理解單片機的控制作用及簡單程序設計。延時函數(shù)的編寫。思考:如何LED燈流動起來?任務二點亮1個led燈項目一流水燈的制作硬件設計系統(tǒng)調試任務導讀任務導入軟件設計任務三、流水燈任務目標導讀學習目標技能目標掌握LED發(fā)光二極管接口電路設計,理解單片機的IO口使用“>>”“<<”、“_crol_”“_cror_”指令掌握延時程序、while、for循環(huán)語句使用學生的溝通能力及團隊協(xié)作精神LED發(fā)光二極管接口電路設計掌握延時子函數(shù)的編寫、For語句、一維數(shù)組用法。熟練單片機下載程序使用“>>”“<<”、“_crol_”“_cror_”指令

1.掌握LED發(fā)光二極管接口電路設計,理解單片機的IO口使用。2.掌握while、for循環(huán)語句使用。3.“>>”“<<”、“_crol_”“_cror_”指令的用法。4.掌握延時子函數(shù)的編寫、一維數(shù)組用法。知識教學點

任務目標導讀教學重點、難點

教學重點:1.掌握LED發(fā)光二極管接口電路設計,理解單片機的IO口使用。2.掌握延時程序、while、for循環(huán)語句使用。教學難點:1.掌握延時程序、while、for循環(huán)語句使用2.“>>”“<<”、“_crol_”“_cror_”指令的用法。參考學時:1學時~2學時

51任務導入任務三流水燈五顏六色的LED燈是怎么亮起來的?LED如何來模擬交通燈半導體二極管的一種,可以把電能轉化成光能;常簡寫為LED。發(fā)光二極管與普通二極管一樣是由一個PN結組成,也具有單向導電性。由鎵(Ga)與砷(AS)、磷(P)的化合物制成的二極管能發(fā)出不同的光。任務三流水燈發(fā)光二極管具有單向導電性。當發(fā)光二極管導通時,發(fā)光二極管的管壓降為1.8~2.2V,流過二極管的電流I=3~10mA,所以限流電阻電路分析:為什么LED會亮?任務三流水燈提出任務:如何實現(xiàn)單片機與LED燈的連接與控制?具體任務:利用單片機實驗板的8個LED模擬流水燈效果。第一步:8個LED亮滅4次第二步:8個LED奇數(shù)燈、偶數(shù)燈交替點亮4次第三步:1個LED循環(huán)左(右)移點亮第四步:8個LED開幕式、閉幕式展示任務三流水燈STC89C52是STC公司生產(chǎn)的一種低功耗、高性CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。512字節(jié)RAM,32位I/O口線,看門狗定時器,內(nèi)置4KBEEPROM,MAX810復位電路,3個16位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結構(兼容傳統(tǒng)51的5向量2級中斷結構),全雙工串行口。任務三流水燈

點亮LED燈采用STC89C52單片機,通過74HC573鎖存器與單片機P0相連。硬件電路如圖所示:硬件電路任務三流水燈STC89C52單片機電路任務三流水燈軟件設計:87654321P0=0x01;/00000001亮最低位1個P0=0xff;//11111111全亮P0=0x00;//00000000全滅P0=0x0f;//11110000亮低位4個P0.7P0.6

P0.5

P0.4

P0.3

P0.2

P0.1P0.010進制16進制2進制00000011000122001033001144010055010166011077011188100099100110a101011b101112c110013d110114e111015f1111單片機如何控制LED亮滅任務三流水燈KEILC51相關知識:1、KeilC51程序是由函數(shù)構成,任何函數(shù)必須先定義,再使用。2、我們可以使用unsignedint定義一個無符號整型變量,表示一個16bit的二進制數(shù),其數(shù)值范圍為0~65535,其命名遵循標識符命名原則。同理,使用unsignedchar定義一個無符號字符型變量,表示一個8bit的二進制數(shù),其數(shù)值范圍為0~255。變量如果定義在函數(shù)的外面,成為全局變量;變量如果定義在函數(shù)體內(nèi),則只能在函數(shù)內(nèi)部使用。任務三流水燈4、while(1){},表示程序將循環(huán)執(zhí)行{

}中的語句體。while(1);5、for(i=0;i<8;i++){語句};這條語句將把{

}內(nèi)的語句循環(huán)執(zhí)行8次。6、voiddelay(unsignedintt)為參數(shù)控制延時時間的函數(shù)。通常單片機使用的石英晶振振蕩頻率為12MHz,其對應的機器周期為1us通過分析和驗證,unsignedintn=0;for(n=0;n<112;n++);語句將會執(zhí)行約1ms。KEILC51相關知識:任務三流水燈軟件設計:點亮8燈開始延時0.5s熄滅8燈延時0.5s#include<reg52.h>sbitwle=P1^6;unsignedchark;voiddelay(unsignedintt){ unsignedinti,j; for(i=0;i<t;i++) //延時t個1ms for(j=0;j<112;j++);//延時約1ms}voidmain(){wle=1; while(1) {for(k=0;k<4;k++)

{P0=0x00; //0x55

delay(500); //延時0.5s

P0=0xff; //0xaa

delay(500); //延時0.5s

}

}}8個LED亮滅4次//8個LED奇數(shù)燈、偶數(shù)燈交替點亮4次任務三流水燈單燈流水燈效果單燈流水燈流程圖第1燈亮1s第2燈亮1s……第7燈亮1s反復循環(huán)第8燈亮1s任務三流水燈D8D7D6D5D4D3D2D1D1亮:P1=0xfe;delay(1000);//11111110D2亮:P1=0xfd;delay(1000);//11111101D2亮:P1=0xfb;delay(1000);//11111011……控制LED左移點亮思考:效果變化速度變化亮度變化任務三流水燈while(1){P1=0xfe;delay(500);//11111110P1=0xfd;delay(500);//11111101P1=0xfb;delay(500);//11111011P1=0xf7;delay(500);//11110111P1=0xef;delay(500);//11101111P1=0xdf;delay(500);//11011111P1=0xbf;delay(500);//10111111P1=0x7f;delay(500);//01111111}舉例:單燈流水左移,每一個燈亮500ms方法1、順序結構任務三流水燈1、KeilC自帶有一個位左移和位右移運算符(<<和>>),其功能是將一個數(shù)的二進制代碼全部同時左移或者右移若干位,移出的數(shù)據(jù)丟失,空白的地方補“0”。位左移運算格式為a<<n,表示把a的值左移n位,高位丟失n位,低位自動補上n個0;例如P1=(P1<<2);表示把P1的值左移2位,右邊補上2個“0”,然后再賦給P1,如果P1原來的值為0x5c=01011100B,左移2位后P1=01110000B=0x70。KEILC51相關知識:任務三流水燈1、KeilC自帶有一個位左移和位右移運算符(<<和>>),其功能是將一個數(shù)的二進制代碼全部同時左移或者右移若干位,移出的數(shù)據(jù)丟失,空白的地方補“0”。位左移運算格式為a>>n,表示把a的值右移n位,高位丟失n位,低位自動補上n個0;例如P1=(P1>>1);表示把P1的值右移1位,左邊補上1個“0”,然后再賦給P1。KEILC51相關知識:任務三流水燈2、KeilC自帶有一個循環(huán)左移和循環(huán)右移運算符(_cror_和crol_)。KEILC51相關知識:任務三流水燈#include<reg52.h>voiddelay(unsignedintt)sbitwle=P1^6;voidmain(){ wle=1;

unsignedchari,temp=0x01; //定義變量

while(1) { temp=0x01;//temp=0x10; for(i=0;i<8;i++) {

P0=temp;

delay(200);temp=temp<<1;//temp=temp>>1; } }}P0左移1位顯示開始延時0.2s方法2、左移指令第三步:1個LED循環(huán)左(右)移點亮任務三流水燈P1左移1位顯示開始延時0.2s#include<reg51.h>sbitwle=P1^6;#include<intrins.h>//包含_crol_函數(shù)所在的頭文件voiddelay(unsignedintt){

unsignedinti,j; for(i=0;i<t;i++) //延時t個1ms for(j=0;j<112;j++); //延時約1ms}voidmain(){ wle=1;

unsignedchari=0x01; //定義變量

while(1) { i=_crol_(i,1);//i循環(huán)左移

P0=i; //P0顯示

delay(200);

}}方法3、循環(huán)左移-使用外部函數(shù)任務三流水燈KEILC51相關知識:1、數(shù)組一種具有固定數(shù)目和相同類型成分的的有序集合,常用來表示一些固定表格、數(shù)據(jù)等。例如unsignedchartable[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80},表示一個無符號整數(shù)型數(shù)組,一共有8個元素,分別用table[0],table[1],……table[7]來表示,我們可以使用table[i]來使用這個數(shù)組里的數(shù),其中i=0~7。任務三流水燈#include<reg52.h>unsignedchartable[

]={0x18,0x24,0x42,0x81,0x81,0x42,0x24,0x18};main(){ unsignedchari; while(1) { for(i=0;i<8;i++) { P0=table[i]; delay(1000); } }}i=0開始取第i個模式延時1si<8YNi=i+1方法循環(huán)查表第四步:8個LED開幕式、閉幕式展示任務三流水燈本任務涉及到LED發(fā)光二極管與單片機的接口電路設計,從最簡單的8個燈一起閃爍,到流水燈的設計。項目訓練了單片機并行I/O口的應用能力,F(xiàn)or循環(huán)的熟練應用和一維數(shù)組的編程與調試能力。本項目的知識盤點如下:LED發(fā)光二極管接口電路設計“>>”“<<”、“_crol_”“_cror_”指令延時子函數(shù)的編寫For語句一維數(shù)組思考:如何實現(xiàn)多種花樣流水燈?任務小結任務三流水燈項目一流水燈的制作硬件設計系統(tǒng)調試任務導讀任務導入軟件設計任務四、花樣流水燈任務目標導讀學習目標技能目標掌握LED發(fā)光二極管接口電路設計,理解單片機的IO口使用“>>”“<<”、“_crol_”“_cror_”指令掌握延時程序、while、for循環(huán)語句使用學生的溝通能力及團隊協(xié)作精神LED發(fā)光二極管接口電路設計掌握延時子函數(shù)的編寫、For語句、一維數(shù)組用法。掌握獨立按鍵的使用方法。“>>”“<<”、“_crol_”“_cror_”指令

1.理解單片機的IO口使用,獨立按鍵的工作原理。2.掌握while、for循環(huán)語句使用。3.“>>”“<<”、“_crol_”“_cror_”指令的用法。4.掌握延時子函數(shù)的編寫、一維數(shù)組用法。知識教學點

任務目標導讀教學重點、難點

教學重點:1.理解單片機的IO口使用,獨立按鍵的工作原理。2.掌握延時程序、while、for循環(huán)語句使用。教學難點:1.掌握延時程序、while、for循環(huán)語句使用2.“>>”“<<”、“_crol_”“_cror_”指令的用法。參考學時:1學時~2學時

76任務導入任務三流水燈五顏六色的LED燈是怎么亮起來的?LED燈為什么會發(fā)光?半導體二極管的一種,可以把電能轉化成光能;常簡寫為LED。發(fā)光二極管與普通二極管一樣是由一個PN結組成,也具有單向導電性。由鎵(Ga)與砷(AS)、磷(P)的化合物制成的二極管能發(fā)出不同的光。任務四花樣流水燈發(fā)光二極管具有單向導電性。當發(fā)光二極管導通時,發(fā)光二極管的管壓降為1.8~2.2V,流過二極管的電流I=3~10mA,所以限流電阻電路分析:為什么LED會亮?任務四花樣流水燈提出任務:如何實現(xiàn)單片機與LED燈的花樣控制?具體任務:利用單片機實驗板按鍵實現(xiàn)3種花樣流水燈效果。效果1:按下KA,1個LED向左流動3次,向右流動3次,中間向兩邊流動3次。效果2:按下KB,向左逐個點亮4次、閃爍,向右逐個點亮4次,閃爍,兩邊相中間流動4次,閃爍。效果3:按下KC,流水燈兩邊向中央點亮,閃爍,從中央向兩邊熄滅,閃爍。任務四花樣流水燈STC89C52是STC公司生產(chǎn)的一種低功耗、高性CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。512字節(jié)RAM,32位I/O口線,看門狗定時器,內(nèi)置4KBEEPROM,MAX810復位電路,3個16位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結構(兼容傳統(tǒng)51的5向量2級中斷結構),全雙工串行口。任務四花樣流水燈

按鍵的符號、

外觀與尺寸任務四花樣流水燈

點亮LED燈采用STC89C52單片機,通過74HC573鎖存器與單片機P0相連。硬件電路如圖所示:硬件電路任務四花樣流水燈STC89C52單片機電路任務四花樣流水燈軟件設計:87654321P0=0x01;/00000001亮最低位1個P0=0xff;//11111111全亮P0=0x00;//00000000全滅P0=0x0f;//11110000亮低位4個P0.7P0.6

P0.5

P0.4

P0.3

P0.2

P0.1P0.010進制16進制2進制00000011000122001033001144010055010166011077011188100099100110a101011b101112c110013d110114e111015f1111單片機如何控制LED亮滅任務四花樣流水燈KEILC51相關知識:voiddelay(unsignedintt)為參數(shù)控制延時時間的函數(shù)。通常單片機使用的石英晶振振蕩頻率為12MHz,其對應的機器周期為1us。通過分析和驗證:voiddelay(unsignedintt){

unsignedinti,j; for(i=0;i<t;i++) //延時t個1ms for(j=0;j<112;j++); //延時約1ms}任務四花樣流水燈While(表達式)

{語句(內(nèi)部也可為空)}

特點:先判斷表達式,后執(zhí)行語句。

原則:若表達式不是0,即為真,那么執(zhí)行語句。否則跳出while語句。For(表達式1;表達式2;表達式3)

{語句(內(nèi)部可為空)}

執(zhí)行過程:

1.求解一次表達式1.

2.求解表達式2,若其值為真(非0即為真),則執(zhí)行for中語句。然后執(zhí)行第3步。否則結束for語句,直接跳出,不再執(zhí)行第3步。

3.求解表達式3.

4.跳到第2步重復執(zhí)行。KEILC51相關知識任務四花樣流水燈單燈流水燈效果單燈流水燈流程圖第1燈亮1s第2燈亮1s……第7燈亮1s反復循環(huán)第8燈亮1s任務四花樣流水燈KeilC自帶有一個循環(huán)左移和循環(huán)右移運算符(_cror_和crol_)。KEILC51相關知識:任務四花樣流水燈#include<reg52.h>voiddelay(unsignedintt)sbitwle=P1^6;voidmain(){ wle=1; unsignedchari,temp=0x01; //定義變量 while(1) { temp=0x01;//temp=0x10; for(i=0;i<8;i++) {

P0=temp;

delay(200);temp=temp<<1;//temp=temp>>1; } }}P0左移1位顯示開始延時0.2s流水燈左移任務四花樣流水燈P0左移1位顯示開始延時0.2s#include<reg51.h>sbitwle=P1^6;#include<intrins.h>//包含_crol_函數(shù)所在的頭文件voiddelay(unsignedintt){

unsignedinti,j; for(i=0;i<t;i++) //延時t個1ms for(j=0;j<112;j++); //延時約1ms}voidmain(){ wle=1; unsignedchari=0x01; //定義變量

while(1) { i=_crol_(i,1);//i循環(huán)左移

P0=i; //P0顯示

delay(200);

}}循環(huán)左移任務四花樣流水燈效果1:1個LED向左流動3次,向右流動3次,中間向兩邊流動3次,蜂鳴器響1聲。任意模式流水燈顯示

各顯示模式字之間無任何變化規(guī)律,無法采用移位指令和循環(huán)結構的程序來實現(xiàn)。應該采用什么結構的程序呢?任務四花樣流水燈KEILC51相關知識:1、數(shù)組一種具有固定數(shù)目和相同類型成分的的有序集合,常用來表示一些固定表格、數(shù)據(jù)等。例如unsignedchartable[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80},表示一個無符號整數(shù)型數(shù)組,一共有8個元素,分別用table[0],table[1],……table[7]來表示,我們可以使用table[i]來使用這個數(shù)組里的數(shù),其中i=0~7。任務四花樣流水燈#include<reg52.h>unsignedchartable[

]={0x18,0x24,0x42,0x81,0x81,0x42,0x24,0x18};main(){ unsignedchari; while(1) { for(i=0;i<8;i++) { P0=table[i]; delay(1000); } }}i=0開始取第i個模式延時1si<8YNi=i+1方法循環(huán)查表8個LED開幕式(中間向兩邊流動)、閉幕式展示任務四花樣流水燈整體軟件設計思路1、首先完成第1個流水燈效果設計,并編寫為子程序模式voidliushui1(){for(i=0;i<8;i++){ …… }

}2、同理完成第2個、3個……3、匯總,并生成3種效果的流水燈循環(huán)任務四花樣流水燈//單燈左移3次流水燈程序voidliushui1(){

unsignedchari,j;

for(j=0;j<4;j++){for(i=0;i<8;i++) {P1=table[i]; delay(200);} }}//單燈右移1位8次流水燈程序voidliushui2(){}voidmain(){ while(1) {

if(ka==0){liushui1();}

if(kb==0){liushui2();}if(kc==0){liushui3();} }}任務四花樣流水燈本項目涉及到LED發(fā)光二極管與單片機的接口電路設計,從最簡單的8個燈一起閃爍,到流水燈的設計。項目訓練了單片機并行I/O口的應用能力,F(xiàn)or循環(huán)的熟練應用和一維數(shù)組的編程與調試能力。本項目的知識盤點如下:LED發(fā)光二極管接口電路設計“_crol_”“_cror_”指令For語句,While語句一維數(shù)組任務小結任務四花樣流水燈項目一流水燈的制作硬件設計系統(tǒng)調試任務導讀任務導入軟件設計任務五、LED模擬交通燈任務目標導讀學習目標技能目標I/O端口分配統(tǒng)一硬件電路設計掌握C語言程序設計的基本方法。FOR

溫馨提示

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

評論

0/150

提交評論