《單片機技術與應用》課件 項目一智能霓虹燈設計_第1頁
《單片機技術與應用》課件 項目一智能霓虹燈設計_第2頁
《單片機技術與應用》課件 項目一智能霓虹燈設計_第3頁
《單片機技術與應用》課件 項目一智能霓虹燈設計_第4頁
《單片機技術與應用》課件 項目一智能霓虹燈設計_第5頁
已閱讀5頁,還剩138頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

項目一智能霓虹燈設計項目目標項目目標是用單片機的IO口驅動LED,實現流水燈效果。

認識單片機任務一單片機開發軟件-Keil任務三

Keil和Proteus的聯合使用任務四點亮LED并實現閃爍任務五左移右移實現流水燈任務六

任意花樣霓虹燈任務七單片機最小系統任務二任務一認識單片機明確任務智能電子產品在當今社會生活中層出不窮,比如智能冰箱、智能洗衣機、智能手機等等。這些都是智能電子產品,智能電子產品的核心就是單片機。

核心是單片機。那么什么是單片機?有哪些應用?單片機基本組成是什么?知識鏈接一什么是單片機二單片機的發展史三單片機的典型應用一什么是單片機電腦:面向應用單片機:面向控制單芯片微型計算機,它是把組成微型計算機的各功能部件:CPU,存儲器,I/O口等部件制作在一塊集成芯片上。1.定義2.組成二單片機的發展史MCS-48Intel公司MCS-51Intel公司87LPC飛利浦W78L偉邦DS87達拉斯GSM97現代……為什么學MCS-51?三單片機的典型應用1.智能儀器儀表中的應用2.工業控制中的應用3.消費電子產品中的應用在調制解調器、各類手機、傳真機、程控電話交換機、信息網絡及各種通訊設備中,單片機也已經得到廣泛應用。4.計算機網絡和通信領域中的應用

5.醫用設備領域中的應用6.各種大型電器中的模塊化工業控制中的應用7.汽車設備領域中的應用8.軍事技術領域的應用知識總結1.單片機的基本組成2.單片機的發展歷史3.單片機的典型應用綜合評價課后作業單片機主要由哪些部分組成?謝謝觀看《單片機技術與應用》課程任務二

單片機最小系統任務描述熟悉單片機的最小系統構成。知識鏈接一單片機型號識別二單片機的引腳功能三單片機的最小系統一單片機型號識別STC:宏晶公司(深圳)8:8位機9:采用flashROM程序存儲器C:CMOS工藝(低功耗)52:片內ROM的容量為2*4KB40:最大晶振頻率40MHZC:商業級PDIP:采用兩排針插式封裝0826:生產日期08年第26周例如:STC89C52RC40C-PDIP

0826

工作溫度范圍:工業級:-40℃~85℃商業級:0℃~70℃軍用級:-55℃~125℃思考:小明有一個好朋友住在北方,剛接觸單片機很有興趣,托小明幫忙買塊單片機好練習編程。你能幫小明挑一塊合適的芯片嗎?請說明理由。北方:工業級剛接觸:51系列或52系列練習:采用flashROM、國產STC89C5140I-PDIP二單片機的引腳功能缺口朝上引腳編號走向

(1)電源引腳:VCC和VSS共用地端電源輸入端(+5V)

(2)時鐘電路引腳(2個):XTAL1和XTAL2時鐘電路引腳

(3)編程控制引腳:RST和EA外接高電平VCC

訪問片內ROM

連續兩個機器周期(約2us)的高電平,完成一次復位操作

(4)并行I/O口(32個):P0,P1,P2,P3

外接LED、按鍵、數碼管、繼電器、蜂鳴器等外圍設備。三單片機最小系統單片機正常工作的最小硬件要求,包括電源電路、時鐘電路、復位電路。1.電源電路

AT89C51單片機的工作電壓范圍:4.0V—5.5V,所以通常給單片機外接5V直流電源。連接方式為:AT89C51單片機VCCVSS+5VGNDVCC(40腳):接電源+5V端VSS(20腳):接電源地端2.時鐘電路時鐘電路就是振蕩電路,向單片機提供一個正弦波信號作為基準,決定單片機的執行速度。AT89C51單片機時鐘頻率范圍:0~33MHz。時鐘電路連接方式為:XTAL1(19腳)與XTAL2(18腳):接一個晶振電容C1和C2起穩定作用。晶振:石英晶體振蕩器的簡稱,通常用來構成振蕩電路,產生各種頻率信號。晶振晶振作用產生基準脈沖信號使單片機執行各種動作和指令時能正常工作瓷片電容兩只電容必須相同,保證晶振成功起振并穩定工作。011101011111000000000011那么就會得到一串機器碼:011101010011000001010101在沒有基準脈沖的情況下,你能判斷這段機器碼是什么嗎?如果有了基準脈沖呢?這是一段機器碼,即發給單片機的指令。結論:單片機要正確執行各種動作和指令離不開基準脈沖。3.復位電路復位電路產生復位信號,使單片機從固定的起始狀態開始工作,完成單片機的“啟機”過程。

AT89C51單片機復位信號是高電平有效,通過RST/VPD(9腳)輸入。復位電路連接方式有兩種。(1)上電復位單片機接通電源時產生復位信號,完成單片機啟動,確定單片機起始工作狀態。(2)手動復位

手動按鍵產生復位信號,完成單片機啟動,確定單片機的初始狀態。通常在單片機工作出現混亂或“死機”時,使用手動復位可實現單片機“重啟”。知識總結單片機的型號識別單片機的外部引腳3.單片機的最小系統綜合評價課后作業1.請說明STC89c51RC40I-PDIP1012這一標識代表的含義?2.請畫出單片機最小系統電路圖。謝謝觀看《單片機技術與應用》課程任務三單片機開發軟件-Keil任務描述開發環境的搭建是開發的基礎,工欲善其事,必先利其器。這里首先介紹單片機開發使用到的軟件:KEIL。知識鏈接一Keil的基本使用二Keil的打印輸出一Keil的基本使用(1)在桌面上找到KeiluVision4軟件,雙擊打開。1.KeilμVision4新建工程(2)新建工程、選擇目錄、輸入工程名,如下圖:工程文件注意保存到自己需要的磁盤目錄下,比如這里保存為D:\單片機工程目錄下。彈出的對話框中,選擇Atmel公司的芯片,選擇Atmel,點擊Atmel前面的加號,如下圖。(3)芯片選擇2.新建源程序文件保存的時候,后綴名要為”.c”,表示我們這里寫的是C語言,如下圖所示。

具體方法是:選中“SourceGroup1”菜單,再單擊鼠標右鍵,在彈出的對話框中,選擇“AddFilesto‘SourceGroup1’”,表示準備添加源文件到工程,如右圖所示:3.源文件添加到工程中在彈出的“AddFilestoGroup‘SourceGroup1’對話框中,選擇一個C文件,如“點亮LED.c”,點擊“Add”按鈕,只需點擊一次即可,如上圖所示。在右邊編輯器中開始輸入如下代碼,如圖所示,程序書寫完畢,別忘記點保存。編譯C文件,在Target上點擊鼠標右鍵,在下拉菜單中選擇“OptionsforTarget‘Target1’”,如圖所示:4.編譯并生成hex文件點擊菜單欄上面的project->optionsforTarget‘Target1’...在彈出的對話框中修改Xtal(MHz)中的內容即可。在output選項中必須選擇“CreateHEXFile”,如圖所示。保存以后,就可以點下圖中的編譯,或者按快捷鍵F7,如圖所示。完成上面的步驟后,在信息窗口會看到輸出以下對話信息,如圖所示。在工程所在的文件夾下會看到生成有.hex文件,如圖所示:二Keil的打印輸出具體步驟:1、編譯調試好程序,確保沒有錯誤。2、進入DebugSessin(調試會話)模式3、勾選TI和RI4、打印輸出的結果知識總結1.Keil編寫程序的一般步驟:(1)新建工程;(2)新建源程序文件;(3)把源程序添加到工程中;(4)編譯并生成hex文件。2.Keil的打印輸出綜合評價課后作業

在keil中新建工程,命名為任務3,輸入下面程序,并編譯生成HEX文件。#include<reg51.h>SbitLED=P1^0;Voidmain(void){while(1){LED=0;}}謝謝觀看《單片機技術與應用》課程任務四Keil和Proteus的聯合使用任務描述開發環境的搭建是開發的基礎,工欲善其事,必先利其器。這里首先介紹單片機開發使用到的軟件:Proteus。知識鏈接Proteus軟件的基本使用Proteus軟件的基本使用(1)查找元件1.放置元件

具體方法是:首先點擊啟動界面區域中的“P”按鈕(PickDevices,對象選擇按鈕)來打開“PickDevices”(拾取元器件)對話框從元件庫中拾取所需的元器件。對話框如右圖所示:(2)查找元件界面NOTE

查找常用元器件的關鍵字電容CAP(CAPACITOR)排阻RESPACK蜂鳴器BUZZER有極性電容

CAPACITORPOL發光二極管LED-數碼管7SEG-時鐘信號源CLOCK晶體振蕩器XTAL7段LEDDPY_7-SEG_DP電阻RES三極管PNP,NPN揚聲器

SPEAKER可變電阻POT觸發開關BUTTON液晶LM馬達MOTOR按鈕

SWITCH點陣matrix(3)放置元器件2.元件布局3.連線4.單片機綁定hex文件任務實施1.硬件電路2.軟件設計一硬件電路強調:圖中的單片機元件沒有“VCC”和“GND”引腳,這是因為在Proteus軟件中,元件模型中的“電源”和“地”已經進行了連接,“VCC”接到了“+5V”電源,“GND”接到了“地”,所以隱藏了這兩個引腳。二程序設計#include<reg51.h>//引入頭文件sbitLED=P1^0;//P1.0引腳定義為變量LEDmain()//主程序開始{While(1)

{LED=0;//點亮LED}}知識總結Proteus使用的一般步驟:(1)放置元件;(2)元件布局;(3)連線;(4)綁定hex文件綜合評價課后作業

在Keil軟件中編寫本次任務的程序代碼,在proteus軟件中繪制仿真電路圖,完成任務實施內容。謝謝觀看《單片機技術與應用》課程任務五點亮LED并實現閃爍任務描述單片機P1.0引腳接一發光二極管(LED),點亮此LED,并實現閃爍。知識鏈接一單片機的硬件結構二發光二極管(LED)介紹三點亮LED四LED如何實現閃爍一單片機的硬件結構中央處理器CPU:8位,運算和控制功能內部RAM:共256個RAM單元,用戶使用前128個單元,用于存放可讀寫數據,后128個單元被專用寄存器占用。內部ROM:4KB掩膜ROM,用于存放程序、原始數據和表格。定時/計數器:兩個16位的定時/計數器,實現定時或計數功能。并行I/O口:4個8位的I/O口P0、P1、P2、P3。串行口:一個全雙工串行口。中斷控制系統:5個中斷源(外中斷2個,定時/計數中斷2個,串行中斷1個)時鐘電路:可產生時鐘脈沖序列,允許晶振頻率6MHz和12MHz時鐘電路CPUROMRAMT0T1中斷系統串行接口并行接口P0P1P2P3TXDRXDINT0INT1定時計數器復位電路P3口各引腳第二功能表引腳第二功能功能說明P3.0RXD串行口輸入P3.1TXD串行口輸出P3.2INT0外部中斷0輸入P3.3INT1外部中斷1輸入P3.4T0定時器/計數器0計數輸入P3.5T1定時器/計數器1計數輸入P3.6WR片外RAM寫選通信號(輸出)P3.7RD片外RAM讀選通信號(輸入)二發光二極管(LED)介紹發光二極管:單向導電性,通過5mA左右電流即可發光,電流越大,亮度越強,但若電流過大會燒毀二極管,一般控制在3~20mA。

工作電壓紅色發光二極管:1.7-2.5V綠色發光二極管:2.0-2.4V黃色發光二極管:1.9-2.4V藍/白色發光二極管:3.0-3.8VPx.yVCCPx.yVCCVCC1.硬件電路三點亮LED2.程序設計

#include<reg51.h>//引入頭文件sbitLED=P1^0;//P1.0引腳定義為變量LEDmain()//主程序開始{while(1)

{LED=1;//點亮LED}}四LED如何實現閃爍LED閃爍的實質就是實現一亮一滅,前面實現了點亮LED,如何實現熄滅呢?

向P1.0送低電平便可以實現熄滅思考對策閃爍即亮滅亮滅亮滅…亮:P1.0輸出高電平滅:P1.0輸出低電平若亮滅之間沒有間隔會怎么樣?要加延時程序,讓亮和滅都持續一段時間?軟件實現思路:點亮發光二極管延時(延時子程序)熄滅發光二極管延時(延時子程序)重復上述動作(循環)程序設計#include<reg51.h>//引入頭文件sbitLED=P1^0;//P1.0引腳定義為LED變量voidmydelayms(unsignedintxms)

//定義延時函數;定義形參xms{unsignedinti,j;

//定義無符號整型變量i,jfor(i=0;i<xms;i++)//定義第一重for循壞

for(j=0;j<120;j++);//定義第二重for循環}voidmain(void)//主程序開始{while(1)//一直循環執行下面兩條指令

{

LED=1; //點亮LEDmydelayms(5);

LED=0;//熄滅LEDmydelayms(5);

}}任務小結單片機可以向某個IO引腳輸出高電平或低電平,這個電平加在發光二極管的一端,另一端接外部電路的電源或地,就可以單片機控制LED燈的亮或滅。在點亮或熄滅后加延時函數,即可實現LED的閃爍。綜合評價課后作業請用單片機驅動一個LED的亮滅,時間間隔兩秒,實現閃爍。謝謝觀看《單片機技術與應用》課程任務六左移右移實現流水燈任務描述用AT89C51的P1口,接8只LED,即D1,D2,…,D7,D8,編寫程序,使得8只LED循環點亮,時間間隔1秒,即剛開始點亮D1,1秒后點亮D2,接著點亮D3,D4,…,D8,然后點亮D7,D6,…,D2,D1,重復循環。知識鏈接一單片機時序的概念二移位函數實現流水燈一單片機時序的概念單片機內的各種操作都是在一系列脈沖控制下進行的,而各脈沖在時間上是有先后順序的,這種順序就稱為時序。單片機的時序定時單位從小到大依次為:振蕩周期、狀態周期、機器周期和指令周期。振蕩周期是指晶體振蕩器直接產生的振蕩信號的周期,是振蕩頻率fosc的倒數,用P表示。

狀態周期(或時鐘周期S)是振蕩周期的兩倍,它分為P1節拍和P2節拍。1個機器周期是由6個狀態周期構成,12個振蕩周期。執行一條指令所需的時間稱為指令周期。

若MCS-51單片機外接晶振為12MHz時,則單片機的四個周期的具體值為:振蕩周期=1/12MHz=1/12μs=0.0833μs時鐘周期=1/6μs=0.167μs機器周期=1μs指令周期=1~4μs二移位函數實現流水燈單片機實現霓虹燈也可以通過KeilC51的移位函數_crol_和_cror_函數來完成。_crol_,_cror_:將char型變量循環向左(右)移動指定位數后返回;_irol_,_iror_:將int型變量循環向左(右)移動指定位數后返回;_lrol_,_lror_:將long型變量循環向左(右)移動指定位數后返回。舉例說明a=10001000;

a=_crol_(a,1);//左移一位

//程序執行后,a=00010001a=00010001a=_cror_(a,2);

//右移兩位

//程序執行后,a=01000100

提示請用移位函數來實現一下LED流水燈效果,使用請用“#include<intrins.h>”這個指令引入intrins.h頭文件。任務實施1.硬件電路2.程序設計1.硬件電路2.程序設計#include<reg52.h>//包含單片機寄存器的頭文件#include<intrins.h>//包含_cror_和_crol_函數#defineuintunsignedint//宏定義,定義uint為無符號整型變量#defineucharunsignedchar//宏定義,定義uchar為無符號字符變量uchari,j;//定義變量i,jvoiddelay1s(void){uchara,b,c;//定義循環變量

for(c=167;c>0;c--)for(b=171;b>0;b--)for(a=16;a>0;a--);

}延時時間為1秒的延時函數voidmain(){while(1)//一直執行

{j=0x01;

for(i=0;i<8;i++)

{P1=~j;//左移的值送P1口

delay1s();//延時1s

j=

_crol

_(j,1);

//左移1位

}主函數for(i=0;i<8;i++)

{P1=~j;//接上面左移的值送P1口delay1s();//延時1s

j=

_cror_(j,1);

//右移一位

}

}}任務小結流水燈亮燈比較有規律,8個LED中7個熄滅,1個點亮,1秒后,向前或向后移動一個位置亮另外一個燈,如此循環,容易用for和移位函數來實現。綜合評價課后作業AT89C51的時鐘周期、機器周期、指令周期是如何定義的?當振蕩頻率為6MHz時,一個機器周期為多少微秒?謝謝觀看《單片機技術與應用》課程任務七任意花樣霓虹燈任務描述用AT89C51的P2口,接8只LED,把亮燈的花樣放到數組中,實現3種以上的流水燈花樣。知識鏈接

C51的數據類型C51的數據類型1.char字符類型char類型的長度是一個字節,通常用于定義字符數據的變量或常量。分為無符號字符類型unsignedchar和有符號字符類型signedchar,默認值為signedchar類型。unsignedchar類型范圍是0~255。signedchar類型范圍是-128~+127。2.int整型int整型長度為兩個字節,用于存放一個雙字節數據。分為有符號int整型數signedint和無符號整型數unsignedint,默認值為signedint類型。signedint表示的數值范圍是-32768~+32767。unsignedint表示的數值范圍是0~65535。3.long長整型long長整型長度為四個字節,用于存放一個四字節數據。分為有符號long長整型signedlong和無符號長整型unsignedlong,默認值為signedlong類型。4.float浮點型單精度雙精度5.指針型指針型本身就是一個變量,在這個變量中存放指向另一個數據的地址

溫馨提示

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

評論

0/150

提交評論