官术网_书友最值得收藏!

項目原理與內容

1.流水燈的電路原理圖

流水燈的電路原理如圖2-1所示。該模塊通過鎖存器U7與P0口的八條口線相連。改變P0口的值即可實現(xiàn)流水燈的點亮或熄滅。U7的控制端為P12,通過控制P12可以打開或關閉流水燈模塊。八個發(fā)光二極管連接了兩個排阻,這是為發(fā)光二極管做限流保護的。

圖2-1 流水燈模塊的電路原理圖

2.發(fā)光二極管點亮的基本原理

本模塊中發(fā)光二極管點亮的條件是對應的P0口線為低電平,電流通過排阻以及發(fā)光二極管灌入單片機中,構成回路,點亮發(fā)光二極管。

發(fā)光二極管屬于電流型器件,隨著電流的增加,亮度也會增加,但電流不能過大,否則會燒毀。一般導通的電流應控制在10~20mA為宜。

3.C51程序的設計與調試方法

使用C51語言操控單片機,非常簡單,通過改變特殊功能寄存器的值,就可以改變對應的I/O口的狀態(tài)。對照圖2-1可以看到,當對應的口線為低電平時,即可點亮發(fā)光二極管。如果要實現(xiàn)流水燈效果,就需要依次點亮每一個發(fā)光二極管,即依次改變P0口的各個狀態(tài)就可以實現(xiàn)。

C51程序的編寫需要使用Keil軟件。使用Keil編寫C51程序的步驟也很簡單。首先雙擊桌面上的圖標,即可進入Keil軟件的集成開發(fā)環(huán)境中,如圖2-2所示。

圖2-2 Keil軟件的工作界面

在Keil中進行C51程序開發(fā)是以項目管理的形式進行的,首先需要創(chuàng)建項目。其操作步驟如下:

(1)建立項目文件

使用Keil要先建立一個項目文件,在工程文件內需要選擇所使用的單片機型號等內容。具體操作步驟:首先選擇Project→New Project命令,出現(xiàn)一個建立項目文件的對話框,導航到指定位置后,輸入項目文件名,如圖2-3所示。

需要注意的是,為了便于對項目文件的統(tǒng)一管理,一般在建立項目文件前,應先建立一個新的文件夾,并以項目名來命名此文件夾,隨后建立的項目文件就放在這個文件夾中。

圖2-3 建立項目文件

(2)選擇單片機

Keil支持400多種以8051為內核的單片機系列,用戶根據(jù)自己的需要來選擇適合的CPU。因為Keil中并沒有STC單片機,且STC單片機完全兼容標準的51單片機,所以這里以Atmel公司的AT89C51為例,在圖2-4圖左側找到Atmel并單擊,拖動滾動條找到AT89C51后單擊,此時右側窗口中出現(xiàn)的是對該單片機構成特性的一些概要描述。單擊下方的OK按鈕后會彈出圖2-5所示的提示框,詢問是否將標準的80C51啟動代碼復制到工程所在的文件夾內,并將這一源程序加入到工程當前中。一般情況下這里要選擇“是”。返回主界面,此時已經(jīng)建立起了項目文件。

(3)編寫C51程序

單擊工具欄上的按鈕,在主界面的右側窗口中出現(xiàn)一個名為Text1的文本文件,此時不必進行任何輸入,直接按工具欄上的按鈕,彈出Save As對話框,在對話框“文件名”文本框中輸入該文件的名稱,一定要注意,這里一定要寫上文件的擴展名,即“.c”,如圖2-6所示。單擊“保存”按鈕后,回到主界面,看到原來的Text1已經(jīng)變成剛剛命名的C51文件了。光標在第一行位置閃爍,等待輸入程序信息。此時本編輯窗口可以識別C51的語法,并進行著色顯示,接著就可以輸入程序內容,輸入完成后再次單擊按鈕,完成文件保存。

因為前面已經(jīng)為項目建立了專門的文件夾,所以這里保存的C51文件會默認保存到剛剛建立的項目文件夾中。

圖2-4 為項目選擇單片機

圖2-5 詢問是否加入80C51標準啟動代碼

圖2-6 SaveAs對話框

(4)編譯C51程序

保存好的C51程序要加入工程中才可以進行編譯。選擇工作界面左側窗格中Target1包含的Source Group 1,右擊,在彈出的快捷菜單中選擇Add Files to Group 'Source Group 1'命令,如圖2-7所示。出現(xiàn)Add Files to Group 'Source group 1'對話框,軟件會自動導航到剛剛保存過的led.c文件,單擊Add按鈕后,完成文件添加。單擊Close按鈕退出,如圖2-8所示。

圖2-7 將程序文件加入到工程中

圖2-8 選擇文件

添加程序文件后,回到主工作界面,此時單擊工具欄上的按鈕。會彈出Options for Target 'Targe 1'對話框,如圖2-9所示。選擇Output選項卡,勾選Create HEX File復選框后單擊OK按鈕。這項操作用于生成可執(zhí)行代碼文件。生成的文件擴展名為“.HEX”,將生成的文件上傳到單片機中,可以進行單片機的控制。

圖2-9 Options for Target 'Target1'對話框

返回工作界面后,再次單擊工具欄上的按鈕,進行工程的編譯,編譯成功后,在工作界面下方的窗口中會出現(xiàn)0 Error(s),0 Warning(s)字樣,表示程序編寫正常,工程編譯通過,如圖2-10所示。

圖2-10 編譯工程

至此一個C51程序的建立操作即完成了。

前面已經(jīng)分析過要實現(xiàn)流水燈效果必須依次改變P0口的各個口線狀態(tài),比較簡單的方法是使用數(shù)組,先將流水燈依次點亮時P0口中各口線的狀態(tài)值記錄下來,然后通過循環(huán),就可以實現(xiàn)依次改變了。本實驗中可定義數(shù)組為:

unsigned char code disp[8]={0xfe,0xfd,…,0x7f};

然后通過循環(huán)來使用P0口依次等于數(shù)組中的每個元素。為了能夠清楚地看到發(fā)光二極管的閃爍,在P0每次改變狀態(tài)時,要適當?shù)貢和R幌拢@可以通過延時函數(shù)實現(xiàn)。思路如下:

程序編寫完成后,一定要進行編譯。即使編譯完全通過,在實驗板中也未必能實現(xiàn)預期目的。所以任何程序都需要反復調試,只能充分調試,在各種情況下才能實現(xiàn)預期目的。

在Keil中調試程序,非常方便。當程序編寫完成后,單擊工具欄上的圖標,會出現(xiàn)程序調試窗口,如圖2-11所示。

圖2-11 程序調試窗口

工具欄上的就分別表示單步執(zhí)行和跳過函數(shù)繼續(xù)執(zhí)行。配合這兩個工具按鈕以及菜單上的peripherals項,并選擇需要觀察的端口,就能輕松實現(xiàn)程序的調試。

4.下載程序,并觀察實驗結果

使用STC-ISP將編寫的程序下載到實驗板中,觀察實驗效果。如果未能實現(xiàn)預期效果,需要重新調試程序,再次下載,觀察實驗效果。這個過程在項目開發(fā)中是多次重復進行的。

主站蜘蛛池模板: 昌邑市| 饶河县| 碌曲县| 罗江县| 凤翔县| 霍山县| 嘉祥县| 枝江市| 祁东县| 江安县| 普安县| 澳门| 永善县| 阿坝| 武清区| 临城县| 日喀则市| 汝阳县| 磐安县| 河东区| 阿瓦提县| 绿春县| 乌兰察布市| 乐清市| 灵丘县| 会宁县| 芦溪县| 开封市| 迁安市| 政和县| 永寿县| 香河县| 肥东县| 阳山县| 乐亭县| 海兴县| 临清市| 望城县| 韩城市| 社旗县| 新宁县|