资源描述:
《msp430串口通信带12864头文件.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、/******************************************************程序功能:PC通过串口调试精灵向MCU发送数据,MCU将其在1602液晶上显示-------------------------------------------------------通信格式:N.8.1,9600------------------------------------------------------测试说明:打开串口调试助手,正确设置通信格式,向从PC机上向学习板发送数据,观察液晶上显示的字符。*******
2、***********************************************/#include#include"12864.h"#include"delay.h"voidInitUART(void);voidPutString(uchar*ptr);uchartable1[]={"波特率:9600"};uchartable2[]={"接收到的数据为:"};uchartable[]={"0123456789"};ucharbuffer[100]={0};uchari=0,K=0;/*************
3、**主函数************/voidmain(void){/*下面六行程序关闭所有的IO口*/uchar*tishi="sennddatatoMCU,andtheywillbedisplayedon12864!";WDTCTL=WDTPW+WDTHOLD;//关狗InitUART();//初始化UARTinit();//初始化LCDPutString(tishi);_EINT();Disp_HZ(0x80,table1,6);Disp_HZ(0x90,table2,8);/*while(1){//LPM1;Disp_HZ(0x80,t
4、able1,6);Disp_HZ(0x90,table2,8);}*/}/*******************************************函数名称:PutSting功能:向PC机发送字符串参数:ptr--指向发送字符串的指针返回值:无********************************************/voidPutString(uchar*ptr){while(*ptr!=' '){while(!(IFG1&UTXIFG0));//TX缓存空闲?发送完毕UTXIFG0置1,IFG1=0X80TXB
5、UF0=*ptr++;//发送数据}while(!(IFG1&UTXIFG0));TXBUF0='';}/*******************************************函数名称:InitUART功能:初始化UART端口参数:无返回值:无********************************************/voidInitUART(void){UCTL0
6、=SWRST;P3SEL
7、=0x30;//P3.4,5=USART0TXD/RXDP3DIR
8、=BIT4;ME1
9、=URXE0+UTXE0;//
10、EnableUSART0T/RXDUCTL0
11、=CHAR;//8-bitcharacterUTCTL0
12、=SSEL0;//UCLK=ACLKU0BR0=0x03;//32k/9600-3.41U0BR1=0x00;//UMCTL0=0x4A;//ModulationUCTL0&=~SWRST;//InitializeUSARTstatemachineIE1
13、=URXIE0;//使能USART0的接收中断}/*******************************************函数名称:UART0_RXISR功能:UART0的接
14、收中断服务函数,在这里唤醒CPU,使它退出低功耗模式参数:无返回值:无********************************************/#pragmavector=UART0RX_VECTOR__interruptvoidUART0_RXISR(void){i++;if(i==32){i=0;write_cmd(0x01);//清除显示Disp_HZ(0x80,table1,6);Disp_HZ(0x90,table2,8);}//退出低功耗模式buffer[i]=RXBUF0;if(i<=15){write_cmd(
15、0x88);for(K=0;K<=i;K++)write_data(buffer[K]);}else{write_cmd(0x88);for(K=0;K<=15;K