2020-01-20 19:13发布
learner123 发表于 2015-1-18 04:23 不要动不动就说自己都不懂的词,结构就是结构,还上升不到架构。 板房和大楼不是一个数量级的。 51的经典可 ...
最多设置5个标签!
这点评看起来很厉害的样子啊,可以帮忙抽时间看看这个简单程序吗?看不到实验现象(每次P3.4接触GND就会只亮P0.0),DEBUG又进不去COUNTER,计数器不比定时器,感觉难了点。
先谢了。
- ;======================================
- ;使用定时器/计数器实现6只灯的流水灯功能
- ;(分别使用定时器和计时器两种方式实现)
- ;====================================
- ; 计数器实现
- ORG 0000H
- AJMP MAIN
- ORG 000BH
- AJMP C_0 ;COUNTER计数器模式
- ORG 0100H
- MAIN: MOV TMOD, #06H ;计数器0工作方式2,8位自动重装
- MOV TH0, #0FFH
- MOV TL0, #0FFH ;最快时间溢出
- MOV R2, #06H ;控制流水灯流6次,也就是6只灯!
- SETB EA
- SETB ET0
- CLR IT0 ;低电平触发方式
- SETB TR0
- SJMP $ ;等待溢出
- C_0: MOV TH0, #0FFH
- MOV TL0, #0FFH ;最快时间溢出
- ACALL TURN_R
- MOV R2, #06H ;流水灯结束之后重新赋值备下次使用。
- RETI
- ;------------------------------------------------------------------------------------------------
- ;流水灯程序
- ;----------
- TURN_R: MOV A, #0FEH
- MOV P0, A
- RL A
- ACALL DELAY
- MOV P0, A
- DJNZ R2, TURN_R
- RET
- ;------------------------------------------------------------------------------------------------
- ;延时子程序约1s
- ;--------------
- DELAY: MOV R7, #100
- DELAY0: MOV R6, #100
- DELAY1: MOV R5, #50
- DELAY2: DJNZ R5, DELAY2 ;MOV R5, $
- DJNZ R6, DELAY1
- DJNZ R5, DELAY0
- RET
- END
-
复制代码一周热门 更多>