MC51单片机显示200us方波的汇编语言程序
答案:3 悬赏:80 手机版
解决时间 2021-03-29 08:42
- 提问者网友:愿为果
- 2021-03-28 15:50
MC51单片机显示200us方波的汇编语言程序
最佳答案
- 五星知识达人网友:傲气稳了全场
- 2021-03-28 16:42
ORG 00H
LJMP START
ORG 00BH
LJMP T0INT
START:
MOV SP,#60H
MOV TMOD,#01H
MOV TH0,#0FFH
MOV TL0,#9CH
SETB EA
SETB ET0
SETB TR0
LOOP:
LJMP LOOP
T0INT:
MOV TH0,#0FFH
MOV TL0,#9CH
CPL P3.5
CPL P3.7
RETI
END
LJMP START
ORG 00BH
LJMP T0INT
START:
MOV SP,#60H
MOV TMOD,#01H
MOV TH0,#0FFH
MOV TL0,#9CH
SETB EA
SETB ET0
SETB TR0
LOOP:
LJMP LOOP
T0INT:
MOV TH0,#0FFH
MOV TL0,#9CH
CPL P3.5
CPL P3.7
RETI
END
全部回答
- 1楼网友:十年萤火照君眠
- 2021-03-28 18:58
汇编几乎忘完了,愿提供c。要不要?
#include
sbit flag= P2^5;
main()
{
TMOD=0x00;//定时器0工作方式定义
TH0=0x1F;//计数初TH0
TL0=0x38;//计数初值TL0
ET0=1;//开定时器0中断
EA=1;//开全局中断
TF0=0;//定时器0中断标志位清0
TR0=1;//定时器0开始计数
while(1);
}
void int0() interrupt 1 using 0//定时器0服务子程序
{
TH0=0x1F;//计数初TH0
TL0=0x38;//计数初值TL0
flag=~flag;
}
#include
sbit flag= P2^5;
main()
{
TMOD=0x00;//定时器0工作方式定义
TH0=0x1F;//计数初TH0
TL0=0x38;//计数初值TL0
ET0=1;//开定时器0中断
EA=1;//开全局中断
TF0=0;//定时器0中断标志位清0
TR0=1;//定时器0开始计数
while(1);
}
void int0() interrupt 1 using 0//定时器0服务子程序
{
TH0=0x1F;//计数初TH0
TL0=0x38;//计数初值TL0
flag=~flag;
}
- 2楼网友:行路难
- 2021-03-28 18:18
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:CLR P3.7
M1:MOV R7,#47
NOP
NOP
DJNZ R7,$
CPL P3.5
SJMP M1
END
如果差一个us,可以采用增减NOP指令来完成,多一条NOP指令,就多一个us。
假设采用12M晶体。
LJMP MAIN
ORG 0030H
MAIN:CLR P3.7
M1:MOV R7,#47
NOP
NOP
DJNZ R7,$
CPL P3.5
SJMP M1
END
如果差一个us,可以采用增减NOP指令来完成,多一条NOP指令,就多一个us。
假设采用12M晶体。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯