📄 uart.lst
字号:
C51 COMPILER V8.08 UART 05/09/2008 17:57:19 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN UART.OBJ
COMPILER INVOKED BY: C:\Keil808\C51\BIN\C51.EXE UART.c ROM(COMPACT) DEBUG OBJECTEXTEND
line level source
1
2 #include <AT89X52.H>
3
4 #include "os_core.h"
5 #include "main.h"
6 #include "task_switch.h"
7 #include "sem.h"
8 #include "q.h"
9 #include "uart.h"
10
11
12 //////////////////////////////串口初始化函数,9600bps波特率,使用24M晶体///////////////
13 void uart_init(void)
14 {
15 1 TMOD=(TMOD & 0x0F)|0x20; //定时器1工作在模式2
16 1 SCON=0x50; //串口工作在模式1
17 1 ES=0; //禁止串行中断
18 1 PCON|=0x80; //串口波特率加倍
19 1 TH1=0xF3;
20 1 TL1=0xF3; //串口波特率为9600
21 1 TR1=1; //启动定时器1
22 1 REN=1; //允许接收
23 1 }
24
25 //////////////////////////////// 通过串口发送1字节数据/////////////////////////////////
26 void sendbyte(uint8 byte) reentrant
27 {
28 1 TI=0; //清TI
29 1 SBUF=byte; //发送数据
30 1 while(!TI); //等待发送完毕
31 1 }
32
33 /////////////////////////////////从串口接收一字节数据///////////////////////////////////
34 uint8 getbyte(void)reentrant
35 {
36 1 uint8 temp; //临时变量
37 1 while(1) //一直等待,直到接收到数据才返回
38 1 {
39 2 if(RI) //如果串口收到数据
40 2 { //如果收到,则
41 3 temp=SBUF; //读回数据
42 3 RI=0; //清RI
43 3 return temp; //返回数据
44 3 }
45 2 else
46 2 {
47 3 OSWait(K_TMO,1); //延迟一个时钟节拍
48 3 }
49 2 }
50 1 }
51
52
53 ////////////////////////////// 发送一个字符串 ///////////////////////////////////////////
54 void prints(unsigned char * s) reentrant
55 {
C51 COMPILER V8.08 UART 05/09/2008 17:57:19 PAGE 2
56 1 uint8 i=0;
57 1 while(s[i]!=0) //判断字符串是否结束
58 1 {
59 2 if(s[i]=='\n')
60 2 s[i]='\r';
61 2 TI=0;
62 2 SBUF=s[i]; //发送一字节
63 2 while(!TI); //等待该发送完毕
64 2 i++; //移到下字节
65 2 }
66 1 }
67
68
69
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 187 ----
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 + -