20190130183850.jpg (68.22 KB, 下載次數: 102)
下載附件
2019-1-30 18:41 上傳
20190130183903.jpg (56.51 KB, 下載次數: 92)
下載附件
2019-1-30 18:41 上傳
LIN mater的51單片機代碼
- /**************master*****************/
- #include <REGX52.H>
- #include <intrins.h>
- 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<x;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;
- }
- }
- }
復制代碼
附加是源代碼 ,還包含Slave的
全部資料51hei下載地址:
master&slave.rar
(49.9 KB, 下載次數: 328)
2019-1-30 18:48 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|