- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java软件与单片机串口通信参考
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;num15;num++)??{???write_date(table[num]);???delay(5);??}?write_com(0x80+0x40);//设置光标指针(第2行)?for(num=0;num12;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数据后执行相应的命令(加数、切换、减数)。
原创力文档


文档评论(0)