新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機最小系統設計

        單片機最小系統設計

        作者: 時間:2011-05-01 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/172835.htm

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

        硬件電路設計
        根據本系統的功能,和單片機的工作條件,我們設計出下面的電路圖。

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

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

        (8)程序如下:

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

        下面還有有一個網上copy的一個設計

        單片機課程設計題目:單片機最小系統

        一、設計題目:單片機最小系統四、任務與要求:

        在智能化儀器儀表中,控制核心均為微處理器,而單片機以高性能、高速度、體積小、價格低廉、穩定可靠而得到廣泛應用,是設計智能化儀器儀表的首選微控制器,單片機結合簡單的接口電路即可構成單片機最小系統,它是智能化儀器儀表的基礎,也是測控。監控的重要組成部分。

        本課題任務與要求如下:

        1、 單片機可采用8031、8051、AT89C51、AT89C52、fosc=6MHz。

        2、 時鐘電路,復位電路的設計。

        3、 系統RAM、ROM的容量均為8KB。

        4、 顯示位數:8位。

        5、 鍵盤按鍵數:16個。

        手機電池相關文章:手機電池修復


        51單片機相關文章:51單片機教程


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        蜂鳴器相關文章:蜂鳴器原理
        晶振相關文章:晶振原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东兰县| 金川县| 怀远县| 靖西县| 通道| 藁城市| 竹北市| 越西县| 六盘水市| 宜阳县| 应用必备| 南江县| 柳林县| 沂水县| 石河子市| 嘉善县| 林州市| 临潭县| 阳城县| 红安县| 洛宁县| 石门县| 桐梓县| 蓬安县| 绥江县| 水城县| 马龙县| 安乡县| 枞阳县| 武清区| 曲麻莱县| 宝鸡市| 大竹县| 绩溪县| 南投县| 乐平市| 印江| 渑池县| 乌拉特后旗| 富裕县| 仁怀市|