欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機使用一個定時器,產生多路不同頻率的方波1kHz, 2kHz [打印本頁]

作者: Bxm115200    時間: 2024-1-8 22:54
標題: 單片機使用一個定時器,產生多路不同頻率的方波1kHz, 2kHz
使用一個定時器,產生多路不同頻率的方波。1kHz,   2kHz。

程序見下面,我不是很理解的地方是為什么i++之后賦值給P1,就可以得到不同分頻的方波。

我打個問號

單片機源程序如下:
  1. #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

  2. /*------------------------------------------------
  3.                     定時器初始化子程序
  4. ------------------------------------------------*/
  5. void Init_Timer0(void)
  6. {
  7. TMOD |= 0x01;          //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響                     
  8. //TH0=0x00;              //給定初值,這里使用定時器最大值從0開始計數一直到65535溢出
  9. //TL0=0x00;
  10. EA=1;            //總中斷打開
  11. ET0=1;           //定時器中斷打開
  12. TR0=1;           //定時器開關打開
  13. }
  14. /*------------------------------------------------
  15.                     主程序
  16. ------------------------------------------------*/
  17. main()
  18. {
  19. Init_Timer0();
  20. while(1);
  21. }

  22. /*------------------------------------------------
  23.                  定時器中斷子程序
  24. ------------------------------------------------*/
  25. void Timer0_isr(void) interrupt 1 using 1
  26. {
  27. static unsigned char i;
  28. //重新賦值 12M晶振計算,指令周期1uS,500x2=1mS方波
  29. TH0=(65536-500)/256;                  
  30. TL0=(65536-500)*256;        


  31. i++;
  32. P1=i; //P1口8路輸出不同頻率,相當于一個分頻器,高頻用示波
  33.        //器測量,低頻可以直接用led觀測
  34.        //P1.0輸出1ms方波,P1.1輸出2ms,p1.2輸出4ms,以此類推

  35. }
復制代碼





作者: Hephaestus    時間: 2024-1-9 00:06
是P1的不同引腳輸出不同頻率的方波,你把i從0到255(嫌麻煩可以到15)的P1每一位的值寫出來就明白了。
作者: Bxm115200    時間: 2024-1-9 14:56
Hephaestus 發表于 2024-1-9 00:06
是P1的不同引腳輸出不同頻率的方波,你把i從0到255(嫌麻煩可以到15)的P1每一位的值寫出來就明白了。



確實是需要寫一遍才行,感謝





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1