新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機秒表課程設計

        單片機秒表課程設計

        作者: 時間:2013-03-12 來源:網絡 收藏

        ;數碼管顯示秒表時間的程序
        GN1: ;先初始化
        S1:MOV A,#0
        MOV TEMP,A
        GOON1: MOV R2,#2
        JS1: MOV R3,#250
        TIME1: MOV A,TEMP ;將TEMP中的十六進制數轉換成10進制
        MOV B,#10 ;10進制/10=10進制
        DIV AB
        MOV B_BIT,A ;十位在A
        MOV A_BIT,B ;個位在B

        LCALL DPLOP1

        ;插入一段判斷定時過程中是否有的程序段
        C1: JB P3.6,B1
        ACALL DELAY10;延時10毫秒消抖
        JB P3.6,C1
        JNB P3.6,$;等待按鍵松開
        CPL F0
        ZT1: ; MOV P3,#0FFH;對P3口初始化,設置為高電平,用于
        JB P3.6,$;循環判斷開始按鈕K1是否按下?
        ACALL DELAY10;延時10毫秒觸點消抖
        JB P3.6,ZT1;如果是干擾就返回
        JNB P3.6,$;等待按鍵松開
        LCALL DPLOP1

        B1: JB P3.7,LOOP1
        ACALL DELAY10;延時10毫秒消抖
        JB P3.7,B1
        JNB P3.7,$;等待按鍵松開
        AJMP OVER

        LOOP1: DJNZ R3,TIME1 ;2毫秒循環執行250次,時間約0.5秒
        DJNZ R2,JS1 ;循環執行2次,時間為1 秒鐘

        INC TEMP;滿一秒鐘對時間加1
        MOV A,TEMP
        CLR C
        SUBB A,#60
        JNZ GOON1;判斷TEMP的數值是否為60?不為60循環
        ACALL OVER
        RET


        GN2: MOV A,#14H ; 設定倒計時的時間20S
        MOV TEMP,A

        ;數碼管顯示倒計時時間的程序
        ;初始化
        MOV P3,#0FFH;對P3口初始化,設置為高電平,用于
        MOV P0,#14H;使顯示時間為設定的倒計時時間

        GOON2: MOV R2,#2
        JS2: MOV R3,#250
        TIME2: MOV A,TEMP ;將TEMP中的十六進制數轉換成10進制
        MOV B,#10 ;10進制/10=10進制
        DIV AB
        MOV B_BIT,A ;十位在A
        MOV A_BIT,B ;個位在B

        MOV DPTR,#NUMTAB ;指定查表啟始地址
        DPLOP2: MOV A,A_BIT ;取個位數
        MOVC A,@A+DPTR ;查個位數的7段代碼
        MOV P0,A ;送出個位的7段代碼

        CLR P2.5 ;開個位顯示
        ACALL DELY1;顯示1毫秒
        SETB P2.5;關閉個位顯示,防止鬼影
        MOV A,B_BIT ;取十位數
        MOVC A,@A+DPTR ;查十位數的7段代碼
        MOV P0,A ;送出十位的7段代碼
        CLR P2.6 ;開十位顯示
        ACALL DELY1;顯示1毫秒
        SETB P2.6;關閉十位顯示,防止鬼影

        ;插入一段判斷定時過程中是否有按鍵輸入的程序段
        C2: JB P3.6,B2
        ACALL DELAY10;延時10毫秒消抖
        JB P3.6,C2
        JNB P3.6,$;等待按鍵松開

        ZT2: MOV P3,#0FFH;對P3口初始化,設置為高電平,用于按鍵輸入
        JB P3.6,$;循環判斷開始按鈕K1是否按下?
        ACALL DELAY10;延時10毫秒觸點消抖
        JB P3.6,ZT2;如果是干擾就返回
        JNB P3.6,$;等待按鍵松開



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 江门市| 马尔康县| 东乌珠穆沁旗| 肇源县| 高州市| 郸城县| 沂源县| 榕江县| 灵璧县| 双桥区| 江门市| 玉溪市| 三原县| 兴海县| 沙湾县| 洛川县| 喜德县| 成都市| 丰顺县| 凤阳县| 榆树市| 台东县| 德江县| 孟州市| 贵溪市| 洪洞县| 麻栗坡县| 龙门县| 凤城市| 宁南县| 永清县| 江达县| 奉贤区| 嘉黎县| 东乌| 辽中县| 桐庐县| 乡城县| 平安县| 和硕县| 葵青区|