📄 ser.lst
字号:
C51 COMPILER V8.02 SER 05/10/2009 04:27:27 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE SER
OBJECT MODULE PLACED IN SER.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SER.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "STC12C4052AD.h"
2 #define uchar unsigned char
3 BYTE table[]={0x03,0x3F,0x4A,0x2A,0x36,0xA2,0x82,0x3B,0x02,0x22};
4 uchar c;
5 bit flag;
6 void ser() interrupt 4
7 {
8 1 RI=0;
9 1 c=SBUF;
10 1 flag=1;
11 1 }
12 void serinit()
13 {
14 1 TMOD=0x20;
15 1 TH1=0xfd;
16 1 TL1=0xfd;
17 1 SM0=0;
18 1 SM1=1;
19 1 REN=1;
20 1 TR1=1;
21 1 ES=1;
22 1 EA=1;
23 1 }
24 void display()
25 {
26 1 uchar i;
27 1 P3_7=0;
28 1 P3_5=1;
29 1 switch(c)
30 1 {
31 2 case 0x30:i=0;break;
32 2 case 0x31:i=1;break;
33 2 case 0x32:i=2;break;
34 2 case 0x33:i=3;break;
35 2 case 0x34:i=4;break;
36 2 case 0x35:i=5;break;
37 2 case 0x36:i=6;break;
38 2 case 0x37:i=7;break;
39 2 case 0x38:i=8;break;
40 2 case 0x39:i=9;break;
41 2 }
42 1 P1=table[i];
43 1 //for( j=0;j<1000;j++);//延时
44 1 }
45 void main()
46 {
47 1 unsigned long j;
48 1 serinit();
49 1 for(j=0;j<300000;j++);
50 1 //while(1);
51 1 P1M0 = 0x00; //0 1 2 3 4 5 6 7 output
52 1 P1M1 = 0xFF; //
53 1 P3M0 = 0x00; //0101 1111
54 1 P3M1 = 0xFF; //1010 0000ini_time0();
55 1 while(1)
C51 COMPILER V8.02 SER 05/10/2009 04:27:27 PAGE 2
56 1 {
57 2 //for(j=0;j<500000;j++);
58 2 display();
59 2 if(flag==1) //判断是否完成接收
60 2 {
61 3 flag=0;
62 3 ES=0; //串口中断关闭
63 3 SBUF=c; //将原先发送的值给缓存器(接发都是同一个,但意义不一样)
64 3 while(!TI); //判断是否发送完成
65 3 TI=0; //是则硬件清0
66 3 ES=1; //再次打开串口中断
67 3 }
68 2 }
69 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 223 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 11 4
IDATA SIZE = ---- ----
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 + -