新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)秒表課程設(shè)計

        單片機(jī)秒表課程設(shè)計

        作者: 時間:2013-03-12 來源:網(wǎng)絡(luò) 收藏

        ;數(shù)碼管顯示秒表時間的程序
        GN1: ;先初始化
        S1:MOV A,#0
        MOV TEMP,A
        GOON1: MOV R2,#2
        JS1: MOV R3,#250
        TIME1: MOV A,TEMP ;將TEMP中的十六進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制
        MOV B,#10 ;10進(jìn)制/10=10進(jìn)制
        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口初始化,設(shè)置為高電平,用于
        JB P3.6,$;循環(huán)判斷開始按鈕K1是否按下?
        ACALL DELAY10;延時10毫秒觸點(diǎn)消抖
        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毫秒循環(huán)執(zhí)行250次,時間約0.5秒
        DJNZ R2,JS1 ;循環(huán)執(zhí)行2次,時間為1 秒鐘

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


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

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

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

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

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

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

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



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 贵州省| 都江堰市| 北川| 鄂托克前旗| 昆山市| 枣阳市| 宣恩县| 搜索| 余庆县| 宁强县| 花垣县| 郎溪县| 永靖县| 旅游| 万宁市| 建昌县| 河北区| 安化县| 乐平市| 丰台区| 保康县| 武定县| 鄂尔多斯市| 山丹县| 葫芦岛市| 虎林市| 仁寿县| 延川县| 库尔勒市| 香港| 岑巩县| 读书| 乐都县| 涿州市| 陵水| 奇台县| 普定县| 定陶县| 阳曲县| 桃园县| 石阡县|