找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5875|回復(fù): 9
收起左側(cè)

15f2k60s2單片機(jī)和stc89c51的使用及頭文件區(qū)別

[復(fù)制鏈接]
ID:405091 發(fā)表于 2018-10-3 16:00 | 顯示全部樓層 |閱讀模式
51單片機(jī)的頭文件可以直接在15單片機(jī)上使用嗎?例如15使用“reg51.h”頭文件時(shí)需要注意哪些事項(xiàng)。  


我寫了一個(gè)智能車的紅外跟隨程序 大神幫忙看看哪里出錯(cuò)了
#include <REGX52.H>

sbit LeftIR=P0^0;                         //定義前方左側(cè)紅外探頭端口
sbit RightIR=P0^1;                        //定義前方右側(cè)紅外探頭端口
sbit ZhongIR=P0^2;                        //定義中間紅外探頭端口
sbit xiao=P0^3;                          //根據(jù)此紅外信號(hào)有無,判斷跟隨距離是否過近

sbit M1A=P1^0;                              //電機(jī)左右引腳口
sbit M1B=P1^1;
sbit M2A=P1^2;
sbit M2B=P1^3;
sbit ENA0=P1^4;                                   //電機(jī)控制使能端
sbit ENA1=P1^5;

unsigned char Xinhao;

/**********毫秒延時(shí)**********/
void delay_nms(unsigned int t)                   //毫秒延時(shí)
{
unsigned int i,j;
for(i=0;i<t;i++)
  for(j=0;j<120;j++);
}

/**********信號(hào)處理**********/
void Xhao(Xinhao)
{
if(xiao==0)
{
  Xinhao=0;
}
if( LeftIR ==1 && ZhongIR==1 && RightIR ==1 )
{
  Xinhao=1;
}
if( LeftIR ==0 && ZhongIR==0 && RightIR ==0 )
{
  Xinhao=2;
}
if( LeftIR ==0 && ZhongIR==1 && RightIR ==1 )
{
  Xinhao=3;
}
if( LeftIR ==1 && ZhongIR==0 && RightIR ==1 )
{
  Xinhao=4;
}
if( LeftIR ==1 && ZhongIR==1 && RightIR ==0 )
{
  Xinhao=5;
}
if( LeftIR ==0 && ZhongIR==0 && RightIR ==1 )
{
  Xinhao=6;
}
if( LeftIR ==0 && ZhongIR==1 && RightIR ==0 )
{
  Xinhao=7;
}
if( LeftIR ==1 && ZhongIR==0 && RightIR ==0 )
{
  Xinhao=8;
}
}

/**********電機(jī)運(yùn)行方式**********/
void tingzhi()
{
   M1A=0;                                   //將M1電機(jī)A端初始化為0
   M1B=0;                                   //將M1電機(jī)B端初始化為0
   M2A=0;                                   //將M2電機(jī)A端初始化為0
   M2B=0;
}
void qianjin()
{
   M1A=1;         
   M1B=0;                                   
   M2A=1;                                   
   M2B=0;
}
void houtui()
{
   delay_nms(30);
   M1A=0;                                   
   M1B=1;                                   
   M2A=0;                                   
   M2B=1;
}

void zuozhuan()
{
   M1A=1;                                   
   M1B=0;                                   
   M2A=0;                                   
   M2B=0;
}
void youzhuan()
{
   M1A=0;                                   
   M1B=0;                                   
   M2A=1;                                   
   M2B=0;
}

/**********信號(hào)電機(jī)綜合方式**********/
void Yunxing(unsigned char Yxing)
{
switch(Yxing)
{
case 0:
{
  tingzhi();
  break;
}
case 1:
{
  tingzhi();
  break;
}
case 2:
{
  qianjin();
  break;
}
case 3:
{
  zuozhuan();
  break;
}
case 4:
{
  qianjin();
  break;
}
case 5:
{
  youzhuan();
  break;
}
case 6:
{
  zuozhuan();
  break;
}
case 7:
{
  qianjin();
  break;
}
case 8:
{
  youzhuan();
  break;
}  
}
}

/**********主程序**********/
void main()         
{
Yunxing(0);
while(1)
{
switch(Xinhao)                          
{
  case 0:
  {
   Yunxing(0);
   break;
  }
  case 1:                        
  {
    Yunxing(1);
    break;
  }
  case 2:                        
  {
    Yunxing(2);                              
    break;
  }
  case 3:                       
  {
    Yunxing(3);                           
        break;
  }
  case 4:                  
  {
    Yunxing(4);                                                                       
        break;
  }
  case 5:                        
  {
    Yunxing(5);
        break;                              
  }
  case 6:                  
  {
    Yunxing(6);                                                                       
        break;
  }
  case 7:                  
  {
    Yunxing(7);                                                                       
        break;
  }
  case 8:                        
  {
    Yunxing(8);
        break;                              
  }
}
}
}

回復(fù)

使用道具 舉報(bào)

ID:405091 發(fā)表于 2018-10-3 16:01 | 顯示全部樓層
希望快點(diǎn)回復(fù)
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2018-10-3 17:17 | 顯示全部樓層
15系列頭文件
STC15xxxx.zip (2.33 KB, 下載次數(shù): 35)
回復(fù)

使用道具 舉報(bào)

ID:97554 發(fā)表于 2018-10-3 19:34 | 顯示全部樓層
除了頭文件不通用,延時(shí)函數(shù)等都要改
回復(fù)

使用道具 舉報(bào)

ID:313481 發(fā)表于 2018-10-3 20:48 | 顯示全部樓層
不通用,沒有用過15系列單片機(jī),
1、注意看看晶振頻率確定延時(shí)時(shí)間
2、頭文件引用
3、具體寄存器有無區(qū)別
4、端口使用是否需要定義方向

評(píng)分

參與人數(shù) 1黑幣 +15 收起 理由
yousunny + 15 贊一個(gè)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:308437 發(fā)表于 2018-10-3 20:54 | 顯示全部樓層
主要是延時(shí)函數(shù),再看下定時(shí)器等。官方有范例程序的
回復(fù)

使用道具 舉報(bào)

ID:277550 發(fā)表于 2018-10-3 21:52 | 顯示全部樓層
不完全相同的。。。。。。STC下載工具中,有相應(yīng)的頭文件可以獲取到。


~~~~~~~~~~~~~~~~
回復(fù)

使用道具 舉報(bào)

ID:387733 發(fā)表于 2018-10-4 07:31 | 顯示全部樓層
15的頭文件兼容經(jīng)典51單片機(jī),但是擴(kuò)展增加的很多功能,使用了更多的特殊功能寄存器,這些寄存器定義是傳統(tǒng)頭文件中沒有的。所以說如果只使用基本功能,傳統(tǒng)的頭文件也是可以使用的。
回復(fù)

使用道具 舉報(bào)

ID:386381 發(fā)表于 2018-10-4 09:08 來自手機(jī) | 顯示全部樓層
頭文件需要改,延時(shí)的那部分也是不一樣的,也需要變動(dòng)的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

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

快速回復(fù) 返回頂部 返回列表