历史上的今天
返回首页

历史上的今天

今天是:2025年01月12日(星期日)

2020年01月12日 | TJA1020+51单片机实现的LIN总线通讯源程序(master+slave)

2020-01-12 来源:51hei

20190130183850.jpg?imageView2/2/w/55020190130183903.jpg?imageView2/2/w/550 
LIN mater的51单片机代码


/**************master*****************/

#include

#include

sbit  p31=P3^1;

sbit  k1=P1^0;

sbit  k2=P1^1; 

sbit  p20=P2^0;

unsigned char t;

unsigned char sendflag, flag;

void delay(unsigned int i)

{  

   while(i--);

}


void send()

{

                                      //           同步   ID   data1 data2 data3 data4 data5 data6 data7 data8  checksum

            unsigned char code table1[11]={0x55, 0x55, 0x3f, 0x80 ,0x00 ,0x00 ,0xff ,0x64 ,0x10 , 0xfc ,  0x79  };

                                             //           同步   ID   data1 data2 data3 data4 data5 data6 data7 data8  checksum

            unsigned char code table2[11]={0x55, 0x55, 0x3f, 0x80 ,0x00 ,0xff ,0x00 ,0x64 ,0x10 , 0xfc ,  0x79  };

          

          /*  发送一帧报文    */


         unsigned char i ;                 

             p31=0;        //间歇场

             delay(96);        //96

             p31=1;

                delay(2); 

                //_nop_();         _nop_(); _nop_(); 

              for(i=0;i<11;i++)      

                  {

                    if(flag==1)

                     SBUF=table1[i];

                    if(flag==2)

                        SBUF=table2[i];

                    while(TI==0);

                    TI=0;

                  }

  }


void delayms(unsigned int x)  //报文间隔发送延时

{

  unsigned int i;

unsigned char j;

  for(i=0;i    for(j=0;j<122;j++);

}

void init(void)

{        


         /*******19.2k波特率****** */

           

            SCON=0x50;           //串口方式1 8个数据位 

         TMOD=0x20;

     PCON=0x80;        //0x80=19.2k/s

         TH1 =TL1 = 0xfd;

        // ES=1;                                                                                                                                                                                             //串行中断允许

         TR1=1; //启动定时器1 

     EA= 1;    

            IP=0x10;//串口中断优先        

         

}



void main()

{         


          init();

          flag=1;

          while(1)

         {                                

           

           P2=0xFE;

           P0=0x92;

           send();

         /*  发送完成    */


            delayms(200) ;          //发送间隔周期

                   if(k1==0)

         {

                  while(k1==0);

                  flag=1;

                  }                  

                if(k2==0)

                 {

                    while(k2==0); //抬键程序才往下执行

                  flag=2;

                 }


   }        


}



推荐阅读

史海拾趣

Accuride公司的发展小趣事

作为一家专注于商用车零部件的公司,Accuride始终致力于技术创新和产品升级。其产品线涵盖了商用车车轮、卡车车身和底盘部件等多种零部件,且拥有多个知名品牌,如Accuride®、Gunite®、ImperialTM和BrillionTM等。通过不断研发和创新,Accuride成功提升了产品的质量和性能,赢得了客户的广泛认可。

Chemi-Con公司的发展小趣事

在电子行业的发展过程中,Chemi-Con公司意识到单一产品线的局限性,并开始积极探索多元化发展的道路。公司不仅拓展了电容器产品的应用领域,还涉足了光电子机械等新兴产业。此外,Chemi-Con还积极寻求与其他企业的合作,通过技术共享、资源共享等方式实现共赢。这种开放、合作的姿态使得Chemi-Con在行业中树立了良好的形象,也为公司的长远发展奠定了坚实的基础。

EMC Component Group公司的发展小趣事

品质是Chemi-Con公司的生命线。公司始终坚持严格的质量管理体系,从原材料采购到生产制造,再到产品出厂,每一个环节都经过严格的把控。这种对品质的执着追求,使得Chemi-Con的产品在市场上获得了良好的口碑。同时,公司还积极拓展市场,与全球多家知名企业建立了稳定的合作关系,产品远销海外市场。

亿宝科技(CNIBAO)公司的发展小趣事

亿宝科技深知人才是企业发展的关键因素。因此,公司高度重视人才引进和培养工作。通过校园招聘、社会招聘等方式,亿宝科技吸引了一批具有丰富经验和专业技能的人才加入公司。同时,公司还建立了完善的培训体系,为员工提供持续的技能提升和职业发展机会。在人才的共同努力下,亿宝科技不断取得新的突破和成就。

FILTRONETICS Inc公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,FILTRONETICS深知技术创新的重要性。公司加大了对研发的投入力度,成立了专门的研发部门和技术中心,致力于新技术、新材料和新工艺的研发和应用。同时,公司还积极关注环保和可持续发展问题,致力于生产绿色、环保的电子产品。通过不断的技术创新和可持续发展实践,FILTRONETICS不仅保持了技术领先地位,也为社会的可持续发展做出了贡献。

Ampire Co Ltd公司的发展小趣事

FILTRONETICS Inc成立于1970年代,初期专注于滤波器技术的研发与生产。在那个时代,随着通信技术的快速发展,对高质量滤波器的需求日益增长。公司研发团队通过不懈努力,成功研发出了一种新型LC滤波器,该滤波器在频率选择性和插入损耗方面表现出色,迅速获得了市场的认可。这一技术突破不仅巩固了FILTRONETICS在滤波器领域的地位,也为公司的后续发展奠定了坚实的基础。

问答坊 | AI 解惑

求智能循迹小车驱动电路图

本帖最后由 paulhyde 于 2014-9-15 03:17 编辑 有那位高人能提供智能循迹小车驱动电路的pcb呀 核心板芯片是pc9s12xs128的 电机驱动电路的芯片是33886的 或是其他的芯片耶可以 还有能否提供光电探测板的电路图和pcb 在这 ...…

查看全部问答>

Microsoft Communication Controls Version 6.0 不支持此接口

RT. 我用vc6.0新建了个对话框的工程,添加MSComm控件时,出现了上面的提示,无法插入该控件。 这个该如何解决?…

查看全部问答>

sql ce2.0用rda连接sql server,出现问题,在线等

请教一个问题,我用rda连接sql server ,但出现以下错误: 未处理的“System.Data.SqlServerCe.SqlCeException”类型的异常出现在 System.Data.SqlServerCe.dll 中。 我是C# 2003、sql server 2000、Pda是win mobile 5.0 我的代码如下: string ...…

查看全部问答>

異步、同步通信?

什麽叫異步、同步通信,他們的區別是什麽?…

查看全部问答>

lm3s8962 - - CAN

因为平时使用CAN总线很多,所以这次专门找时间,试用了一下lm3s8962的CAN功能,附件就是我简单试用时,使用的程序。(接收指定ID的CAN数据,并通过串口输出)程序中还有不明之处,望指点!! 例程中对CAN报文对象设置时: // CAN接收报文对象设置tC ...…

查看全部问答>

LED照明的过流保护器件应用

LED具有低功耗、寿命长、环保等鲜明的特点,在从小尺寸背光应用领域向大尺寸面板背光进行渗透之后,现在进一步向通用照明应用领域扩张,目前已经在景观、建筑、商业、汽车、移动照明等领域快速发展。   面对LED照明的众多应用领域,由于市场并没 ...…

查看全部问答>

STM32 USART 接收问题 已经解决

实现功能:我用串口接收PC端一串数据   然后在把数组中的数据发送给串口 传到PC   遇到问题:串口接收正常 但是发送每次只能发送一两个数据 环境       :串口5 中断接收 请大家帮忙分析下原因 谢谢! ...…

查看全部问答>

纪念第一次注册博客-2011年3月8日

在IC行业混了10多年,一直想参见某个专业的网上社区组织,2011年3月8日终于实现了。会每天抽出半小时来,写写感想,记记生活中的人和事。…

查看全部问答>

继前帖《安富利的spartan-6LX9使用进行中。。。》

有与之前的帖子很久没更新,不能去更新了。现在只能重新发帖了。。以前的贴地址:https://bbs.eeworld.com.cn/thread-297778-1-1.html 这块板子很适合做嵌入式的。最近在用最快板子搞控制,和通信类的。现在传上简单的LCD12864的实验结果及程序吧 ...…

查看全部问答>

DSP2812无法进入周期中断

一、主程序: #include \"DSP28_Device.h\" float        ADResult; unsigned int k=0; float        adclo; interrupt void ADC_ISR(void); void main(void) {     ...…

查看全部问答>