//使用F350,串口为P0.4,P0.5; //----------------------------------------------------------------------------- // 所包含的头文件 //------------------------------------------------------------------------ #include <c8051f350.h> #include <stdio.h> //----------------------------------------------------------------------------- // 常量定义 //----------------------------------------------------------------------------- #define SYSCLK 24500000 // 系统工作频率 #define BAUDRATE 9600 // 串口工作波特率 //----------------------------------------------------------------------------- // F35x’定时器2的16位SFR //----------------------------------------------------------------------------- sfr16 TMR2RL = 0xca; sfr16 TMR2 = 0xcc; //----------------------------------------------------------------------------- // 功能函数 //----------------------------------------------------------------------------- void SYSCLK_Init (void); void PORT_Init (void); void UART0_Init (void); void UART0_ISR (void); bit ReceiveBit; unsigned char temp; /*延时程序*/ void delay(unsigned int m) { unsigned int n; n=0; while(n<m) {n++;} return; } //----------------------------------------------------------------------------- // 主程序 //----------------------------------------------------------------------------- void main (void) { unsigned char i; PCA0MD &= ~0x40; // 禁止看门狗 ReceiveBit=0; PORT_Init(); // 初始化端口I/O SYSCLK_Init (); // 初始化系统时钟 UART0_Init(); // 串口初始化 EA=1; ES0=1; while(1) { while(ReceiveBit==1) { ES0=0; EA=0; ReceiveBit=0; delay(60000); delay(60000); delay(60000); SBUF0=temp; while(TI0==0); TI0=0; delay(60000); delay(60000); delay(60000); ES0=1; EA=1; } } } //----------------------------------------------------------------------------- // 端口初始化 //----------------------------------------------------------------------------- // // Configure the Crossbar and GPIO ports. // // P0.4 - UART TX // P0.5 - UART RX void PORT_Init (void) { P0MDOUT |= 0x10; // 使能 UTX 为推挽输出 XBR0 = 0x01; // 使能 UART on P0.4(TX) and P0.5 XBR1 = 0x40; } //----------------------------------------------------------------------------- // 系统时钟初始化 //----------------------------------------------------------------------------- void SYSCLK_Init (void) { OSCICN |= 0x03; // 配置内部振荡器的的最大频率 RSTSRC = 0x04; // 使能始终丢失检测寄存器 } //----------------------------------------------------------------------------- // 串口初始化 //----------------------------------------------------------------------------- void UART0_Init (void) { SCON0 = 0x10; CKCON = 0x80; TMOD = 0x20; TH1=0X96; TR1 = 1; } //----------------------------------------------------------------------------- // 时钟2中断 //----------------------------------------------------------------------------- void UART0_ISR (void) interrupt 4 {if(!TI0) { RI0=0; temp=SBUF0; ReceiveBit=1; } TI0=0; }
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助