如果芯片本身不具备 8 路 PWM 输出功能,那么,就只能软件模拟这种功能了!
软件模拟可能会让 PWM 的最高输出频率受到影响,而实现却很容易.找一组端口不是 8 个端口吗?同时输出就是 8 路了!
实际示例:
定时器中断一次间隔 100us .输出 8 位分辨力=256 次.
MEM DATA 30H ;定义一个输出计数器
MES DATA 31H ;定义一个中断次数计数器
MOV MEM,#127 ;50% PWM 波形
;中断一次 MES 就 +1 !
;如果 MES < MEM ,8端口就输出=1
;如果 MES ≥ MEM ,8端口就输出=0.
;如果 MES 溢出(255 到 00H),又重新开始8端口输出=1
;改变 MEM 就改变占空比 ,改变总计数值就改变分辨力.
100*256=25600
输出频率=1000000/25600=39.063HZ
仅供参考!
|