⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hnr_s6.c

📁 msp430开发版程序
💻 C
字号:
//USB转FIFO实验
/*
需要将USBMD1接到USBMD1插座上,然后连上USB线,把驱动程序安装好。
需要将8路的按键电路板接到P5口上
功能1:将电脑传出来的数据传回到电脑上
功能2:将P5口的按键值发送到电脑上
电脑收发软件采用软件HNRCOM.exe,波特率随便设,实际传输的跟波特率设置无关,该模块都会采用最高速度进行通讯,即8Mbps
调试时,要选择正确的串口号,一般情况下都会大于COM4
*/

#include "msp430x14x.h"

main()
{
	unsigned int i;
	unsigned char cusbtxdata;
	unsigned char keyval;
	WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
	//端口初始化  
	
	P1DIR=0x00;//P1口所有引脚设置为输入
	P2DIR=0x03;//P2.0~2.1为输出,其余为输入
	P2OUT = 0x03;	//平时保持高电平
	P2IE = BIT3;	//接收中断
	P2IES = BIT3;	//下降沿中断
	P5DIR = 0x00;	//P5口作为按键输入
	do
	{
		IFG1&=~OFIFG;//清除振荡器失效标志
		for(i=255;i>0;i--);
	}while(IFG1&OFIFG);//判断XT2是否起振
	BCSCTL2=SELM1+SELS;//MCLK SMCLK时钟源为TX2CLK不分频
	
	cusbtxdata=0;
	
	_EINT();//开启中断
	
	while(1)
	{
	  	keyval = P5IN;
	  	if((keyval!=0xff)&&(keyval!=cusbtxdata))
		{
//向PC传输数据	  
		  	cusbtxdata = keyval;
			P2OUT |= BIT1;
			P1DIR = 0XFF;//P1口所有引脚设置为输出
			P1OUT = cusbtxdata;
			P2OUT &=~BIT1;
			P2OUT |= BIT1;
		}
		for(i=0;i<1000;i++)
		{
			_NOP();
			_NOP();
		}
	};
}

#pragma vector=PORT2_VECTOR
__interrupt void PORT1 (void)
{  
  	unsigned char rxdata;
	if((P2IN&BIT3)!=BIT3)
	{
//接收数据	
		P1DIR=0x00;//P1口所有引脚设置为输入
		P2OUT &=~BIT0;	//开发接收
		_NOP();
		rxdata = P1IN;	//接收数据
		_NOP();
		P2OUT |= BIT0;	//接收完毕
		_NOP();
//回传数据	
		P2OUT |= BIT1;
		P1DIR = 0XFF;//P1口所有引脚设置为输出
		P1OUT = rxdata;	//送出数据
		P2OUT &=~BIT1;	//发送使能
		P2OUT |= BIT1;	//发送结束
	}
	
  	P1IFG=0X00;	//清除中断标志
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -