wangmengqiwo 发表于 2014-4-2 07:47:01

怎么用51写50HZ脉宽2ms的方波

求大神讲解怎么计算,晶振11.0952M

tragedy 发表于 2014-4-2 08:40:07

周期 20ms,高电平2ms,低电平18ms循环下去。就是你要的了

icoyool 发表于 2014-4-2 08:41:16

PWM 就得了

ahong2hao 发表于 2014-4-2 08:43:57

定时器定时,最简单。

eva015401 发表于 2014-4-2 08:47:04

楼主不是已经要入门比51高大上很多的ARM了吗?   怎么连51产生一个方波都不会了?

xiakang 发表于 2014-4-2 08:49:30

理论上实现不了

zhanyanqiang 发表于 2014-4-2 08:58:02

几个标志位就搞定了~~~不难

zhanyanqiang 发表于 2014-4-2 08:58:33

xiakang 发表于 2014-4-2 08:49
理论上实现不了

为什么??

勤劳的小码农 发表于 2014-4-2 09:11:24

zhanyanqiang 发表于 2014-4-2 08:58
为什么??

理论上实现不了

Honey_comb 发表于 2014-4-2 09:16:57

unsigned char dat[]={1,0,0,0,0,0,0,0,0,0};
void time1() interrupt 2       
{
   TL1 = 0xCD;               
   TH1 = 0xF8;               
       
      LED1=dat;
      count0+=1;
      if(count0==10)
      count0=0;
}
C渣别喷我

bosia仔 发表于 2014-4-2 09:18:53

定时器来做就好了

chengtina 发表于 2014-4-2 09:21:39

定时器就能完成吧

勤劳的小码农 发表于 2014-4-2 09:24:52

换12m精振吧,11.0592没可能

勤劳的小码农 发表于 2014-4-2 09:28:30

不用定时器也能做 当然了,不用定时器的话,cpu软件延时就不能做别的了(不要说软件延时不如定时器准)。一切的前提是12m精振

勤劳的小码农 发表于 2014-4-2 09:28:44

不用定时器也能做 当然了,不用定时器的话,cpu软件延时就不能做别的了(不要说软件延时不如定时器准)。一切的前提是12m精振

fsclub 发表于 2014-4-2 09:29:44

PC1=1;
delay 2ms;
PC1=0;
delay 18ms;

勤劳的小码农 发表于 2014-4-2 09:33:04

Honey_comb 发表于 2014-4-2 09:16
C渣别喷我

虽然没细读你的软件,但我知道精振11.0592,所以这是不可能的任务。另外给你个建议,高精延时用双定时器嵌套

勤劳的小码农 发表于 2014-4-2 09:34:12

fsclub 发表于 2014-4-2 09:29
PC1=1;
delay 2ms;
PC1=0;


您老是如何用11.0592delay出2ms的

Honey_comb 发表于 2014-4-2 09:36:12

勤劳的小码农 发表于 2014-4-2 09:33
虽然没细读你的软件,但我知道精振11.0592,所以这是不可能的任务。另外给你个建议,高精延时用双定时器 ...

谢谢指导,11.0592当然有误差的0.01%,不过要求不高的话还是可以的

勤劳的小码农 发表于 2014-4-2 09:40:22

Honey_comb 发表于 2014-4-2 09:36
谢谢指导,11.0592当然有误差的0.01%,不过要求不高的话还是可以的

你这么直接做有一个问题,中断到时cpu可能在执行多周期指令,中断程序根本无法执行。双定时器嵌套。

Honey_comb 发表于 2014-4-2 09:41:38

勤劳的小码农 发表于 2014-4-2 09:40
你这么直接做有一个问题,中断到时cpu可能在执行多周期指令,中断程序根本无法执行。双定时器嵌套。 ...

是的确实有这个问题,谢大神

wangmengqiwo 发表于 2014-4-2 09:44:55

Honey_comb 发表于 2014-4-2 09:16
C渣别喷我

好吧。。。

勤劳的小码农 发表于 2014-4-2 09:49:40

Honey_comb 发表于 2014-4-2 09:41
是的确实有这个问题,谢大神

我不是大神,我只是个高中生,我是雷锋。

fsclub 发表于 2014-4-2 12:54:09

勤劳的小码农 发表于 2014-4-2 09:34
您老是如何用11.0592delay出2ms的

delay_us(1000);
delay_us(1000);

wildone 发表于 2014-4-10 14:14:44

用定时器中断
页: [1]
查看完整版本: 怎么用51写50HZ脉宽2ms的方波