天天看點

MCS-51單片機子產品實訓一 LED控制

單片機控制單個LED

一,  實訓教學目的

1,          從程式設計的角度初步了解單片機的内部結構

2,          了解單片機基本電路的組成

3,          學習proteus,keil 51,protel等軟體的使用

4,          編寫程式控制LED閃爍,間隔時間不定

二,  主要元件的介紹。

1,CPU AT89S51

 AT89S51是一款低功耗,高性能的8位微處理器,有4KBZ可在系統程式設計(ISP) Flash閃速存儲器,1000次擦寫周期,它與工業标準的80C51和80C52的指令集及輸出PIN腳完全相容。128X8-bit片内RAM,32個可程式設計I/O腳,2個16-位定時/計數器,5個中斷源,可程式設計全雙工串行口,低功耗空閑模式和掉電模式。

2,晶體振蕩器

12M晶體振蕩器

3,發光二極管

8隻發光二極管共陽連接配接,陰極與CPU的P1端口相連,P1口輸出低電平就亮。

三,  實訓工作制作指導

1,學習使用Proteus仿真軟體畫出原理圖。

2,熟悉彙編語言程式設計,學習使用Keil 51進行源代碼編寫

3,學習程式調試的方法

四,  電路原理圖

MCS-51單片機子產品實訓一 LED控制

五,  工作原理

8051系列單片機工作過程大體是這樣:晶體振蕩器為CPU提供時序,複位電路為CPU提供複位信号,接上電源,上電複位,CPU中各特殊功能寄存器複位PC=0H,SP=07H, P0=P1=P2=P3=FFH, 其他都為0,CPU根據PC中的位址從ROM的00H位址開始取指令,寄存到IR寄存器中,PC中的位址自動加一,指到下一個位址空間,然後CPU将IR中的指令送到ID寄存器進行解碼,然後CPU根據解碼的結果控制執行該指令,如果是多位元組指令,則CPU繼續按照PC中的位址從ROM中取下一或二個位元組内容送IR,再送ID解碼,并控制執行。重複這樣的步驟實作程式的執行。

本節子產品控制一個LED,麻雀雖小,也是五髒俱全,大家要考慮的是程式中如何控制這個LED。從原理圖上可以知道,P1.0腳輸出低電平時,LED亮起來,P1.0輸出高電平時,LED就滅掉了,我們隻要讓P1.0不停的變換輸出電平,LED就亮,滅交替,實作了一閃一閃的效果,是以用一個循環實作之。

六,  物料表

元件序号 元件名稱 規格 數量
1 CPU AT89S51 1
2 電阻 10k 1/8W 1
3 電容 10u 16v電解電容 1
4 電阻 1k 1/8W 1
5 晶振 12.000MHz 1
6 電容 22pF 陶瓷電容 2

七,  實訓步驟

1.     熟悉CPU的工作原理及電路結構。

2.     根據原理圖準備所需元器件。

3.     熟悉單片機引腳功能及工作原理。

4.     按照原理圖組裝好電路闆。

5.     準備電路工作時所需電源。

6.     用萬用表檢查電路闆是否正常工作。

7.     接上電源,注意電源極性,簡單的方法是接上電源的瞬間手摸CPU,如果發熱應立即切斷電源。

8.     根據設計好的算法寫出彙編語言程式。

9.     将設計好的程式在軟體上進行仿真調試,

10. 調試通過後再将程式燒錄到程式存儲器中進行測試

八,  儀器準備

5伏直流穩壓電源     1台

示波器               1台

萬表用           1隻

九,  問答題

1.     将程式燒錄到程式存儲器中,上電後,LED燈不工作是什麼原因?(至少2種原因)

2.     考慮如何實作LED,短亮,短亮,長滅這個工作過程。

附程式源碼:

 Org 00h

Ljmp Main

Org 100h

Main:

            Mov SP, #5FH

LOOP:

            CPL P1.0

            MOV R7, #100

            MOV R6, #50

            ACALL  DELAY

            SJMP             LOOP

DELAY:

            DJNZ R5, $

            DJNZ R7, DELAY

            MOV      R7, #100

            DJNZ R6, DELAY

            RET

END      

繼續閱讀