我給你來個試試
- ;流水燈程序
- org 0000h ;設(shè)置起始地址
- ajmp main ;無條件跳轉(zhuǎn)指令 跳到 main
- org 0100h ;定位的偽指令 順序放到從0100H開始的程序單元
- main: mov r4,#04h ;向R4寄存器中載入十六進制數(shù)04H
- loop: mov a,#01h ;向A寄存器中載入十六進制數(shù)01H
- loop1: mov P1,a ;取出的值輸出到P1端口
- acall delay ;調(diào)入延時程序
- rl a ; 累加器A 循環(huán)左移
- djnz r4,loop1 ;檢測R4是否為零,每次減1不為零就跳 否則跳到loop1處繼續(xù)執(zhí)行
- mov r4,#04h ;賦初值
- ajmp loop ;無條件跳轉(zhuǎn)指令 跳到loop
- delay: mov r7,#64h ; 延時程序 ;向R7寄存器中載入十六進制數(shù)64H
- loop3: mov r6,#0C8h ;向R6寄存器中載入十六進制數(shù)0C8H
- loop4: nop ;表示執(zhí)行一條沒有什么意義的空指令
- nop ;表示執(zhí)行一條沒有什么意義的空指令
- nop ;表示執(zhí)行一條沒有什么意義的空指令
- djnz r6,loop4 ;檢測R6是否為零,每次減1不為零就跳 否則跳到loop4處繼續(xù)執(zhí)行
- djnz r7, loop3 ;檢測R7是否為零,每次減1不為零就跳 否則跳到loop3處繼續(xù)執(zhí)行
- ret ;返回指令
- End ;程序結(jié)束
復(fù)制代碼 |