您的位置 首页 报告

Java软件与单片机串口通讯

从菜鸟级的电子爱好者到骨灰级的电子工程师,相信大多数人都经历过制作万年历,毕竟它比较全面的考察对单片机基础知识的掌握,并且体现了

从菜鸟级的电子爱好者到骨灰级的电子工程师,信任大多数人都经历过制造万年历,究竟它比较全面的调查对单片机根底常识的把握,而且表现了C言语编程模块化的思维。

而本文旨在介绍在完结制造万年历后完成软件经过RS-232串口对万年历进行操控。软件的编写选用的Java言语,当然,运用C++、VB等言语也能够编写出与单片机串口通讯的软件,运用VB的MSCOMM控件能够更便利的完成串口通讯。

Java软件方面

需求用到Comm包,下载地址和运用方法请自行Google一下。

部分代码:

1.找出电脑上的串口

static Enumeration portList=CommPortIdentifier.getPortIdentifiers();

while (portList.hasMoreElements()){ //用循环结构找出串口
portId=(CommPortIdentifier)portList.nextElement(); //强制转换为通讯端口类型
if(portId.getPortType() == CommPortIdentifier.PORT_SERIAL)
System.out.println(portId.getName());

2.翻开串口

SerialPort serialPort;//RS-232串口

try {
serialPort = (SerialPort) portId.open(“ReadComm”, 2000); //超时等候
}
catch (PortInUseException e) { }

3.设置串口通讯参数
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
}
catch (UnsupportedCommOperationException e) { }

单片机方面

1.1602液晶时序图

2.protues仿真图(附Java软件效果图)

3.C51部分代码

void write_com(uchar com)//写指令
{
rs=0;
lcden=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}

void write_date(uchar date)//写数据
{
rs=1;
lcden=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
uchar num;
lcden=0;
write_com(0x38);//初始化
write_com(0x0c);//不显现光标
write_com(0x06);//指针自加一,整屏显现不移动
write_com(0x01);//清屏
write_com(0x80);//设置光标指针(榜首行)
for(num=0;num<15;num++)
{
write_date(table[num]);
delay(5);
}
write_com(0x80+0x40);//设置光标指针(第2行)
for(num=0;num<12;num++)
{
write_date(table1[num]);
delay(5);
}
TMOD=0x21; // 定时器0的方法1,定时器1的方法2
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1; //开总中止
ET0=1;
TR0=1;
TH1=0xfd;//波特率9600
TL1=0xfd;
TR1=1;
}
void initser()
{
SM0=0;
SM1=1;//串口中止方法1

ES=1;
REN=1;
}

4.规范字符库

软件操控单片机

点击软件相应的三个按钮(add、Shift、minus)发送对应的byte数据(0、1、2),单片机接收到byte数据后履行相应的指令(加数、切换、减数)。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/baogao/261634.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部