
怎样用单片机产生38KHz的方波,晶振是12MHz的,用汇编语言最好,谢谢
3个回答
展开全部
呵呵,做红外发射吧,定时器发吧,12000000/12/38000=26,如果中断里用取反IO口发方波信号的话,还得除以2,也就是说13个机器周期作为定时器的计数值。为了减少中断占用时间过多,采用自动重装载方式。
ORG 0000H
SJMP STA
ORG 000BH
LJMP T0ISR
ORG 0030H
STA:
MOV TMOD,#02H
MOV TL0,#13
MOV TH0,#13
SETB TR0
SETB ET0
SETB EA
SJMP $
T0ISR:
CPL P1.1
RETI
END
ORG 0000H
SJMP STA
ORG 000BH
LJMP T0ISR
ORG 0030H
STA:
MOV TMOD,#02H
MOV TL0,#13
MOV TH0,#13
SETB TR0
SETB ET0
SETB EA
SJMP $
T0ISR:
CPL P1.1
RETI
END

2020-01-15 广告
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
51 单片机,难以得到准确的 38kHz。
定时 13us 中断一次,可以得到近似的频率。
利用定时器的工作方式 2,即自动重装载方式,可消除定时误差。
当晶振频率为 12MHz,定时初值应为 256-13 = 243。
楼上的思路还不错,只是定时初值算错了。
正确的初始部分指令如下:
MOV TMOD, #02H ; T0 定时方式 2
MOV TL0, #243 ; 定时初值
MOV TH0, #243 ; 重载值
MOV IE, #82H ; 开放 T0 中断
。。。
END
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
t
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询