找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4836|回复: 9
收起左侧

15f2k60s2单片机和stc89c51的使用及头文件区别

[复制链接]
ID:405091 发表于 2018-10-3 16:00 | 显示全部楼层 |阅读模式
51单片机的头文件可以直接在15单片机上使用吗?例如15使用“reg51.h”头文件时需要注意哪些事项。  


我写了一个智能车的红外跟随程序 大神帮忙看看哪里出错了
#include <REGX52.H>

sbit LeftIR=P0^0;                         //定义前方左侧红外探头端口
sbit RightIR=P0^1;                        //定义前方右侧红外探头端口
sbit ZhongIR=P0^2;                        //定义中间红外探头端口
sbit xiao=P0^3;                          //根据此红外信号有无,判断跟随距离是否过近

sbit M1A=P1^0;                              //电机左右引脚口
sbit M1B=P1^1;
sbit M2A=P1^2;
sbit M2B=P1^3;
sbit ENA0=P1^4;                                   //电机控制使能端
sbit ENA1=P1^5;

unsigned char Xinhao;

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

/**********信号处理**********/
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;
}
}

/**********电机运行方式**********/
void tingzhi()
{
   M1A=0;                                   //将M1电机A端初始化为0
   M1B=0;                                   //将M1电机B端初始化为0
   M2A=0;                                   //将M2电机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;
}

/**********信号电机综合方式**********/
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;                              
  }
}
}
}

回复

使用道具 举报

ID:405091 发表于 2018-10-3 16:01 | 显示全部楼层
希望快点回复
回复

使用道具 举报

ID:213173 发表于 2018-10-3 17:17 | 显示全部楼层
15系列头文件
STC15xxxx.zip (2.33 KB, 下载次数: 35)
回复

使用道具 举报

ID:97554 发表于 2018-10-3 19:34 | 显示全部楼层
除了头文件不通用,延时函数等都要改
回复

使用道具 举报

ID:313481 发表于 2018-10-3 20:48 | 显示全部楼层
不通用,没有用过15系列单片机,
1、注意看看晶振频率确定延时时间
2、头文件引用
3、具体寄存器有无区别
4、端口使用是否需要定义方向

评分

参与人数 1黑币 +15 收起 理由
yousunny + 15 赞一个!

查看全部评分

回复

使用道具 举报

ID:308437 发表于 2018-10-3 20:54 | 显示全部楼层
主要是延时函数,再看下定时器等。官方有范例程序的
回复

使用道具 举报

ID:277550 发表于 2018-10-3 21:52 | 显示全部楼层
不完全相同的。。。。。。STC下载工具中,有相应的头文件可以获取到。


~~~~~~~~~~~~~~~~
回复

使用道具 举报

ID:387733 发表于 2018-10-4 07:31 | 显示全部楼层
15的头文件兼容经典51单片机,但是扩展增加的很多功能,使用了更多的特殊功能寄存器,这些寄存器定义是传统头文件中没有的。所以说如果只使用基本功能,传统的头文件也是可以使用的。
回复

使用道具 举报

ID:386381 发表于 2018-10-4 09:08 来自手机 | 显示全部楼层
头文件需要改,延时的那部分也是不一样的,也需要变动的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表