📄 rs232.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 + -