找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3577|回復: 5
收起左側(cè)

52單片機怎么改成51單片機 求大神 下面 程序 急需呀 大神們

[復制鏈接]
ID:214666 發(fā)表于 2017-6-27 17:17 | 顯示全部樓層 |閱讀模式
/********************************************************************

*********************************************************************/
#include<reg52.h>  

#define uchar unsigned char           //宏定義無符號字符型
#define uint  unsigned  int           //宏定義無符號整型

uchar b;                //中斷值
uchar N=0;                //占空比計數(shù)值
uchar X=50;                //占空比初始值百分比

uchar z=0;

uchar key_up;
uchar key_down;

/************************************************************************
                                                        按鍵初始化
*************************************************************************/
sbit P2_0=P2^0;//占空比加
sbit P2_1=P2^1;//占空比減

sbit PWM=P3^7;//控制PWM的占空比輸出

/************************************************************************
                                                        調(diào)速按鍵掃描函數(shù)
*************************************************************************/

void get_key(void)//按鍵掃描函數(shù)

{
while(P2_0==0)//按鍵加計數(shù)標志
{key_up=1;
}
while(P2_1==0)//按鍵減計數(shù)標志
{key_down=1;
}
}

/************************************************************************
                                                        定時器中斷執(zhí)行函數(shù)
*************************************************************************/
void timer0( ) interrupt 1 //定時器0工作方式1
{

TH0=(65536-1)/256;          //重裝計數(shù)初值
TL0=(65536-1)%256;          //重裝計數(shù)初值
b++;
get_key();
if (key_up==1)
       {
           if(X!=100)//判斷是否計數(shù)到100
              {
               X++;//加一
               key_up=0;
                           }
        }
if (key_down==1)
       {
            if(X!=0)//判斷是否計數(shù)到0
              {
                   X--;//減一
               key_down=0;
               }
        }
}
/************************************************************************
                                                        程序主函數(shù)
*************************************************************************/
void main()
{
TMOD=0X01;                          //定時器中斷0
TH0=(65536-2)/256;          //定時時間高八位初值
TL0=(65536-2)%256;          //定時時間低八位初值
EA=1;                                  //開CPU中斷
ET0=1;                                  //開T/C0中斷
TR0=1;
/****************************PWM處理部分*********************************************/
   while(1)
    {
          PWM=1;
      while(1)
      {
        b=0;
        while(!b);
           if (N==X)
               PWM=0;
            if(N==100)break;
               N++;
/*************************************************************************************/                        

              }
             N=0;
     }

}
/******************************程序結(jié)束************************************************/

回復

使用道具 舉報

ID:207702 發(fā)表于 2017-6-27 17:53 來自觸屏版 | 顯示全部樓層
好的很,改什么啊,只要沒用到52的第三個定時器,還有52頭文件與51頭文件內(nèi)部關于sbit重復定義改51頭,這里沒看到
回復

使用道具 舉報

ID:94031 發(fā)表于 2017-6-27 18:36 | 顯示全部樓層
直接編譯燒入51單片機就可以用,這個程序沒有用到52單片機特有的定時器2,放心用。
回復

使用道具 舉報

ID:213173 發(fā)表于 2017-6-27 19:42 | 顯示全部樓層
就你的程序用51或52都一樣
回復

使用道具 舉報

ID:164146 發(fā)表于 2017-6-27 19:54 | 顯示全部樓層
#include<reg52.h>改成#include<reg51.h>就行了
回復

使用道具 舉報

ID:157057 發(fā)表于 2017-6-27 21:35 | 顯示全部樓層
把第一句改了就行了。
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

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