高分单片机问题急求:用51单片机实现方波发生器设计,要求脉宽2μs--10ms,步进1μs.(汇编)

如题所述

第1个回答  2011-04-05
所谓的脉宽你可以先置底,后置高,依此类推就行
置于程序,建议你采用循环方式追问

脉宽就是高电平的持续时间吧,可以用延时子程序NOP吗,它就是延时1μs。

追答

是地,用12Mhz的晶振,就是1us,你可以设参量,让他自加

追问

你看这样想行吗
24MHZ的晶振DJNZ是1μs#2710H是10000D

ORG 0000H
AJMP START
ORG 0040H
START:
MOV A,#1000H
MOV B,#1000H
QQ:
SETB P1.0
DJNZ A,$
CLR P1.0
DJNZ B,$
UP:JB P2.0,DOWN
JNB P2.0,$
ADD A,#0001H
CJNE A,#2711H,QQ
MOV A,#0002H
LJMP QQ
DOWN:JB P2.1,QQ
JNB P2.1,$
SUBB A,#0001H
CJNE A,#0001H,QQ
MOV A,#2710H
LJMP QQ
END

追答

差不多,具体的指令不记得了,你用A来控制脉宽,这样每个脉宽都只有一个周期,可以了
其余错误,调试时,会发现的

追问

但是寄存器A不能存16位的,51单片机没有16为寄存器啊,怎么实现存10000这个功能啊

追答

用dptr存,或者放在两个寄存器里

本回答被网友采纳
第2个回答  2011-04-10
用单片机产生方波是最简单的 只需要你用个延时一个DA转换就可以了
相似回答