📄 text1.lst
字号:
C51 COMPILER V7.50 TEXT1 05/24/2006 13:08:22 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include<stdio.h>
3 sbit P10 = 0x90;
4 void uart_transmit(char ByteToBeSend);
5 xdata unsigned char TxByte=0;/*要发送的字节数据*/
6 unsigned char nTxIndex=0;/*发送单个字符的位指针*/
7 unsigned char nTxBit=0;/* 单个字符数据位*/
8 bit UartBusy=0;
9 main()
10 {
11 1 TMOD=0x01; /* 定时器0工作在方式1 */
12 1 EA=1; /* 全局中断允许 */
13 1 uart_transmit(0xAA);
14 1 while(1)
15 1 if(UartBusy==0) uart_transmit(0xAA);
16 1 }
17
18 void Timer0_Overflow() interrupt 1 using 0
19 { if(nTxIndex<8)
20 1 {nTxBit=(TxByte>>nTxIndex)&0x01;
21 2 P10=nTxBit;/* 产生数据位 */
22 2 }
23 1 else if(nTxIndex==8)
24 1 P10=1;/* 产生停止位 */
25 1 TH0=0xFF; /* 写入计数初值到TH0 */
26 1 TL0=0x97; /* 写入计数初值到TL0 */
27 1 /* 1T后溢出 */
28 1 TF0=0; /* 定时器0中断标志位清0 */
29 1 if(nTxIndex==9)
30 1 {ET0=0; /*关闭定时器0中断*/
31 2 UartBusy=0; /*Uart发送完毕*/
32 2 nTxIndex=0; /* 接收下一个数据的D0位 */
33 2 }
34 1 nTxIndex++;
35 1
36 1 }
37 void uart_transmit(char ByteToBeSend)
38 { TxByte=ByteToBeSend;
39 1 TH0=0xFF;
40 1 TL0=0x97; /* 写入计数初值到TL0 */
41 1 TR0=1; /* 定时器0准备开始 */
42 1 P10=0; /* 产生起始位*/
43 1 TF0=0; /* 定时器0中断标志位清0 */
44 1 ET0=1; /* 定时器0中断允许*/
45 1 UartBusy=1;
46 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 124 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 1 ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
C51 COMPILER V7.50 TEXT1 05/24/2006 13:08:22 PAGE 2
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -