📄 gsm-
字号:
C51 COMPILER V7.06 USART 06/13/2010 15:40:35 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE USART
OBJECT MODULE PLACED IN USART.OBJ
COMPILER INVOKED BY: E:\WorkSpace\Keil\C51\BIN\C51.EXE USART.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #ifndef _USART_INCLUDED_
2 #define _USART_INCLUDED_
3 #include "common.h"
4 //延时函数ms(condition:11.0592M HSE)
5 void delay_ms(unsigned int time)
6 {
7 1 unsigned char tres;
8 1 for(;time>0;time--)
9 1 {
10 2 tres=150;
11 2 while(tres--);
12 2 }
13 1 }
14
15 //串口初始化
16 void USART_Init()
17 {
18 1 SCON=0X50;//串口:方式1,接受允许
19 1 TMOD=0X20;//定时器1:模式2,8位自动重装模式,用于产生波特率
20 1 TH1=0XFD; //初值设定 9600bit
21 1 TL1=0XFD;
22 1 TR1=1; //开启定时器1
23 1 //TI=1;//特别注意:强行使上次数据发送结束,才开始printf (不信可以试试去掉本句试试)
24 1 EA=1;
25 1 }
26
27 void SendASC(uchar d)
28 {
29 1
30 1 SBUF=d;
31 1 while(!TI);
32 1 TI=0;
33 1 }
34 void SendString(uchar *str)
35 {
36 1 while(*str)
37 1 {
38 2 SendASC(*str) ;
39 2 str++;
40 2 }
41 1 }
42
43
44 // 通讯中断接收程序 中断函数无返回值
45 void USART_Interrupt(void) interrupt 4 //放在这里 和放在main()里面是一样的
46 {
47 1 EA=0;
48 1 flag=1;
49 1 if((RxPoint<RxBuf_N)&&RI) //必须判断RI是否为1
50 1 {
51 2 RI=0;
52 2 RxBuf[RxPoint++]=SBUF;
53 2 }
54 1 RI=0;
55 1 EA=1;
C51 COMPILER V7.06 USART 06/13/2010 15:40:35 PAGE 2
56 1 }
57
58 #endif
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 119 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -