新聞中心

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

        單片機最小系統制作

        作者: 時間:2013-05-16 來源:網絡 收藏

        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 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(三節電池)的電源,可以調試本系統,如果沒有錯誤就可以正常工作了。

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

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 秦皇岛市| 龙南县| 洪洞县| 宁强县| 黑龙江省| 辉县市| 弋阳县| 四川省| 登封市| 聂拉木县| 庄河市| 塔河县| 大新县| 泰来县| 古交市| 治多县| 万源市| 泗洪县| 嫩江县| 泰和县| 兰西县| 琼中| 洛扎县| 吉水县| 陵川县| 岐山县| 汨罗市| 河北省| 左贡县| 绍兴市| 巴塘县| 巴彦县| 芦山县| 孟连| 山东省| 兴业县| 望谟县| 张掖市| 濉溪县| 安阳县| 衡南县|