📄 uart.lst
字号:
C51 COMPILER V7.50 UART 02/21/2006 22:05:21 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN uart.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE uart.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2
3 #define _TH0_TL0_ (65536 - 50000)
4 #define HI (_TH0_TL0_ / 256) //给高8位赋值
5 #define LO (_TH0_TL0_ % 256) //给低8位赋值
6 #define M 20 //(1000/50)1秒要50个中断的累计
7
8 sbit P2_4 = P2 ^ 4;
9 sbit P2_6 = P2 ^ 6;
10
11 unsigned char Seg_tab[] = {0x41, 0xf5, 0x29, 0x31, 0x95, 0x13, 0x03, 0x75, 0x01, 0x11,0x05,0x83,0x4b,0xa1,
-0x0b,0x0f};//0-f数字
12 unsigned char a;
13
14 /***********************************************************************************************/
15 void Delay(unsigned char a)
16 {
17 1 unsigned char i;
18 1 while( --a != 0)
19 1 {
20 2 for(i = 0; i < 125; i++);
21 2 }
22 1 }
23
24 void IsrTimer0(void) interrupt 1 using 1 //定时器0中断服务程序
25 {
26 1 TR0 = 0; //以下调整出栈入栈的时间误差
27 1 TL0 += (_TH0_TL0_ + 9) % 256;
28 1 TH0 += (_TH0_TL0_ + 9) / 256 + (char)CY;
29 1 TR0 = 1;
30 1
31 1 P2_4 = 0x00;
32 1 P0 = Seg_tab[a/10]; //将得到的A值赋值给P1口。
33 1 Delay(10);
34 1 P2_4 = 0x01;
35 1
36 1 P2_6 = 0x00;
37 1 P0 = Seg_tab[a%10];
38 1 Delay(10);
39 1 P2_6 = 0x01;
40 1 }
41
42 /******************************************************************************************/
43 void Timer0Init(void) //初始化定时器0程序
44 {
45 1 TMOD = 0x01; //设置模式1 定时器0 工作方式0
46 1
47 1 TH0 = HI; //给TH0,TL0赋初始值
48 1 TL0 = LO;
49 1
50 1 TR0 = 1; //启动定时器0
51 1 ET0 = 1; //定时器中断开
52 1 EA = 1; //总中断开
53 1 }
54
C51 COMPILER V7.50 UART 02/21/2006 22:05:21 PAGE 2
55 /***********************************************************************************************/
56 void main (void)
57 {
58 1 Timer0Init();
59 1
60 1 P1 = 0xff;//关闭P1口的LED
61 1 P2 = 0xff;
62 1
63 1 TMOD = 0x20; //在11.0592M下,设置波特率9600,方式1
64 1 TL1 = 0xfd;
65 1 TH1 = 0xfd;
66 1 SCON = 0Xd8;
67 1 PCON = 0X00;
68 1 TR1 = 1;
69 1
70 1 while(1)
71 1 {
72 2 while(RI == 0);//等待接受完毕
73 2 RI = 0;
74 2 a = SBUF;//
75 2 P1 = a;
76 2
77 2 SBUF = a;//将A中的值发到PC上去
78 2 while(TI == 0);
79 2 TI = 0;
80 2 }
81 1 }
82
83
84
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 151 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 17 ----
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 + -