网页控制430单片机

2019-04-15 18:22发布

本文用网页控制单片机的实例,实现了软件和硬件之间的沟通。

一、开发技术

硬件:430单片机; 软件:jsp,servlet。

二、开发思路

我们在430单片机上写上我们的程序,把单片机连接到串口上,能够通过串口精灵来控制430单片机。然后我们在servlet中开发Java控制串口的程序,该servlet相当于前面的串口精灵。通过点击网页上的不同数字,传递到单片机上,通过不同的数字来控制单片机实现不同的效果。

三、程序如下

430单片机程序

#include "msp430x14x.h" int a=10; unsigned char j=0x01,j2=0x00; unsigned char j1=0X80,K1=0X01; void delay(int i) { while(i--) { for(int j=0;j<125;j++); } } void main( void ) { WDTCTL = WDTPW + WDTHOLD; //停止看门狗 P2DIR=0xff; //把p2设为输出。 P2OUT=0xff; //把p2设为高电平 P3SEL|=0x30; P6DIR=0xff; P6OUT=0xff; ME1|=UTXE0+URXE0; UCTL0|=CHAR; UTCTL0|=SSEL0; UBR00=0x0D; UBR10=0x00; UMCTL0=0x6B; UCTL0&=~SWRST; IE1|=URXIE0; _EINT(); while(1) { if(a=='0') //实现流水灯。 { P2OUT=~j; j=j<<1; if(j==0X00) j=0x01; for(int i=0;i<10000;i++) for(int k=0;k<3;k++); } if(a=='1') //实现碰撞灯 { j1=j1>>1; K1=K1<<1; if(j1==0x01) j1=0x80; if(K1==0x80) K1=0x01; P2OUT=~(j1|K1); for(int i=0;i<10000;i++) for(int k=0;k<2;k++); } if(a=='2') //实现闪光灯 { j2^=0XFF; P2OUT=j2; for(int i=0;i<10000;i++) for(int k=0;k<2;k++); } if(a=='3') //实现蜂鸣器 { P6OUT^=0xff; for(int i=0;i<10000;i++) for(int k=0;k<2;k++); } } } #pragma vector = UART0RX_VECTOR //中断服务子程序 __interrupt void shen(void) { P6OUT=0xff; a=RXBUF0; while(!(IFG1&UTXIFG0)); TXBUF0 = a; }

Servlet程序

package filst; import java.io.* ; import java.util.*; import gnu.io.*; public class Put{ InputStream inputStream; OutputStream outputStream; SerialPort serialPort; CommPortIdentifier portId; int x0=0,x1=0,x2=0,x3=0; public void put(String name,int x0,int x1,int x2,int x3) { //参数分别表示:串口号,波特率,数据位,停止位,校验位 Enumeration portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { CommPortIdentifier temp = (CommPortIdentifier) portList.nextElement(); if (temp.getPortType() == CommPortIdentifier.PORT_SERIAL) {// 判断如果端口类型是串口 if (temp.getName().equals(name)) { // 判断如果端口已经启动就连接 portId = temp; } } } try { serialPort = (SerialPort) portId.open(name, 2000); inputStream = serialPort.getInputStream(); outputStream = serialPort.getOutputStream(); serialPort.setSerialPortParams(x0,x1,x2,x3); } catch (Exception e) {} } public void send(String content){ // 发送的内容。 try { outputStream.write(content.getBytes()); } catch (IOException e) { e.printStackTrace(); } } public void ClosePort() { //关闭串口。 if (serialPort != null) { serialPort.close(); } } }

jsp程序

<%@ page language="java" contentType="text/html;charset=gb2312"%>



流水灯    碰撞灯    闪光灯     蜂鸣器



接受内容的JSP页面

<%@ page language="java" contentType="text/html;charset=gb2312"%> <% student.put("COM3",9600,7,1,2); student.send(request.getParameter("sh")); student.ClosePort(); %>