“脉冲分配”程序,汇编语言
答案:2 悬赏:60 手机版
解决时间 2021-02-27 10:17
- 提问者网友:送舟行
- 2021-02-26 18:27
令p1口低三位依次输出001B、011B、010B、110B、100B、101B六种状态并反复循环,每种状态须保持1ms时间(假定已有1ms延时子程序DELAY可以供直接调用)。
最佳答案
- 五星知识达人网友:逐風
- 2021-02-26 19:00
;用最简单的思路:
LOOP:
MOV P1, #00000001B
CALL DL1ms
MOV P1, #00000011B
CALL DL1ms
MOV P1, #00000010B
CALL DL1ms
MOV P1, #00000110B
CALL DL1ms
MOV P1, #00000100B
CALL DL1ms
MOV P1, #00000101B
CALL DL1ms
SJMP LOOP
DA1ms:
;;;;;;;;;;;;;;;;;
RET
END
LOOP:
MOV P1, #00000001B
CALL DL1ms
MOV P1, #00000011B
CALL DL1ms
MOV P1, #00000010B
CALL DL1ms
MOV P1, #00000110B
CALL DL1ms
MOV P1, #00000100B
CALL DL1ms
MOV P1, #00000101B
CALL DL1ms
SJMP LOOP
DA1ms:
;;;;;;;;;;;;;;;;;
RET
END
全部回答
- 1楼网友:你可爱的野爹
- 2021-02-26 20:13
51单片机是有计数功能的,置方式1最大可以计数65536个脉冲。但要注意脉冲频率要小于晶振频率的1/24
如果只计数的话,不用打开中断功能,只要取出th0和tl0的值并把它清零即可。
初始化程序:
void init()
{
tmod=0x05;//方式一,16位计数器
th0=0;
tl0=0;
tr0=1;//启动计数器
}
楼下的程序是定时器,不是计数器
欢迎来我空间看看
百度空间:http://hi.baidu.com/%b4%f3%ce%b0%b5%e7%d7%d3%d6%c6%d7%f7
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯