找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2210|回復(fù): 1
收起左側(cè)

延時(shí)編碼求助。!如何添加??

[復(fù)制鏈接]
ID:211821 發(fā)表于 2017-6-16 12:48 | 顯示全部樓層 |閱讀模式
IOCON   EQU 8006H       ;8255控制端口地址
IOA     EQU 8000H       ;8255端口A地址
IOB     EQU 8002H       ;8255端口B地址
IOC     EQU 8004H       ;8255端口C地址
CODE SEGMENT
    ASSUME CS:CODE
         
ORG 100H
START:
    MOV AL,90H      ;寫入8255A的控制字
    MOV DX,IOCON
    OUT DX,AL
   
    NOP
START1:
    NOP
    NOP
    MOV AL,0        ;從PA端口讀入開關(guān)狀態(tài)
    MOV DX,IOA
    IN  AL,DX
    NOP
    NOP
    MOV DX,IOB      ;從PB端口輸出,控制LED亮滅
    OUT DX,AL
   
    JMP START1
CODE ENDS
    END START

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:149988 發(fā)表于 2017-6-17 08:18 | 顯示全部樓層

RE: 延時(shí)編碼求助。!如何添加??

程序中NOP都起延時(shí)作用,但是延時(shí)時(shí)間很短,下面一段子程序延時(shí)時(shí)間較長,R7和R6裝載數(shù)據(jù)越大延時(shí)時(shí)間越長。哪里需要延時(shí),將此子程序在哪里調(diào)用即可。具體延時(shí)時(shí)間計(jì)算和延時(shí)原理見課本。
       ......
delay:                        ;延時(shí)子程序
       MOV  R7,#30H     ;設(shè)置R7=20H
L1:  MOV  R6,#0FFH    ;設(shè)置R6=FFH
       DJNZ R6,$            ;若R6-1≠0,執(zhí)行本指令循環(huán),若R6-1=0,執(zhí)行下一指令
       DJNZ R7,L1           ;若R7-1≠0,執(zhí)行L2循環(huán),若R7-1=0,執(zhí)行下一指令
       RET
       ......
如所列舉程序中一段程序。
START1:
    NOP
    NOP
    MOV AL,0        ;從PA端口讀入開關(guān)狀態(tài)
    MOV DX,IOA
    IN  AL,DX
    NOP
    NOP
    MOV DX,IOB      ;從PB端口輸出,控制LED亮滅
    OUT DX,AL
如果延時(shí)時(shí)間很長,將兩個(gè)NOP刪除,換上ACALL  delay 如:
START1:
    ACALL  delay
    MOV AL,0        ;從PA端口讀入開關(guān)狀態(tài)
    MOV DX,IOA
    IN  AL,DX
    ACALL  delay
    MOV DX,IOB      ;從PB端口輸出,控制LED亮滅
    OUT DX,AL
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表