📄 test012.lst
字号:
C51 COMPILER V7.50 TEST012 12/27/2006 12:30:26 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TEST012
OBJECT MODULE PLACED IN test012.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE test012.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************************************
2 * 文 件 名:test012.c
3 * 功 能:UART发送实验(查询方式)。
4 * 硬件条件:1.CPU型号:AT89S52
5 * 2.晶振:11.0592MHz
6 * 3.用跳线帽短接RXD__P3.0
7 * 4.用跳线帽短接TXD__P3.1
8 * 作 者:POWER
9 * 日 期:2006年12月12号
10 * 斯凯科技主页:www.armsky.net
11 * 斯凯科技论坛:www.armsky.net/bbs
12 *********************************************************************************************/
13 #include "reg52.h" // 包含头文件
14
15 /* 与编译器无关的数据类型定义 */
16 /********************************************************************************************/
17 typedef unsigned char uint8; // 无符号8位整型变量
18 typedef signed char int8; // 有符号8位整型变量
19 typedef unsigned short uint16; // 无符号16位整型变量
20 typedef signed short int16; // 有符号16位整型变量
21 typedef unsigned int uint32; // 无符号32位整型变量
22 typedef signed int int32; // 有符号32位整型变量
23 typedef float fp32; // 单精度浮点数(32位长度)
24 typedef double fp64; // 双精度浮点数(64位长度)
25 /********************************************************************************************/
26
27 /********************************************************************************************
28 * 函数名称:Delay()
29 * 功 能:软件延时
30 * 入口参数:count 延时参数,值越大,延时越长
31 * 出口参数:无
32 *********************************************************************************************/
33 void Delay(uint16 count)
34 {
35 1 uint8 i;
36 1
37 1 while(--count != 0)
38 1 {
39 2 for(i = 0; i < 125; i++); // ";" 表示空语句,CPU空转。
40 2 } // i 从0加到125,在12M晶体下CPU大概耗时1毫秒
41 1 }
42
43 /********************************************************************************************
44 * 函数名称:UART_Init()
45 * 功 能:UART初始化
46 * 入口参数:无
47 * 出口参数:无
48 *********************************************************************************************/
49 void UART_Init(void)
50 {
51 1 IE=0x00; // 禁止所有中断
52 1
53 1 SCON=0x50; // 串口工作方式1,即10位异步收发器(8位数据),波特率可变
54 1
55 1 TMOD|=0x20; // 定时器1:工作方式2(8位自动重装定时/计数器)
C51 COMPILER V7.50 TEST012 12/27/2006 12:30:26 PAGE 2
56 1
57 1 PCON|=0x80; // SMOD=1,即波特率提高一倍
58 1
59 1 TH1=0xF4; // 晶振频率为11.0592MHz时,波特率为4800
60 1
61 1 TR1=1; // 启动定时器/计数器1
62 1
63 1 }
64
65 /********************************************************************************************
66 * 函数名称:UART_Send_Char()
67 * 功 能:向串口发送一个字符
68 * 入口参数:Send_Char 要发送的一个字符
69 * 出口参数:无
70 *********************************************************************************************/
71 void UART_Send_Char(uint8 Send_Char)
72 {
73 1 SBUF=Send_Char; // 将要发送的一个字符写入发送缓冲区
74 1 while(TI==0); // 查询UART发送中断标志,直到标志为1(产生发送中断)时,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -