用汇编语言或者设计一个定时10s周期为10s占空比为30的方波高电平3s低电平
7s)。
汇编语言代码如下:
ORG 0x0000 ; 程序起始地址
MOV P1, #00000000B ; 初始化P1口为低电平
LOOP:
MOV TL0, #0B11101110 ; 设置定时器0初值,10ms为一个计数单位
MOV TH0, #0B11011110
SETB TR0 ; 启动定时器0
WAIT:
JNB TF0, WAIT ; 等待定时器0计时结束
CLR TF0 ; 清除定时器0中断标志位
CPL P1.0 ; 取反P1.0口电平
DJNZ R0, LOOP ; 继续循环
RET ; 程序结束
上述程序使用定时器0产生10ms的中断,每次中断将P1.0口电平取反,实现方波输出。为了实现10s周期和3s高电平占空比,程序中使用了一个计数器R0,每次循环减1,当计数器值为0时,将P1.0口电平保持低电平7s,高电平3s,即可实现要求的方波输出。
原文地址: https://www.cveoy.top/t/topic/dbhH 著作权归作者所有。请勿转载和采集!