📄 keytesttask.lst
字号:
C51 COMPILER V7.50 KEYTESTTASK 11/12/2006 10:31:42 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE KEYTESTTASK
OBJECT MODULE PLACED IN KeyTestTask.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE KeyTestTask.c BROWSE DEBUG OBJECTEXTEND CODE
line level source
1 #include "KeyTestTask.H"
2
3 //键盘测试任务执行体。在main()主循环中被调用。
4 //===========================================
5 void KeyTestTask(void)
6 {
7 1 switch(Menu1)
8 1 {
9 2 case 1://初始化屏幕为全0
10 2 MyKey = 0;//清除按键缓冲区中的按键值
11 2
12 2 DisplayBuffer[0] = HexChar[0];//最左边数码管
13 2 DisplayBuffer[1] = HexChar[0];
14 2 DisplayBuffer[2] = HexChar[0];
15 2 DisplayBuffer[3] = HexChar[0];
16 2 DisplayBuffer[4] = HexChar[0];
17 2 DisplayBuffer[5] = HexChar[0];
18 2 DisplayBuffer[6] = HexChar[0];
19 2 DisplayBuffer[7] = HexChar[0];//最右边数码管
20 2
21 2 //进入测试显示状态
22 2 //----------------
23 2 Menu1 = 2;
24 2 break;
25 2 case 2://输入的按键对应的数码从显示屏右端移入
26 2 if(MyKey)
27 2 {//如果有键按下,则显示按键对应的数码到显示屏右端
28 3 DisplayBuffer[0] = DisplayBuffer[1];
29 3 DisplayBuffer[1] = DisplayBuffer[2];
30 3 DisplayBuffer[2] = DisplayBuffer[3];
31 3 DisplayBuffer[3] = DisplayBuffer[4];
32 3 DisplayBuffer[4] = DisplayBuffer[5];
33 3 DisplayBuffer[5] = DisplayBuffer[6];
34 3 DisplayBuffer[6] = DisplayBuffer[7];
35 3
36 3
37 3 DisplayBuffer[7] = HexChar[MyKey-1];
38 3
39 3 MyKey = 0;//清按键缓冲区,表示按键值已经取走
40 3 }
41 2 break;
42 2 }
43 1 }
C51 COMPILER V7.50 KEYTESTTASK 11/12/2006 10:31:42 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION KeyTestTask (BEGIN)
; SOURCE LINE # 5
; SOURCE LINE # 6
; SOURCE LINE # 7
0000 E500 E MOV A,Menu1
0002 24FE ADD A,#0FEH
0004 601E JZ ?C0003
0006 04 INC A
0007 703D JNZ ?C0005
; SOURCE LINE # 8
; SOURCE LINE # 9
0009 ?C0002:
; SOURCE LINE # 10
0009 E4 CLR A
000A F500 E MOV MyKey,A
; SOURCE LINE # 12
000C 900000 E MOV DPTR,#HexChar
000F 93 MOVC A,@A+DPTR
0010 F500 E MOV DisplayBuffer,A
; SOURCE LINE # 13
0012 F500 E MOV DisplayBuffer+01H,A
; SOURCE LINE # 14
0014 F500 E MOV DisplayBuffer+02H,A
; SOURCE LINE # 15
0016 F500 E MOV DisplayBuffer+03H,A
; SOURCE LINE # 16
0018 F500 E MOV DisplayBuffer+04H,A
; SOURCE LINE # 17
001A F500 E MOV DisplayBuffer+05H,A
; SOURCE LINE # 18
001C F500 E MOV DisplayBuffer+06H,A
; SOURCE LINE # 19
001E F500 E MOV DisplayBuffer+07H,A
; SOURCE LINE # 23
0020 750002 E MOV Menu1,#02H
; SOURCE LINE # 24
0023 22 RET
; SOURCE LINE # 25
0024 ?C0003:
; SOURCE LINE # 26
0024 E500 E MOV A,MyKey
0026 601E JZ ?C0005
; SOURCE LINE # 27
; SOURCE LINE # 28
0028 850000 E MOV DisplayBuffer,DisplayBuffer+01H
; SOURCE LINE # 29
002B 850000 E MOV DisplayBuffer+01H,DisplayBuffer+02H
; SOURCE LINE # 30
002E 850000 E MOV DisplayBuffer+02H,DisplayBuffer+03H
; SOURCE LINE # 31
0031 850000 E MOV DisplayBuffer+03H,DisplayBuffer+04H
; SOURCE LINE # 32
0034 850000 E MOV DisplayBuffer+04H,DisplayBuffer+05H
; SOURCE LINE # 33
0037 850000 E MOV DisplayBuffer+05H,DisplayBuffer+06H
; SOURCE LINE # 34
003A 850000 E MOV DisplayBuffer+06H,DisplayBuffer+07H
; SOURCE LINE # 37
003D 900000 E MOV DPTR,#HexChar-01H
C51 COMPILER V7.50 KEYTESTTASK 11/12/2006 10:31:42 PAGE 3
0040 93 MOVC A,@A+DPTR
0041 F500 E MOV DisplayBuffer+07H,A
; SOURCE LINE # 39
0043 E4 CLR A
0044 F500 E MOV MyKey,A
; SOURCE LINE # 40
; SOURCE LINE # 41
; SOURCE LINE # 42
; SOURCE LINE # 43
0046 ?C0005:
0046 22 RET
; FUNCTION KeyTestTask (END)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 71 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -