久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4448|回復: 10
收起左側

這個方波程序怎么通過兩個按鍵控制方波頻率?

[復制鏈接]
ID:195175 發表于 2017-5-4 17:48 | 顯示全部樓層 |閱讀模式
#include"reg52.h"
sbit PWM=P1^0;
void main()
{
        TMOD=0x01;                                 
        TH0=(65536-1000)/256;         
        TL0=(65536-1000)%256;
        EA=1;                                         
        ET0=1;                                       
        TR0=1;                                       
        while(1);
}

void T0_time(void) interrupt 1
{
        TH0=(65536-1000)/256;         
        TL0=(65536-1000)%256;
        if(PWM)
        PWM=0;   
        else
        PWM=1;
}
這個方波程序怎么通過兩個按鍵控制方波頻率?
能不能實現步進電機先正轉兩周,暫停2秒,再反轉五周,然后暫停



回復

使用道具 舉報

ID:146949 發表于 2017-5-4 21:11 | 顯示全部樓層
        if(PWM)
        PWM=0;   
        else
        PWM=1;
為什么不直接寫成PWM=!PWM;??
還有就是你把P1^0聲明做PWM時,下面用"if(PWM)"如果P1.0腳外面接了負載約1K下地時,
可能會導致下次檢測if(PWM)時PWM讀出狀態一直保持為0.
你要改頻率的話,
#include"reg52.h"
#define uchar unsigned char
#define uint unsigned int
sbit PWM=P1^0;
sbit KEY1=P1^1;
sbit KEY2=P1^2;
uint mun;
void Delayms(unsigned int ms)                //1mS@11.0592MHz
{unsigned char i, j;
        while(ms--)
        {       
        i = 11;
        j = 190;
        do
        {
                while (--j);
        } while (--i);}
}
void main()
{
        TMOD=0x01;                                 
        TH0=(65536-1000)/256;         
        TL0=(65536-1000)%256;
        EA=1;                                         
        ET0=1;                                       
        TR0=1;                                       
        while(1)
{
if(!KEY1)
{
Delayms(10);          
   if(!KEY1)
        {       
          num++;
        }
}
if(!KEY2)
{
Delayms(10);          
   if(!KEY2)
        {       
          num--;
        }
}
}

void T0_time(void) interrupt 1
{
        TH0=(65536-mun)/256;         
        TL0=(65536-mun)%256;
        //if(PWM)
        //PWM=0;   
        //else
        //PWM=1;
        PWM=!PWM;
}


回復

使用道具 舉報

ID:195175 發表于 2017-5-4 22:54 | 顯示全部樓層
非常感謝
回復

使用道具 舉報

ID:195175 發表于 2017-5-4 22:55 | 顯示全部樓層
我試下
回復

使用道具 舉報

ID:194871 發表于 2017-5-4 22:59 | 顯示全部樓層
好厲害
回復

使用道具 舉報

ID:195175 發表于 2017-5-5 07:50 | 顯示全部樓層
如果通過這種方波控制讓步進電機先正轉2圈,暫停5秒再反轉5圈然后暫停
怎么操作
回復

使用道具 舉報

ID:195175 發表于 2017-5-5 14:22 | 顯示全部樓層
非常感謝,我的硬件是一個步進驅動器,一個42步進電機,一個電源24V
回復

使用道具 舉報

ID:195175 發表于 2017-5-5 17:04 | 顯示全部樓層
wosiyabo 發表于 2017-5-4 21:11
if(PWM)
        PWM=0;   
        else

親,您給的這個程序也沒辦法實現加減速,和我上面提問的那個差不多,加入num變量之后,步進電機的速度直接就變慢了,并且增加的按鈕也是不可調的
回復

使用道具 舉報

ID:146949 發表于 2017-5-6 14:16 | 顯示全部樓層
sunshine1973 發表于 2017-5-5 17:04
親,您給的這個程序也沒辦法實現加減速,和我上面提問的那個差不多,加入num變量之后,步進電機的速度直 ...

你題目是說控制方波頻率,而不是說改變PWM(脈寬占空比)..........
回復

使用道具 舉報

ID:146949 發表于 2017-5-6 14:23 | 顯示全部樓層
控制的是那款步進電機?四線還是五線的?
先正轉兩周? 這個要看步進電機的參數,還有你要的轉速多少,一周為360度。有的步進為15度,要跑24次才完成一周。
暫停2秒,再反轉五周,然后暫停
回復

使用道具 舉報

ID:195175 發表于 2017-5-19 15:20 | 顯示全部樓層
wosiyabo 發表于 2017-5-6 14:23
控制的是那款步進電機?四線還是五線的?
先正轉兩周? 這個要看步進電機的參數,還有你要的轉速多少,一周為3 ...

我的步進電機是四線的
通過步進驅動器控制
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品日韩欧美一区二区 | 国产成人免费一区二区60岁 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 日韩免费视频一区二区 | 欧美一区| 亚洲国产精品一区二区第一页 | 久草网址| 亚洲精品日韩一区二区电影 | 户外露出一区二区三区 | 日韩午夜网站 | 麻豆国产精品777777在线 | 九九久久精品视频 | 日韩有码在线观看 | 欧洲妇女成人淫片aaa视频 | 91一区二区三区 | 亚洲一区二区综合 | 亚洲成a人片 | 精品国产一区二区三区久久狼黑人 | 国产视频1 | 天堂一区二区三区四区 | 91久久久久久久久久久久久 | 日韩精品区 | 日韩精品免费 | 国产精品久久久久久久久久 | 欧美一级淫片免费视频黄 | 成年免费大片黄在线观看岛国 | 综合国产 | 亚洲福利视频一区二区 | 在线观看av不卡 | 国产在线网站 | 91精品久久久 | 亚洲成人精 | tube国产 | 中文字幕免费视频 | 欧美另类视频 | 欧美8一10sex性hd | www.久久久.com | 久久久久九九九女人毛片 | 精品96久久久久久中文字幕无 | 一区二区免费在线观看 | 一级免费视频 |