📄 test.lst
字号:
C51 COMPILER V7.20 TEST 09/14/2004 03:30:10 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN TEST.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TEST.C REGFILE(.\test.ORC) BROWSE DEBUG OBJECTEXTEND TABS(3)
line level source
1 //#pragma src(test.a51)
2 #include "reg51.h"
3 #include "IO.H" // 自定义头文件, 宏定义及I/O函数外部声明
4
5 void enter(void), del(void), review(void), quit(void); // 函数声明
6
7 code void (*option[])(void) = { // 作为code数据, 类似汇编里的函数地址标号
8 enter,
9 del,
10 review,
11 quit
12 };
13
14
15 unsigned char str_chr(unsigned char * str, unsigned char ch); // 检测字符串str中是否含有字符ch
16
17 unsigned char menu(void); // 示出一个菜单, 返回用户选择的菜单号
18
19 unsigned char main(void)
20 {
21 1 unsigned char i;
22 1
23 1 SCON = 0xc0; // 设置串口为方式3, 11位UART(Universal Asynchronous Receiver/Transmitter), 波特率
-可变
24 1 PCON = 0;
25 1 TMOD = 0x20; // 设置定时器T1为方式2(自动再装入8位计数器),做为波特率发生器
26 1 TH1 = 0xf0;
27 1 TL1 = 0xf0;
28 1 TR1 = 1;
29 1
30 1 //EA = 1; // 所有中断开
31 1 //ES = 1; // 允许串行中断
32 1 REN = 1; // 允许串行接收, 把此行关闭,串口1就收不到数据了
33 1
34 1 do {
35 2 i = menu(); /* get user's choice */
36 2
37 2 (*option[i])(); /* execute */
38 2
39 2 if(i==3)break;
40 2
41 2 putstring(" continue!\n\n");
42 2
43 2 } while(1);
44 1
45 1 return 0;
46 1 }
47
48
49 unsigned char menu(void)
50 {
51 1 unsigned char ch;
52 1
53 1 do {
54 2 putstring("1. Enter\n");
C51 COMPILER V7.20 TEST 09/14/2004 03:30:10 PAGE 2
55 2 putstring("2. Delete\n");
56 2 putstring("3. Review\n");
57 2 putstring("4. Quit\n");
58 2 putstring("Select a number: ");
59 2 ch = getche();
60 2 putstring("\n");
61 2
62 2 } while(!str_chr("1234", ch));
63 1
64 1 return ch - 0x31; /* convert to an integer equivalent */
65 1
66 1 }
67
68 unsigned char str_chr(unsigned char * str, unsigned char ch)
69 {
70 1 unsigned char i;
71 1 for(i=0;str[i];++i){
72 2 if(str[i]==ch)break;
73 2 }
74 1 return str[i];
75 1 }
76
77 void enter(void)
78 {
79 1 putstring("\nIn enter");
80 1 }
81 void del(void)
82 {
83 1 putstring("\nIn del");
84 1 }
85 void review(void)
86 {
87 1 putstring("\nIn review");
88 1 }
89 void quit(void)
90 {
91 1 putstring("\nIn quit");
92 1 }
93
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 206 ----
CONSTANT SIZE = 130 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 5
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 + -