求助

威威攻城狮 2018-12-17 12:02:04
有没有人告诉我怎么用51捕获pwm的占空比呀!
...全文
192 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly 100% 2018-12-21
  • 打赏
  • 举报
回复
gpio 中断计时,抓边沿跳变
huhubear 2018-12-21
  • 打赏
  • 举报
回复
供参考。。 #include <STC15F2K60S2.H>//定时的时间是0.1ms,来自刘其*大神 sbit input1=P3^7; sbit input2=P3^6; sbit input3=P3^5; sbit input4=P3^4; sbit output1=P1^0; sbit output2=P1^1; sbit output3=P4^7; sbit output4=P1^2; sbit input=P1^6; sbit YM=P1^3; sbit LED=P4^0; char CS,ZT,i; void Time0_Init(); void Delay(unsigned int s); void Delay(unsigned int s) { unsigned int i; for(i=0; i<s; i++); for(i=0; i<s; i++); } void Time0_Init() { TMOD = 0x01; IE = 0x82; TH0 = 0xfe; TL0 = 0xed; TR0=1; } void main() { P4SW=0x70; LED=0; Time0_Init(); while(1) { if(ZT=0) { output1=input1; output2=input2; output3=input3; output4=input4; } if(ZT=1) { output1=YM; output2=YM; output3=YM; output4=YM; } } } void Time0_Int() interrupt 1 { TH0 = 0xfe; TL0 = 0xed; //0.1us if(input==1) { CS++; } if(input==0&&CS>0) { if(CS>15) { ZT=1; LED=1; } if(CS<15) { ZT=0; LED=0; } CS=0; } }
平底锅锅锅 2018-12-21
  • 打赏
  • 举报
回复
用定时器试试
dceacho 2018-12-17
  • 打赏
  • 举报
回复
定时器计时 跳变触发外部中断

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧