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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3904|回復: 8
打印 上一主題 下一主題
收起左側

頻率和占空比可調的方波發生器單片機源程序,哪位大神幫忙改一下

[復制鏈接]
跳轉到指定樓層
樓主
ID:393319 發表于 2018-9-4 09:40 來自觸屏版 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. float fosc=12000000;   
  5. sbit KEY1=P1^0;        
  6. sbit KEY2=P1^1;        
  7. sbit KEY3=P1^2;        
  8. sbit KEY4=P1^3;  
  9. sbit RS = P3^5;
  10. sbit RW = P3^6;
  11. sbit EN = P3^4;
  12. sbit OUTPUT=P2^0;      
  13. uchar zkb;
  14. uint freq;
  15. uchar TIMER0_L,TIMER0_H,TIMER1_L,TIMER1_H;
  16. void delay(uchar n)     
  17. {
  18. uchar i;
  19. while(n--)
  20. {for(i=255;i>0;i--)
  21. {}
  22. }}
  23. void chushihua()
  24. {
  25. P1=0x0f;
  26. freq=50;
  27. zkb=50;
  28. TIMER0_L=0xe0;
  29. TIMER0_H=0xb1;
  30. TIMER1_L=0xf0;
  31. TIMER1_H=0xd8;
  32. TL0=0xe0;   
  33. TH0=0xb1;
  34. TL1=0xf0;   
  35. TH1=0xd8;
  36. TMOD=0x11;  
  37. EX0=1;      
  38. ET0=1;      
  39. ET1=1;
  40. EA=1;      
  41. TR0=1;     
  42. TR1=1;
  43. }
  44. void Read_Busy()
  45. {
  46.         uchar busy;
  47.         P0 = 0xff;
  48.         RS = 0;
  49.         RW = 1;
  50.         do
  51.         {
  52.                 EN = 1;
  53.                 busy = P0;
  54.                 EN = 0;
  55.         }while(busy & 0x80);
  56. }

  57. void Write_Cmd(uchar cmd)         
  58. {
  59.         Read_Busy();
  60.         RS = 0;
  61.         RW = 0;
  62.         P0 = cmd;
  63.         EN = 1;
  64.         EN = 0;
  65. }

  66. void Write_Dat(uint dat)                 
  67. {
  68.         Read_Busy();
  69.         RS = 1;
  70.         RW = 0;
  71.         P0 = dat;
  72.         EN = 1;
  73.         EN = 0;
  74. }
  75. void LCD_init()
  76. {
  77.         Write_Cmd(0x38);
  78.         Write_Cmd(0x0c);   
  79.         Write_Cmd(0x01);

  80.         Write_Cmd(0x06);
  81. }
  82. void main()

  83. {
  84. chushihua();  
  85. while(1)
  86. {  }
  87. }
  88. void Timer0_freq() interrupt 1   
  89. {
  90. TR1=1;                        
  91. TH0=TIMER0_H;
  92. OUTPUT=1;                     
  93. }
  94. void Timer1_zkb() interrupt 3   
  95. {
  96. TR1=0;                       
  97. TL1=TIMER1_L;
  98. TH1=TIMER1_H;
  99. OUTPUT=0;                  
  100. }
  101. void keyscan() interrupt 0 using 1  
  102. {float TF0,TZ1;
  103. EX0=0;         
  104. delay(10);     
  105. if(P1!=0x0f)   
  106. {
  107. if(KEY1==0) freq+=100;  
  108. if(KEY2==0) freq+=10;   
  109. if(freq>500) freq=50;  
  110. if(KEY3==0) zkb+=10;   
  111. if(KEY4==0) zkb++;      
  112. if(zkb>100) zkb=1;     
  113. TF0=(65536-fosc/(12.0*freq));
  114. TZ1=(65536-(fosc*zkb)/(12.0*100*freq));  
  115. TIMER0_L=(uint)TF0%256;
  116. TIMER1_H=(uint)TZ1/256;
  117. TIMER1_L=(uint)TZ1%256;
  118. }
  119. P1=0x0f;
  120. EX0=1;   
  121. TR0=1;   
  122. TR1=1;}
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2018-9-4 20:56 | 只看該作者
把問題具體描述一下吧
回復

使用道具 舉報

板凳
ID:375092 發表于 2018-9-4 21:26 | 只看該作者
首先用單片機發出頻率和方波這個叫PWM,一個很重要以后運用很廣泛的東西,很實用。我看你的程序應該是使用中斷程序調節PWM,改變占空比,這樣實際上可以改變電壓大小,PWM產生的方波,你調節的數字改變高電平的大小,然后12864現在你當前改變的的數值。那么你應該設定一個值,來充當你這個方波的周期,然后改變高電平就可以了,具體的細節需要你自己領悟,論壇里面應該有很多相關例程,你可以學習學習。

評分

參與人數 1黑幣 +70 收起 理由
admin + 70 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:393736 發表于 2018-9-4 21:44 | 只看該作者
609763691 發表于 2018-9-4 21:26
首先用單片機發出頻率和方波這個叫PWM,一個很重要以后運用很廣泛的東西,很實用。我看你的程序應該是使用 ...

大佬可以看一下我的貼子嗎 求助一下
回復

使用道具 舉報

5#
ID:393736 發表于 2018-9-4 21:45 | 只看該作者
同學你是在做課程設計嗎  占空比范圍0.1-0.9 頻率0.5-9.5  如果是的話 我們交流一下

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

6#
ID:393319 發表于 2018-9-5 07:44 來自觸屏版 | 只看該作者
天上的一只猩 發表于 2018-9-4 21:45
同學你是在做課程設計嗎  占空比范圍0.1-0.9 頻率0.5-9.5  如果是的話 我們交流一下

是做課程設計,沒有范圍,可調就行
回復

使用道具 舉報

7#
ID:393736 發表于 2018-9-5 10:22 | 只看該作者
315849444 發表于 2018-9-5 07:44
是做課程設計,沒有范圍,可調就行

那我們交流一下吧 你的要求用六位led顯示占空比和頻率嗎
回復

使用道具 舉報

8#
ID:393319 發表于 2018-9-5 10:30 來自觸屏版 | 只看該作者
609763691 發表于 2018-9-4 21:26
首先用單片機發出頻率和方波這個叫PWM,一個很重要以后運用很廣泛的東西,很實用。我看你的程序應該是使用 ...

大哥,問你一下。基于stm32處理器的c程序用8051能否運行?
回復

使用道具 舉報

9#
ID:393319 發表于 2018-9-5 20:22 來自觸屏版 | 只看該作者
天上的一只猩 發表于 2018-9-5 10:22
那我們交流一下吧 你的要求用六位led顯示占空比和頻率嗎

用1602顯示
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表