機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
單片機最小系統(tǒng)制作教程
單片機最小系統(tǒng)制作教程
 更新時間:2009-11-18 15:37:38  點擊數(shù):0
【字體: 字體顏色

一、確定任務
開發(fā)單片機最小系統(tǒng)
二、任務分析:
該系統(tǒng)具有的功能:
(1)具有2位LED數(shù)碼管顯示功能。
(2)具有八路發(fā)光二極管顯示各種流水燈。
(3)可以完成各種奏樂,報警等發(fā)聲音類實驗。
(4)具有復位功能。
三、功能分析
(1)兩位LED數(shù)碼管顯示功能,我們可以利用單片機的P0口接兩個數(shù)碼管來現(xiàn)這個功能;
(2)八路發(fā)光二極管顯示可以利用P1口接八個發(fā)光二極管實現(xiàn)這個功能;
(3)各種奏樂、報警等發(fā)聲功能可以采用P2.0這個引腳接一蜂鳴器來實現(xiàn)。
(4)利用單片機的第9腳可以設計成復位系統(tǒng),我們采用按鍵復位;利用單片機的18、19腳可以設計成時鐘電路,我們利用單片機的內(nèi)部振蕩方式設計的。
四、設計框圖

五、硬件電路設計
根據(jù)本系統(tǒng)的功能,和單片機的工作條件,我們設計出下面的電路圖。


六、元件清單的確定:
數(shù)碼管:共陰極2只(分立)
電解電容:10UF的一只
30PF的電容2只
220歐的電阻9只
4.7K的電阻一只
1.2K的電阻一只
4.7K的排阻一只,
12MHZ的晶振一只
有源5V蜂名器一只
AT89S51單片機一片
常開按鈕開關1只
緊鎖座一只(方便芯取下來的,綠色的)
發(fā)光二極管(5MM紅色)8只
萬能板電路版15*17CM
S8550三極管一只
4.5V電池盒一只,導線若干。
七、硬件電路的焊接
按照原理圖把上面的元件焊接好,詳細步驟省略。

 

八、相關程序編寫
針對上面的電路原理圖,設計出本系統(tǒng)的詳細功能:
(1)、第一個發(fā)光二極管點亮,同時數(shù)碼管顯示“1”。
(2)、第二個發(fā)光二極管點亮,同時數(shù)碼管顯示“2”。
(3)、依次類推到第八個發(fā)光二極管點亮,同時數(shù)碼管顯示“8”。
以上出現(xiàn)的是流水燈的效果
(4)、所有的發(fā)光二極管滅了,同時數(shù)碼管現(xiàn)實“0”。
(5)、數(shù)碼管顯示“1”。
(6)、數(shù)碼管顯示“2、……”直到“9、A、B、C、D、E、F、Y”。
(7)、蜂鳴器發(fā)出九聲報警聲后重復上面所有步驟。

(8)程序如下:

ORG 0000H;偽指令,定義下面的程序代碼(機器代碼)從地址為0000H的單元存放。
LJMP START;跳轉到標號為START的地方去執(zhí)行。
ORG 0030H;偽指令,定義下面的程序代碼(機器代碼)從地址為0030H的單元存放。
START:MOV P1,#0FEH ;點亮第一個發(fā)光二極管。
CLR P2.7 ;送低電平到第一個數(shù)碼管,開啟數(shù)碼管。
CLR P2.6 ;送低電平到第二個數(shù)碼管,開啟數(shù)碼管。
MOV P0,#06H;讓數(shù)碼管顯示“1” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P1,#0FDH;點亮第二個發(fā)光二極管。
MOV P0,#5bH;讓數(shù)碼管顯示“2” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P1,#0FBH;點亮第三個發(fā)光二極管。
MOV P0,#4fH;讓數(shù)碼管顯示“3” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P1,#0F7H;點亮第四個發(fā)光二極管。
MOV P0,#66H;讓數(shù)碼管顯示“4” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P1,#0EFH;點亮第五個發(fā)光二極管。
MOV P0,#6dH;讓數(shù)碼管顯示“5” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P1,#0DFH;點亮第六個發(fā)光二極管。
MOV P0,#7dH;讓數(shù)碼管顯示“6” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P1,#0BFH;點亮第七個發(fā)光二極管。
MOV P0,#07H;讓數(shù)碼管顯示“7” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P1,#7FH;點亮第八個發(fā)光二極管。
MOV P0,#7fH;讓數(shù)碼管顯示“8” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P1,#00H;滅了所有的發(fā)光二極管。
MOV P0,#3FH;讓數(shù)碼管顯示“0” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#06H;讓數(shù)碼管顯示“1” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#5bH;讓數(shù)碼管顯示“2” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#4fH;讓數(shù)碼管顯示“3” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#66H;讓數(shù)碼管顯示“4” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#6dH;讓數(shù)碼管顯示“5” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#7dH;讓數(shù)碼管顯示“6” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#07H;讓數(shù)碼管顯示“7” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“8” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#6fH;讓數(shù)碼管顯示“9” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“A” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“b” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“C” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“d” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“E” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“F” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“Y” 。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
MOV R4,#9;送蜂鳴器的報警次數(shù)。
LOOP:SETB P2.0;不發(fā)聲
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
CLR P2.0;發(fā)聲。
LCALL DELAY;調(diào)用延時子程序,起到延時的目的。
DJNZ R4,LOOP;發(fā)聲九次后向下執(zhí)行。
SETB P2.0;關閉發(fā)聲
LJMP START;跳轉到標號為START處執(zhí)行,循環(huán)本程序。
DELAY:MOV R7,#200;這是延時子程序。
D1:MOV R6,#200
D2:MOV R5,#200
D3:DJNZ R5,D3
DJNZ R6,D2
DJNZ R7,D1
RET;延時子程序返回指令。
END;結束偽指令。
九、利用KEIL C51 軟件對上面的程序進行調(diào)試和編譯,產(chǎn)生*.HEX文件,以便用編程器寫入單片機芯片中。
十、編程器的使用:用編程器把電腦里生成的*.HEX文件寫到芯片中。
十一、產(chǎn)品調(diào)試:通上4.5V(三節(jié)電池)的電源,可以調(diào)試本系統(tǒng),如果沒有錯誤就可以正常工作了。

(以上程序在調(diào)試是會提示錯誤,錯誤原因正在調(diào)查中)


本篇文章來源于 電子開發(fā)網(wǎng) 轉載請以鏈接形式注明出處 網(wǎng)址:http://www.dzkfw.com.cn/Article/danpianji/226.html

  • 上一篇: 基于U盤的單片機海量存儲方案
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1