我给你来个试试
- ;流水灯程序
- org 0000h ;设置起始地址
- ajmp main ;无条件跳转指令 跳到 main
- org 0100h ;定位的伪指令 顺序放到从0100H开始的程序单元
- main: mov r4,#04h ;向R4寄存器中载入十六进制数04H
- loop: mov a,#01h ;向A寄存器中载入十六进制数01H
- loop1: mov P1,a ;取出的值输出到P1端口
- acall delay ;调入延时程序
- rl a ; 累加器A 循环左移
- djnz r4,loop1 ;检测R4是否为零,每次减1不为零就跳 否则跳到loop1处继续执行
- mov r4,#04h ;赋初值
- ajmp loop ;无条件跳转指令 跳到loop
- delay: mov r7,#64h ; 延时程序 ;向R7寄存器中载入十六进制数64H
- loop3: mov r6,#0C8h ;向R6寄存器中载入十六进制数0C8H
- loop4: nop ;表示执行一条没有什么意义的空指令
- nop ;表示执行一条没有什么意义的空指令
- nop ;表示执行一条没有什么意义的空指令
- djnz r6,loop4 ;检测R6是否为零,每次减1不为零就跳 否则跳到loop4处继续执行
- djnz r7, loop3 ;检测R7是否为零,每次减1不为零就跳 否则跳到loop3处继续执行
- ret ;返回指令
- End ;程序结束
复制代码 |