在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機匯編語言(三)

            51單片機匯編語言(三)

            作者: 時間:2016-11-24 來源:網絡 收藏
            7.2功能說明

            用一位數碼管循環(huán)顯示0~9數字,數字變換間隔的時間為1秒。

            本文引用地址:http://www.biyoush.com/article/201611/321011.htm

            程序:SMG2.ASM

            01: START: MOV DPTR, #TABLE ; 存表

            02: MOV R0, #0 ; 設定初始值

            03: LOOP : MOV A, R0

            04: MOVC A, @A+DPTR ; 取表代碼

            05: MOV P0, A ; 送P0輸出

            06: ACALL DLY1S ; 調延時程序 存表取表

            07: INC R0 ; R0值加1

            08: CJNE R0, #10 , LOOP ; 不是10,循環(huán)

            09: JMP START ; 重新開始 判斷循環(huán)

            10: DLY1S: MOV R5, #50 ;

            11: D1: MOV R6, #100 ;

            12: D2: MOV R7, #100 ;

            13: DJNZ R7, $ ;

            14: DJNZ R6, D2 ;

            15: DJNZ R5, D1 ; 1秒延時

            16: RET ; 子程序

            17: TABLE: DB 0C0H, 0F9H, 0A4H, 0B0H ;

            18: DB 99H, 92H, 82H, 0F8H ;

            19: DB 80H, 90H, 88H, 83H ;

            20: DB 0C6H, 0A1H, 86H, 8EH ; 代碼表

            21: END ; 程序結束

            7.3功能說明

            使用兩位數碼管顯示器,利用掃描方式循環(huán)顯示00~99兩位數。

            程序:SMG3.ASM

            01: START: MOV R0, #0 ;初始化計數器

            02: MOV DPTR, #TABLE ;存入查表啟始地址

            03: LOOP: ACALL DISPLAY ; 調顯示子程序

            04: INC R0 ; 計數器加1

            05: CJNE R0 ,#100, LOOP ; 沒到100 循環(huán)

            06: JMP START ; 到開始處 主程序

            07: DISPLAY::MOV A, R0 ;

            08: MOV B, #10 ; 16進制換成10進制

            09: DIV AB ; A÷B商存A,余數存B

            10: MOV R1, A ; R1內存放十位數

            11: MOV R2, B ; R2內存放個位數 十進

            12: MOV R3, #50 ; 設導通頻率50次

            13: LOOP1: MOV A, R2 ; 個位數顯示

            14: ACALL CHANG ; 調顯示子程序

            15: CLR P2.0 ;開個位顯示

            16: ACALL DLY10mS ; 調延時10ms程序 個位

            17: SETB P2.0 ; 關閉個位顯示 顯示

            18: MOV A, R1 ; 取十位數

            19: ACALL CHANG ; 調取表顯示子程序

            20: CLR P2.1 ; 開十位顯示

            21: ACALL DLY10mS ; 調延時10ms程序 十位

            22: SETB P2.1 ; 關閉十位顯示 顯示

            23: DJNZ R3, LOOP1 ; 100次沒完,繼續(xù)循環(huán) 掃描

            24: RET ; 子程序

            25: CHANG: MOVC A, @A+DPTR ;

            26: MOV P0, A ;

            27: RET ; 取表子程序

            28: DLY10mS:MOV R6, #20 ;

            29: D1: MOV R7, #248 ;

            30: DJNZ R7, $ ;

            31: DJNZ R6, D1 ; 延時10 m.S

            32: RET ; 子程序

            33: TABLE: DB 0C0H, 0F9H, 0A4H, 0B0H ;

            34: DB 99H, 92H, 82H, 0F8H ;

            35: DB 80H, 90H, 88H, 83H ;

            36: DB 0C6H, 0A1H, 86H, 8EH ; 代碼表

            37: END ; 程序結束

            鍵盤控制

            8.1功能說明:

            用八位指撥開關(DIP)作單片機的輸入,控制輸出端口連接的八只LED發(fā)光二極管。如若DIP1開關為 ON(向右撥動)則LED1亮,其它開關作用相同。

            程序:SR01.ASM

            01: LOOP: MOV A, P3 ; 從P3讀入DIP開關值

            02: MOV P1, A ; 從P1輸出

            03: JMP LOOP ; 無窮循環(huán)

            04: END ; 程序結束

            8.2功能說明:

            用DIP開關中的低4位作二進制的輸入,控制輸出端數碼管顯示器的輸出。

            程序:SR02.ASM

            01: MOV DPTR,#TABLE ; 存表

            02: MOV P0, #0FFH ; LED全滅

            03: LOOP: MOV A, P3 ; 從P3口讀入DIP開關值

            04: ANL A, #0FH ; 高4位清0,取低四位

            05: ACALL CHANG ; 轉成七段顯示碼

            06: MOV P0, A ; 從P0輸出

            07: JMP LOOP ; 轉移LOOP處,循環(huán)

            08: CHANG: MOVC A,@A+DPTR ; 取碼

            09: RET ; 返回 轉換顯示碼子程序

            10: TABLE: DB 0C0H, 0F9H, 0A4H, 0B0H ;

            11: DB 99H, 92H, 82H, 0F8H ;

            12: DB 80H, 90H, 88H, 83H ;

            13: DB 0C6H, 0A1H, 86H, 8EH ; 顯示碼表

            14: END ; 程序結束

            8.3功能說明:

            用兩個按鍵開關K1和K2作輸入,K1為電源指示燈開關,K2為工作指示燈開關。分別控制電源指示燈(P1.0接的LED)和工作指示燈(P1.7接的LED)的接通和關閉。接通電源時,電源指示燈是在亮的狀態(tài)。

            當按K2時,工作指示燈亮,電源指示燈滅。按K1時,電源指示燈亮,工作指示燈滅。

            程序:SR03.ASM

            01: START: MOV P1, #11111110B ; P1.0所接LED亮

            02: JB P2.5 , $ ; 判斷P2.5(K2鍵)是否為1

            03: ON: MOV P1, #01111111B ; P1.7所接LED亮

            04: JNB P2.4, START ; 判斷P2.4(K1鍵)是是否為0

            05: JMP ON ; 未按K1鍵,則跳至ON

            06: END ; 程序結束

            8.4功能說明:

            由四個按鍵開關組成獨立式鍵盤,控制燈左移、右移和閃爍。

            程序:JP01.ASM

            01: START: MOV P1,#0FFH ;設置輸出口初值

            02: MOV A,#0FFH ;設置輸入方式

            03: MOV P2,A ;

            04: LOOP: MOV A,P2 ;讀入鍵盤狀態(tài)

            05: CJNE A,#0FFH,LP0 ;有鍵按下否

            06: JMP LOOP ;無鍵按下等待

            07: LP0: ACALL DELAY1 ;調延時去抖動

            08: MOV A,P2 ;重讀入鍵盤狀態(tài)

            09: CJNE A,#0FFH,LP1 ;非誤讀則轉

            10: JMP LOOP ; 按鍵查詢

            11: LP1: JNB P2.4, A1 ;K1鍵按下轉A1

            12: JNB P2.5, A2 ;K2鍵按下轉A2

            13: JNB P2.6, A4 ;K3鍵按下轉A3

            14: JNB P2.7, A4 ;K4鍵按下轉A4 鍵按下后轉

            15: JMP START ;無鍵按下返回 功能處理程序

            16: A1: MOV R0, #8 ;設置左移位數

            17: MOV A ,#0FEH ;設置左移初值

            18: LOOP2: MOV P1, A ;輸出至P1

            19: ACALL DELAY ;調延時1秒子程序

            20: RL A ;左移一位

            21: DJNZ R0, LOOP2 ;判斷移動位數 1號功能鍵

            22: JMP START ;返回主程序開始處 處理程序

            23: A2: MOV R0,#8 ;設置右移位數

            24: MOV A ,#0FCH ;設置右移初值

            25: LOOP3: RR A ;右移一位

            26: MOV P1, A ;輸出至P1

            27: ACALL DELAY ;調延時1秒子程序

            28: DJNZ R0, LOOP3 ;判斷移動位數 2號功能鍵

            29: JMP START ;返回主程序開始處 處理程序

            30: A3: MOV R0,#6 ;設置閃爍次數

            31: MOV A ,#0F0H ;設置初值

            32: LOOP4: MOV P1, A ;輸出至P1

            33: ACALL DELAY ;調延時1秒子程序

            34: CPL A ;反相

            35: MOV P1,A ;輸出

            36: DJNZ R0, LOOP4 ;判斷移動位數 3號功能鍵

            37: JMP START ;返回主程序開始處 處理程序

            38: A4: MOV R0,#10 ;設置閃爍次數

            39: MOV A, #00H ;設置初值

            40: LOOP5: MOV P1,A ;輸出

            41: ACALL DELAY ;調延時子程序

            42: CPL A ;反相

            43: MOV P1,A ;輸出

            44: DJNZ R0, LOOP5 ;判斷閃爍次數 4號功能鍵

            45: MP START ;返回主程序開始處 處理程序

            46: DELAY1: MOV R3, #60 ;消抖延時子程序

            47: D2: MOV R4, #248 ;

            48: DJNZ R4, $ ;

            49: DJNZ R3, D2 ; 消除抖動

            50: RET ; 延時子程序

            51: DELAY: MOV R5, #50 ;延時1秒子程序

            52: DLY1: MOV R6, #100 ;

            53: DLY2: MOV R7, #100 ;

            54: DJNZ R7, $ ;

            55: DJNZ R6, DLY2 ;

            56: DJNZ R5, DLY1 ;

            57: RET ; 延時子程序

            58: END ; 程序結束



            關鍵詞: 51單片機匯編語

            評論


            技術專區(qū)

            關閉