想用单片机的一个端口输出一定数量(任意个数)的方波,不用定时器。 写了一个产生500个方波波形的子程序,不知道占空比和相位精确否,请大虾们指点。
fangbo: mov r7, #250 fb_1: mov r6, #100 ;装数 1 nop ; 1 clr 端口 ;置低电平 djnz r6, $ ;延时 200 mov r6, #100 ;装数 1 nop ; 1 nop ; 1 nop ; 1 nop ; 1 setb 端口 ;置高电平 djnz r6, $ ;延时 200 nop ; 1 djnz r7, fb_1 ;跳回 2 ;------------------------------------------- mov r7, #250 1 fb_2: mov r6, #100 ;装数 1 clr 端口 ;置低电平 djnz r6, $ ;延时 200 mov r6, #100 ;装数 1 nop ; 1 nop ; 1 nop ; 1 setb 端口 ;置高电平 djnz r6, $ ;延时 200 nop ; 1 djnz r7, fb_2 ;跳回 2 ret 另外,我认为这样写挺麻烦的,万一要产生几千上万个方波波形,代码岂不是多的多,苦思冥想中.......
|