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

📄 rs232.c

📁 msp430f449功能模块的程序
💻 C
字号:
#include<msp430x44x.h>
void Init(void);//声明初始化函数
void Delay(void);//声明延迟函数
//主函数
void main(void)
{
P1DIR=0X00;//设置P1口方向寄存器P1口作为输入
P1IES=0X00;//设置P1口中断边沿选择寄存器置1为下降沿 置0为上跳沿
P1IE=0XFF;//设置P1口中断使能寄存器 置1为允许中断 置0为禁止中断

P4DIR=0XFF;

WDTCTL=WDTHOLD+WDTPW;
Init();
_EINT();//调用C编译器内部函数使能中断
//_BIS_SR(LPM1_bits);//调用C编译器内部对状态寄存器某位置位的函数
                   //LPM1_bits=CPUOFF+SCG0;
                   //SCG0=0X0040 ,进入LPM1低功耗工作模式
                   //CPUOFF=0X0010 关闭CPU 唤醒所有允许的中断
 //_NOP();
 while(1);
 }
 //初始化函数
 void Init(void)
 {
UCTL0&=~SWRST;//USART控制寄存器,允许工作
UCTL0=0x10;//8位数据位 1位停止位
UBR00=0X03;//使用32768晶体 波特率为9600
UBR10=0X00;
UMCTL0=0X4A;
UTCTL0=0x10;//选择辅助时钟
ME1|=UTXE0+URXE0;
P2SEL|=BIT4+BIT5;//P2口选择寄存器的第4.5位置1 选择外围模块
P2DIR|=BIT4+BIT5;
IE1|=URXIE0;
}

//P1口中断函数
#pragma vector=PORT1_VECTOR
__interrupt void PORT1(void)
{
if(P1IFG&BIT0)
{
Delay();
if(P1IFG&BIT0)
{TXBUF0=0X30;
P1IFG&=~BIT0;}
}
else
if(P1IFG&BIT1)
{
Delay();
if(P1IFG&BIT1)
{TXBUF0=0X31;
P1IFG&=~BIT1;}}

else
if(P1IFG&BIT2)
{
Delay();
if(P1IFG&BIT2)
{TXBUF0=0X32;
P1IFG&=~BIT2;}}

else
if(P1IFG&BIT3)
{
Delay();
if(P1IFG&BIT3)
{TXBUF0=0X33;
P1IFG&=~BIT3;}}

else
if(P1IFG&BIT4)
{
Delay();
if(P1IFG&BIT4)
{TXBUF0=0X34;
P1IFG&=~BIT4;}}


else
if(P1IFG&BIT5)
{
Delay();
if(P1IFG&BIT5)
{TXBUF0=0X35;
P1IFG&=~BIT5;}}


else
if(P1IFG&BIT6)
{
Delay();
if(P1IFG&BIT6)
{TXBUF0=0X36;
P1IFG&=~BIT6;}}


else
if(P1IFG&BIT7)
{
Delay();
if(P1IFG&BIT7)
{TXBUF0=0X30;
P1IFG&=~BIT7;}}
}

//P3口中断函数
//#pragma vector=PORT2_VECTOR
//__interrupt void PORT2(void)
//{
//if(P2IFG&BIT0)
//{
//Delay();
//if(P2IFG&BIT0)
//{TXBUF0=0X37;
//P2IFG&=~BIT0;}
//}
//else
//if(P2IFG&BIT1)
//{
//Delay();
//if(P2IFG&BIT1)
//{TXBUF0=0X38;
//P2IFG&=~BIT1;}}

//else
//if(P2IFG&BIT2)
//{
//Delay();
//if(P2IFG&BIT2)
//{TXBUF0=0X39;
//P2IFG&=~BIT2;}}

//else
//if(P2IFG&BIT3)
//{
//Delay();
//if(P2IFG&BIT3)
//{TXBUF0=0X30;
//P2IFG&=~BIT3;}}

//else
//if(P2IFG&BIT4)
//{
//Delay();
//if(P2IFG&BIT4)
//{TXBUF0=0X30;
//P2IFG&=~BIT4;}}

//else
//if(P2IFG&BIT5)
//{
//Delay();
//if(P2IFG&BIT5)
//{TXBUF0=0X30;
//P2IFG&=~BIT5;}}

//else
//if(P2IFG&BIT6)
//{
//Delay();
//if(P2IFG&BIT6)
//{TXBUF0=0X30;
//P2IFG&=~BIT6;}}

//else
//if(P2IFG&BIT7)
//{
//Delay();
///if(P2IFG&BIT7)
//{TXBUF0=0X30;
//P2IFG&=~BIT7;}}
//}
//
void Delay(void)
{
unsigned long i;
for(i=1500;
i>0;i--);
}

#pragma vector=UART0RX_VECTOR//接受中断函数
__interrupt void UART0RX(void)
{
unsigned char seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int x=0;
{
x=RXBUF0;
P4OUT=seg[x];
}}







⌨️ 快捷键说明

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