阅读340 返回首页    go 人物


51单片机串口

 [C/C++]代码

01 /*******************************
02 **********  使用timer1  ********************
03 **********  换行符  \r\n   ************
04 *******************************/
05  
06  
07 #ifndef __UART_H__
08 #define __UART_H__
09 #include<reg52.h>
10  
11  
12 /*******************************
13 **    8位uart可变波特率
14 *******************************/
15 void uartSetInit(unsigned long f_osc,unsigned long f_baud,bit ren,bit doubleBaud)//晶振频率,波特率,是否允许接收,是否波特率倍速
16 {  
17     TMOD=0x20;//设置定时器1为工作方式2
18     TH1=256-f_osc/32/12/f_baud;
19     TL1=256-f_osc/32/12/f_baud;
20     TR1=1;
21     PCON=(char)doubleBaud<<7;
22     SCON=0X40; //SM0=0;SM1=1;
23     REN=ren;   
24     ES=1;  
25 //  EA=1;   //总中断最后在主函数中开
26 }
27 /*******************************
28 **   一般晶振   ****************
29 *******************************/
30 void uartInit()
31 {
32     uartSetInit(11059200,9600,1,0);
33 }
34 void uartSendByte(char ch)     //发送中断一般用查询
35 {
36     while(TI);
37     SBUF=ch;
38     while(!TI);
39     TI=0;
40 }
41 void uartSendString(char str[])
42 {
43     while(*str)
44     {
45         uartSendByte(*str);
46         str++;
47     }
48 }    
49 void serInt() interrupt 4
50 {
51     if(RI)
52     {                      
53     /*handle received byte*/
54         RI=0;      
55     }
56 }
57 #endif

最后更新:2017-04-02 16:47:50

  上一篇:go synchronized(this)与synchronized(class) 简单实例
  下一篇:go Facebook的十点经验分享