导航:首页 > 编程语言 > 单线通讯编程

单线通讯编程

发布时间:2024-02-28 23:51:38

Ⅰ at89c52单片机可以通过普通IO口实现一线通信吗求通信程序!

/*合泰单片机*/

#defineDATA_pa6


unsignedcharnub[5]={0x01,0x0b,0xfe,0xcd,0xee};

unsignedcharReceive[10]={0x00};

unsignedcharReceivetime;

unsignedcharReceiveBF=0x00;

unsignedcharReceivecount=0x00;

unsignedcharReceiveC=0x00;

void__attribute((interrupt(0x10)))isr_time(void)//100us定时器中断函数

{

_ptma0f=0;

switch(ReceiveBF)

{

case0x00://引导码低

{

if(DATA)

{

if(Receivetime>85)

{

if(Receivetime<100)

{

ReceiveBF=0x01;

Receivetime=0x00;

}

else

{

ReceiveBF=0x00;

Receivetime=0x00;

}

}

else

{

ReceiveBF=0x00;

Receivetime=0x00;

}

}

else

{

Receivetime++;

}

break;

}

case0x01://引导码高

{

if(DATA)

{

Receivetime++;

}

else

{

if(Receivetime>40)

{

if(Receivetime<55)

{

ReceiveBF=0x02;

Receivetime=0x00;

Receivecount=0x00;

ReceiveC=0x00;

}

else

{

ReceiveBF=0x00;

Receivetime=0x00;

}

}

else

{

ReceiveBF=0x00;

Receivetime=0x00;

}

}

break;

}

case0x02://低电平

{

if(DATA)

{

if(Receivetime>10)//数据

{

if(Receivetime<25)

{

ReceiveBF=0x03;

Receivetime=0x00;

}

else

if(Receivetime<55)

{

ReceiveBF=0x04;

Receivetime=0x00;

}

}

}

else

{

Receivetime++;

}

break;

}

case0x03://数据码

{

if(DATA)

{

Receivetime++;

}

else

{

if(Receivetime>25)//1

{

Receive[ReceiveC]=Receive[ReceiveC]<<1;

Receive[ReceiveC]=Receive[ReceiveC]|0x01;

Receivecount++;

if(Receivecount==8)

{

Receivecount=0x00;

ReceiveC++;

}

ReceiveBF=0x02;

Receivetime=0x00;

}

else//0

{

Receive[ReceiveC]=Receive[ReceiveC]<<1;

Receive[ReceiveC]=Receive[ReceiveC]&0xfe;

Receivecount++;

if(Receivecount==8)

{

Receivecount=0x00;

ReceiveC++;

}

ReceiveBF=0x02;

Receivetime=0x00;

}

}

break;

}

case0x04://结束码

{

ReceiveBF=0x00;

Receivetime=0x00;

break;

}

}

}

voidSend()

{

volatileunsignedcharcount=0x05;

volatileunsignedchardatanub;

volatileunsignedchardatacount;

//引导码

DATA=0;

dly100us(90);

DATA=1;

dly100us(45);

//数据码

while(count)

{

datanub=nub[5-count];

datacount=0x08;

while(datacount)

{

if(datanub&0x80)

{

DATA=0;

dly100us(15);

DATA=1;

dly100us(30);

}

else

{

DATA=0;

dly100us(15);

DATA=1;

dly100us(15);

}

datanub=datanub<<1;

datacount--;

}

count--;

}

//结束码

DATA=0;

dly100us(45);

DATA=1;

dly100us(45);

DATA=0;

dly100us(45);

DATA=1;

}

Ⅱ 通讯技术需要学习怎么样的编程

呵呵,我就是学通信的,编程对于通信里的用处不大,我们主要还是学习理论知识和一些硬件和软件换的操作,C语言是必须的,还有IP协议之类的也要了解,计算机端口技术、还有就是数字通信里的编码也要会。

Ⅲ 学习汽车模块之间的编程与通讯

汽车电子技术的发展和进步,一般的家用轿车上有数十个电子控制单元,豪华轿车更是达到数百个电子控制单元。汽车生产制造的过程中,同一种电子控制单元用在不同配置的汽车上,需要使用不同的软件参数。并且出厂之前,需要使用检测设备与电子控制单元进行通讯(读取、写入、控制),以确保电子控制单元内软件的正确性。
汽车生产厂家需要根据不同汽车、不同的电子控制单元的产品规范进行编程,目前的编程方式为敲代码,每一个语句由多个代码组成,编程工作难度大、非专业编程人员无法进行编程工作,且此种方式的编程效率低。
本发明的目的是解决上述的编程难度大、编程效率低的问题。应用可视化编程系统,编程工作简化成了“填空题”、“选择题”,即使非专业编程人员也能轻易掌握完成编程工作,且编程效率大幅度提高。
本发明包括以下步骤:
1)在个人电脑的可视化编程系统的后台设置中,将汽车电子控制单元的通讯程序分段切割,每发送或者接受一条指令的语句成为一个块;传统编程以语句为最小单位,一个完整的程序语句数万行;可视化编程以块为最小单位,一个完整的程序由数十到数百个块组成;
2)每个块中,针对不同汽车电子控制单元需要有参数或者指令变化的部分,不赋具体值,以地址名代替;
3)将地址名链接至前台界面的单元格,前台界面单元格与后台地址名相互唯一对应;
4)依据汽车电子控制单元的产品规范文件,绘制程序流程图,将指令与参数变化点整理出来;
5)在可视化编程系统的界面,以填空提、选择题方式完成参数及指令变化点的输入;
6)在可视化编程系统的界面,依据整理好的程序流程图,通过对块的组合,设置块与块之间的运行与跳转信息,并设置通讯参数;所述的通讯参数为通讯等待时间、通讯波特率等;
7)在可视化编程系统的界面,点击编程按钮,系统自动将前台界面的数据通过地址名传送至后台,在后台完成计算,组合成可执行程序;
8)一个完整的汽车电子控制单元通讯程序编程工作完成,重复上述步骤,完成下一个电子控制单元的通讯程序编程。
附图说明
图1为可视化编程系统应用流程图。
图2为使用本发明进行某车型制动防抱死电子控制模块通讯程序流程图。
图3为某车型制动防抱死电子控制模块通讯程序的整理通讯参数及指令变化点电脑界面。
图4为某车型制动防抱死电子控制模块通讯程序的可视化编程系统的界面以填空、选择的方式完成参数与指令变化点的输入电脑界面。
图5为某车型制动防抱死电子控制模块通讯程序的系统自动完成后台程序运行、生成可执行程序、编程工作完成电脑界面。
具体实施方式
如图1所示,本发明包括以下步骤:
1)在个人电脑的可视化编程系统的后台设置中,将汽车电子控制单元的通讯程序分段切割,每发送或者接受一条指令的语句成为一个块;传统编程以语句为最小单位,一个完整的程序语句数万行;可视化编程以块为最小单位,一个完整的程序由数十到数百个块组成;
2)每个块中,针对不同汽车电子控制单元需要有参数或者指令变化的部分,不赋具体值,以地址名代替;
3)将地址名链接至前台界面的单元格,前台界面单元格与后台地址名相互唯一对应;
4)依据汽车电子控制单元的产品规范文件,绘制程序流程图,将指令与参数变化点整理出来;
5)在可视化编程系统的界面,以填空提、选择题方式完成参数及指令变化点的输入;
6)在可视化编程系统的界面,依据整理好的程序流程图,通过对块的组合,设置块与块之间的运行与跳转信息,并设置通讯参数;所述的通讯参数为通讯等待时间、通讯波特率等;
7)在可视化编程系统的界面,点击编程按钮,系统自动将前台界面的数据通过地址名传送至后台,在后台完成计算,组合成可执行程序;
8)一个完整的汽车电子控制单元通讯程序编程工作完成,重复上述步骤,完成下一个电子控制单元的通讯程序编程。
使用可视化编程系统进行某车型制动防抱死电子控制模块通讯程序开发,实施步骤:
1)依据产品文件,绘制程序流程图,见图2;
2)依据产品文件,整理通讯参数及指令变化点,见图3;
3)在可视化编程系统的界面以填空、选择的方式完成参数与指令变化点的输入,见图4;
4)依据流程图,对前台指令(对应后台程序块)进行组合、设置通讯参数,见图4;
5)点击编程按钮,系统自动完成后台程序运行,生成可执行程序,编程工作完成。见图5。
以上为编程全过程,相比传统的敲代码编程,编程难度大幅度降低,技术不是专业的软件技术人员,也能轻松完成编程工作。同时,此种编程方式,大幅节省了编程时间,提高了编程效率。
本发明公开了一种汽车电子控制单元通讯程序的可视化编程方法。该编程方法,包括一台个人电脑、可视化编程系统。其中,个人电脑用于运行可视化编程系统、存储数据。可视化编程系统用于实现参数的输入、程序指令的生成及组合、并自动生成可执行的程序文件。通过可视化编程系统,将传统编程的敲代码工作变成了填空及选择题,极大简化了编程的难度,并显着提升了编程效率。

Ⅳ 通信专业需要编程吗

一般高校的通信与信息系统专业课是不考编程的,专业课大多为通信原理、信号与系统或数字信号处理等,每所高校的专业课不一样,但是一般都不涉及编程。

阅读全文

与单线通讯编程相关的资料

热点内容
批处理编译VS代码 浏览:889
uchar哪个编译器 浏览:27
initializejava 浏览:707
单片机的系统组成 浏览:610
中国天河二号算法 浏览:647
程序员是怎么疯的 浏览:598
程序员的猫有几条命 浏览:832
安卓如何把图片传到电脑上 浏览:895
到去哪儿旅行app怎么买票 浏览:444
工商银行app房贷还款在哪里看 浏览:761
最新民生通讯app从哪里下载 浏览:378
如何在发短信时给自己手机号加密 浏览:773
扩展单片机ram寻址方式是什么 浏览:318
phpide是什么 浏览:752
单片机相关软件 浏览:818
eclipse如何编译c11 浏览:286
加密游戏app 浏览:73
vs2010编译嵌套太深 浏览:982
程序员面试注意事项 浏览:742
scratch编译为h5 浏览:209