基于Java语言的51单片机串口通讯PC机程序
图1硬件电路图
串口通讯硬件部分电路,收发器件采用max232,5V供电。J31接一单片机如AT89C52,单片机的串口与max232的10和11脚相连。
max232与微机通过9针接头相连。
本文的实验环境是AT89C52,单片机的内部程序是用KeilC语言编写的,程序功能非常简单,检测到开始信号后从串口读数据,然后把读入的数据发送给串口,遇到结束符停止。C语言代码如下供大家参考。在uv3中含有两个文件comm.h和comm.c,代码分别为:
//
/* comm.h*/
/* serial port define, only use in comm project */
//
#define ucharunsigned char
#define uint unsigned int
#define length0x0F //数据包长度
ucharCR = 0x0D;
ucharLF = 0x0A;
ucharESC = 0x1B;
ucharSYNC = 0x01; //数据包启始符
ucharPID = 0x00; //数据包标示字
ucharADDR; //串口接收外部命令(片内地址)
ucharDATA; //串口返回片内数据
ucharENDP = 0x00; //数据包结束符
ucharACK = 0x06; //串口确认
ucharERROR = 0x18; //串口错误
ucharwrong[] = "Bad command";
/*END*/
/*/
/*comm..c*/
/* Write time is 2005.4.15,By Gooseli*/
/* Copyright is changsha HUNU unversity gooseli.com */
/* Cpu is At89C51,Fclk is 11.059MHz */
/* Compiler is keilC51 compiler */
/*/
#include
#include
#include
#include
void commInit(){
////
// 8051串口初始化//
////
SCON = 0x52;
PCON = 0x80;
TMOD = 0x21;
TH1 = 0x0FA;
TL1 = 0x0FA;
TCON = 0x40;
//*//
//串口控制器工作于方式1,8位,频率可变。接收允许//
//串口波特率系数SMOD = 1 //
//定时器1工作于方式1,8位自动装载。定时器0方式1,16位//
// 11.059M晶振,波特率= 9600,TH1 = 0x0FA;//
//19200 0x0FD //
//57600 0x0FF //
// 3.6864M晶振9600 0x0FE //
//19200 0x0FF //
// #3.6864M晶振工作于方式2 //
// #在SMOD = 1时,波特率= 115200//
//开中断TR1 = 1//
//*//
}
uchar flag;
uchar readln();
void println( uchar *str );
main(){
commInit(); //初始化串口
while(1){
flag = readln();
}
}
uchar readln(){
uchar a;
uchar str[length];
int i;
scanf("%c",&a); //寻找起始符,回车则开始
if( a==SYNC || a==LF ){
while(1){
printf("\n>>");
//printf(">>");
scanf("%c",&a);
if( a==ENDP || a == ESC ){ //如果ESC则对话结束
break;
}
for( i="0"; i //读入数据包,如果溢出或者回车则结束 str[i] = a; scanf("%c",&a); } str[i] = ENDP; //为数据包添加结束符,“\0” printf("%s",str); //输出输入值 /*To do something by yourself*/ } return ACK; } printf("\n%s\n>>",wrong); return ERROR; } /*END*/ 2配置运行环境(JDK) Java通讯库函数Java Communications API,Java开发工具JBuilderX。 此Java(TM) Communications API Specification 2.0(Windows Platform)是Sun公司为Windows平台提供的一个串口API扩展,可以到http://java.sun.com/products/javacomm/下载。Sun公司还提供了其他操作系统下的API下载,移植性是Java先天的优势,如果需要在其他操作系统运行程序,不需要改动程序本身,只要在操作系统下植入相应的API库函数即可实现。 JBuilder是Borland公司出品的一款功能强大的可视化Java集成开发工具,可以快速开发包括复杂企业级应用系统的各种Java程序,本文的程序都用其实现。当然我们以可使用其他优秀的开发工具,例如开放源代码的Eclipse,功能强大,插件丰富。 在下载Java Communications API压缩文件里找到三个文件:comm.jar,win32comm.dll,javax.comm.properties,这三个文件是把API安装到Windows环境中的重要文件,我们把他们放在我们的JDK里面。 把comm..jar到%JAVA_HOME%\jre\lib\ext,javax.comm.properties到%JAVA_HOME%\jre\lib,win32comm.dll到%JAVA_HOME%\bin即可。这样我们的程序就可以在Windows环境中运行了,Java Communications API压缩文件中自带有例子,我们可以尝试一下。 接下来我们要把Java Communications API安装到JBuilder里面,如果JBuilder不是使用的外部的JDK,照上面的的步骤再做一次。假如我们外部的JDK和JBuilder的JDK是同一的JDK,我们就直接跳到下一步。 1)打开JBuilder,为我们的任务建立一个工程,给它起个有意义的名字,不多讲了。JBuilder会自动生成两个文件,如,工程名为comm,就会生成文件commApplication和commFrame。 2)选择Tools菜单,选择Configure Libraries…,如图1所示。 3)点击New按钮,为JBuilder增加一个函数库。如图2,点击OK即
Java语言51单片机串口通讯PC机程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)