📄 uart.lst
字号:
C51 COMPILER V8.02 UART 07/20/2007 10:53:52 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN uart.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE uart.c BROWSE DEBUG OBJECTEXTEND
line level source
1 // 串口初始化C代码
2 // 1.波特率1200bps,无奇偶校验,停止位1,数据位8
3 // 2.定时器T1做波特率发生器
4
5
6
7 #include "uart.h"
8
9 code unsigned char HEX_TAB []="0123456789ABCDEF";
10
11 //串口初始化
12 void serial_init(void)
13 {
14 1 //ET1 = 0; //CLR 0ABH ;禁止T1中断
15 1 TMOD = 0x20; //MOV 89H,#20H ;timer 1 mode 2: 8-Bit reload(定时器T1 模式2: 8位自动初值重装)
16 1 TH1 = 0xE8; //MOV 8DH,#0E8H
17 1 TL1 = 0xE8; //MOV 8BH,#0E8H ;1200bps, 11.059
18 1 TR1 = 1; //SETB 8EH ;启动定时器1
19 1
20 1 SCON = 0x50; // mode 1: 10-bit UART, enable receiver(模式1: 10位异步发送/接收, 使能接收允许位)
21 1 //SM1 = 1; // ;串行口 模式1
22 1 //SM0 = 0;
23 1 //REN = 1; // ;允许串行中断接收
24 1
25 1 SM2 = 1; //SETB O9DH ;收到有效的停止位时才将RI置1
26 1
27 1 ES = 1; //SETB 0ACH ;允许串行中断
28 1 EA = 1; //SETB 0AFH ;总中断开
29 1 }
30
31 //中断方式处理串口数据
32
33 /*void serial(void) interrupt 4 using 1
34 {
35 if(RI)
36 {
37 // RI = 0;
38 // 串口接收, 采用临时缓冲
39 }
40 #if 0
41 if(TI)
42 {
43 // TI = 0;
44 // 串口发送, 没有必要使用中断方式
45 }
46 #endif
47
48 } */
49
50 // 查询方式接收串口数据
51 unsigned char getchar(void)
52 {
53 1 while(!RI);// 没有收到串口数据则一直等待
54 1 RI=0;
55 1 return SBUF;
C51 COMPILER V8.02 UART 07/20/2007 10:53:52 PAGE 2
56 1 }
57 // 查询方式发送串口数据
58 void putchar(unsigned char ch)
59 {
60 1 SBUF=ch;
61 1 while(!TI);
62 1 TI=0;
63 1 }
64 void puthex(unsigned char ch)
65 {
66 1 unsigned char i,j;
67 1 i=ch>>4;
68 1 j=ch&0x0f;
69 1 putchar(HEX_TAB[i]);
70 1 putchar(HEX_TAB[j]);
71 1 }
72 void putstring(unsigned char *ch)
73 {
74 1 while(ch)
75 1 {
76 2 putchar(*ch);
77 2 ch++;
78 2 }
79 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 83 ----
CONSTANT SIZE = 17 ----
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 + -