?? main.lst
字號(hào):
C51 COMPILER V7.06 MAIN 10/24/2006 12:39:27 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*******************************************************************************
2 程序名稱:使用printf()函數(shù)從串行口發(fā)送數(shù)據(jù)
3 硬件接法:RXD和TXD通過RS-232電平轉(zhuǎn)換電路接到電腦的串行口上
4 運(yùn)行效果:每隔1秒向串行口發(fā)送字符串Hello world!
5 說明:串行口初始化代碼在啟動(dòng)文件"STARTUP.A51"里
6 *******************************************************************************/
7
8
9 #include <reg51.h>
10 #include <stdio.h>
11
12
13 //定義I/O
14 sbit CarryPin = P1^0;
15
16
17 //T0中斷函數(shù),產(chǎn)生38kHz載波信號(hào)
18 void T0_ISR() interrupt 1
19 {
20 1 CarryPin = !CarryPin;
21 1 }
22
23
24 //T0初始化
25 void T0_Init()
26 {
27 1 TMOD &= 0xF0; //T0設(shè)置在方式2,即8位自動(dòng)重裝定時(shí)器(不改變T1的模式)
28 1 TMOD |= 0x02;
29 1 TH0 = TL0 = 0xF4;
30 1 ET0 = 1;
31 1 EA = 1;
32 1 TR0 = 1;
33 1 }
34
35
36 #define MCLK 11059200L
37 #define BAUD_RATE 1200L
38
39
40 void UartInit()
41 {
42 1 //串行口設(shè)置:8位UART,允許接收,TI置位
43 1 SCON = 0x52;
44 1 //波特率加倍
45 1 PCON |= 0x80;
46 1 //設(shè)置定時(shí)器T1為8位自動(dòng)重裝模式
47 1 TMOD &= 0x0F;
48 1 TMOD |= 0x20;
49 1 //設(shè)置定時(shí)器T1的初值
50 1 TH1 = 256 - ( MCLK / 12 ) / (16 * BAUD_RATE );
51 1 TL1 = TH1;
52 1 //啟動(dòng)定時(shí)器T1
53 1 TR1 = 1;
54 1 }
55
C51 COMPILER V7.06 MAIN 10/24/2006 12:39:27 PAGE 2
56
57 //主函數(shù)
58 void main()
59 {
60 1 UartInit();
61 1 T0_Init();
62 1 printf("Hello world!\r\n"); //輸出字符串
63 1 IE = 0;
64 1 for (;;); //停機(jī)(按RST鍵再次發(fā)送)
65 1 }
66
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 63 ----
CONSTANT SIZE = 15 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -