📄 lcd.lst
字号:
文件:LCD.c 盛群编译器版本 2.86 页次1
; 40: {
; 41: Uchar cdle_net[] = {"www.cdle.net"};
41 0000 rombank 0 L2
41 0000 L2 .SECTION INPAGE'CODE'
41 0000 l_2:
41 0000 0086 MOV [06h],A
41 0001 _2:
41 0001 0977 RET A,119
41 0002 0977 RET A,119
41 0003 0977 RET A,119
41 0004 092E RET A,46
41 0005 0963 RET A,99
41 0006 0964 RET A,100
41 0007 096C RET A,108
41 0008 0965 RET A,101
41 0009 092E RET A,46
41 000A 096E RET A,110
41 000B 0965 RET A,101
41 000C 0974 RET A,116
41 000D 0900 RET A,0
; 42: Uchar email[] = {"pnzwzw@cdle.net"};
42 000E rombank 0 L3
42 0000 L3 .SECTION INPAGE'CODE'
42 0000 l_3:
42 0000 0086 MOV [06h],A
42 0001 _3:
42 0001 0970 RET A,112
42 0002 096E RET A,110
42 0003 097A RET A,122
42 0004 0977 RET A,119
42 0005 097A RET A,122
42 0006 0977 RET A,119
42 0007 0940 RET A,64
42 0008 0963 RET A,99
42 0009 0964 RET A,100
42 000A 096C RET A,108
42 000B 0965 RET A,101
42 000C 092E RET A,46
42 000D 096E RET A,110
42 000E 0965 RET A,101
42 000F 0974 RET A,116
42 0010 0900 RET A,0
42 0011 __acsr EQU [027H]
42 0011 __adcr EQU [026H]
42 0011 __adrh EQU [025H]
42 0011 __adrl EQU [024H]
42 0011 __hdr EQU [023H]
42 0011 __hsr EQU [022H]
42 0011 __hcr EQU [021H]
42 0011 __hadr EQU [020H]
42 0011 __pwm3 EQU [01dH]
42 0011 __pwm2 EQU [01cH]
42 0011 __pwm1 EQU [01bH]
42 0011 __pwm0 EQU [01aH]
42 0011 __pfc EQU [029H]
文件:LCD.c 盛群编译器版本 2.86 页次2
42 0011 __pf EQU [028H]
42 0011 __pdc EQU [019H]
文件:LCD.C 盛群编译器版本 2.86 页次2
42 0011 __pd EQU [018H]
42 0011 __pcc EQU [017H]
42 0011 __pc EQU [016H]
42 0011 __pbc EQU [015H]
42 0011 __pb EQU [014H]
42 0011 __pac EQU [013H]
42 0011 __pa EQU [012H]
42 0011 __tmr1c EQU [011H]
42 0011 __tmr1l EQU [010H]
42 0011 __tmr1h EQU [0fH]
42 0011 __tmr0c EQU [0eH]
42 0011 __tmr0l EQU [0dH]
42 0011 __tmr0h EQU [0cH]
42 0011 __intc1 EQU [01eH]
42 0011 __intc0 EQU [0bH]
42 0011 __status EQU [0aH]
42 0011 __tblh EQU [08H]
42 0011 __tblp EQU [07H]
42 0011 __pcl EQU [06H]
42 0011 __acc EQU [05H]
42 0011 __bp EQU [04H]
42 0011 __mp1 EQU [03H]
42 0011 __iar1 EQU [02H]
42 0011 __mp0 EQU [01H]
42 0011 __iar0 EQU [00H]
42 0000 @MAIN .SECTION 'CODE'
42 0000 _main PROC
42 0000 begin:
; 41: Uchar cdle_net[] = {"www.cdle.net"};
41 0000 0F0D MOV A,13
41 0001 0080 E MOV RH,A
41 0002 0F00 R MOV A,OFFSET CR3
41 0003 0081 MOV [01H],A
41 0004 0F01 MOV A,1
41 0005 0080 E MOV T2,A
41 0006 ASB13:
41 0006 0700 E MOV A,T2
41 0007 0B00 R ADD A,OFFSET l_2
41 0008 2000 R CALL l_2
41 0009 0080 MOV [00H],A
41 000A 1481 INC [01H]
41 000B 1480 E INC T2
41 000C 1780 E SDZ RH
41 000D 2800 R JMP ASB13
; 42: Uchar email[] = {"pnzwzw@cdle.net"};
42 000E 0F10 MOV A,16
42 000F 0080 E MOV RH,A
42 0010 0F00 R MOV A,OFFSET CR4
42 0011 0081 MOV [01H],A
42 0012 0F01 MOV A,1
42 0013 0080 E MOV T2,A
42 0014 ASB14:
42 0014 0700 E MOV A,T2
42 0015 0B00 R ADD A,OFFSET l_3
文件:LCD.c 盛群编译器版本 2.86 页次3
42 0016 2000 R CALL l_3
42 0017 0080 MOV [00H],A
42 0018 1481 INC [01H]
42 0019 1480 E INC T2
42 001A 1780 E SDZ RH
文件:LCD.C 盛群编译器版本 2.86 页次3
42 001B 2800 R JMP ASB14
; 45: _pac=0;
45 001C 1F13 CLR __pac
; 46: temp=32;
46 001D 0F20 MOV A,020h
46 001E 0080 R MOV CR1,A
; 47: Delay400Ms(); //启动等待,等LCM讲入工作状态
47 001F 2000 R CALL _Delay400Ms
; 48: LCMInit(); //LCM初始化
48 0020 2000 R CALL _LCMInit
; 49: Delay5Ms(); //延时片刻(可不要)
49 0021 2000 R CALL _Delay5Ms
; 51: for(i=0;i<5;i++) Delay400Ms();
51 0022 1F00 R CLR CR2
51 0023 L4:
51 0023 2000 R CALL _Delay400Ms
51 0024 L5:
51 0024 1480 R INC CR2
51 0025 0F80 MOV A,80h
51 0026 0400 R XOR A,CR2
51 0027 0A85 SUB A,085h
51 0028 380A SNZ [0ah].0
51 0029 2800 R JMP L4
; 52: DisplayListChar(0, 0, cdle_net);
52 002A 0F00 MOV A,00h
52 002B 0080 R MOV DisplayListChar0,A
52 002C 0F00 MOV A,00h
52 002D 0080 R MOV DisplayListChar1,A
52 002E 0F00 R MOV A,OFFSET CR3
52 002F 0080 R MOV DisplayListChar2,A
52 0030 1F00 R CLR DisplayListChar2[1]
52 0031 2000 R CALL _DisplayListChar
; 53: DisplayListChar(0, 1, email);
53 0032 0F00 MOV A,00h
53 0033 0080 R MOV DisplayListChar0,A
53 0034 0F01 MOV A,01h
53 0035 0080 R MOV DisplayListChar1,A
53 0036 0F00 R MOV A,OFFSET CR4
53 0037 0080 R MOV DisplayListChar2,A
53 0038 1F00 R CLR DisplayListChar2[1]
53 0039 2000 R CALL _DisplayListChar
; 54: ReadDataLCM(); //测试用句无意义
54 003A 2000 R CALL _ReadDataLCM
54 003B 2800 R JMP L9
文件:LCD.c 盛群编译器版本 2.86 页次4
54 003C L8:
; 58: temp &= 0x7f; // 只显示ASCII字符
58 003C 3400 R CLR CR1.7
; 59: if (temp<32)temp=32; // 屏蔽控制字符,不予显示
59 003D 0700 R MOV A,CR1
59 003E 0A20 SUB A,020h
59 003F 3C0A SZ [0ah].0
59 0040 2800 R JMP L11
59 0041 0F20 MOV A,020h
59 0042 0080 R MOV CR1,A
文件:LCD.C 盛群编译器版本 2.86 页次4
59 0043 L11:
; 60: Display( temp++ );
60 0043 0700 R MOV A,CR1
60 0044 0080 R MOV b0_1,A
60 0045 1480 R INC CR1
60 0046 0700 R MOV A,b0_1
60 0047 0080 R MOV Display0,A
60 0048 2000 R CALL _Display
; 61: Delay400Ms();
61 0049 2000 R CALL _Delay400Ms
61 004A L9:
; 56: while(1)
56 004A 2800 R JMP L8
56 004B L1:
; 63: }
63 004B 2800 R JMP $
63 0000 00 LOCAL b0_1 DB ?
; 43: Uchar temp;
43 0001 00 LOCAL CR1 DB ? ; temp
; 44: int i;
44 0002 00 LOCAL CR2 DB ? ; i
; 41: Uchar cdle_net[] = {"www.cdle.net"};
41 0003 000D[ LOCAL CR3 DB 13 DUP (?) ; cdle_net
00
]
; 42: Uchar email[] = {"pnzwzw@cdle.net"};
42 0010 0010[ LOCAL CR4 DB 16 DUP (?) ; email
00
]
42 004C _main ENDP
; 67: {
67 0000 @WriteDataLCM .SECTION 'CODE'
67 0000 PUBLIC _WriteDataLCM
67 0000 _WriteDataLCM PROC
; 66: void WriteDataLCM(Uchar WDLCM)
66 0000 PUBLIC WriteDataLCM0
文件:LCD.c 盛群编译器版本 2.86 页次5
66 0000 00 LOCAL WriteDataLCM0 DB ? ; WDLCM
; 68: ReadStatusLCM(); //检测忙
68 0000 2000 R CALL _ReadStatusLCM
; 69: _pbc=0;
69 0001 1F15 CLR __pbc
; 70: _pb = WDLCM;
70 0002 0700 R MOV A,WriteDataLCM0
70 0003 0094 MOV __pb,A
; 71: LCM_RS = 1;
71 0004 3012 SET [012H].0
; 72: LCM_RW = 0;
72 0005 3492 CLR [012H].1
; 73: LCM_E = 0; //若晶振速度太高可以在这后加小的延时
73 0006 3512 CLR [012H].2
; 75: LCM_E = 1;
75 0007 3112 SET [012H].2
文件:LCD.C 盛群编译器版本 2.86 页次5
75 0008 L15:
75 0008 0003 RET
75 0001 00 LOCAL b0_2 DB ?
75 0009 _WriteDataLCM ENDP
; 80: {
80 0000 @WriteCommandLCM .SECTION 'CODE'
80 0000 PUBLIC _WriteCommandLCM
80 0000 _WriteCommandLCM PROC
; 79: void WriteCommandLCM(Uchar WCLCM, Uchar BusyC) //BusyC为0时忽略忙检测
79 0000 PUBLIC WriteCommandLCM0
79 0000 00 LOCAL WriteCommandLCM0 DB ? ; WCLCM
79 0000 PUBLIC WriteCommandLCM1
79 0001 00 LOCAL WriteCommandLCM1 DB ? ; BusyC
; 81: if (BusyC) ReadStatusLCM(); //根据需要检测忙
81 0000 1080 R SZ WriteCommandLCM1
81 0001 2800 R JMP L19
81 0002 2800 R JMP L17
81 0003 L19:
81 0003 2000 R CALL _ReadStatusLCM
81 0004 L17:
; 82: _pbc=0;
82 0004 1F15 CLR __pbc
; 83: _pb = WCLCM;
83 0005 0700 R MOV A,WriteCommandLCM0
83 0006 0094 MOV __pb,A
; 84: LCM_RS = 0;
84 0007 3412 CLR [012H].0
; 85: LCM_RW = 0;
文件:LCD.c 盛群编译器版本 2.86 页次6
85 0008 3492 CLR [012H].1
; 86: LCM_E = 0;
86 0009 3512 CLR [012H].2
; 88: LCM_E = 1;
88 000A 3112 SET [012H].2
88 000B L16:
88 000B 0003 RET
88 0002 00 LOCAL b0_3 DB ?
88 000C _WriteCommandLCM ENDP
; 93: {
93 0000 @ReadDataLCM .SECTION 'CODE'
93 0000 PUBLIC _ReadDataLCM
93 0000 _ReadDataLCM PROC
; 94: _pbc=0xff;
94 0000 1F95 SET __pbc
; 95: LCM_RS = 1;
95 0001 3012 SET [012H].0
; 96: LCM_RW = 1;
96 0002 3092 SET [012H].1
; 97: LCM_E = 0;
97 0003 3512 CLR [012H].2
; 99: LCM_E = 1;
99 0004 3112 SET [012H].2
; 100: return(_pb);
100 0005 0714 MOV A,__pb
文件:LCD.C 盛群编译器版本 2.86 页次6
100 0006 L20:
100 0006 0003 RET
100 0007 _ReadDataLCM ENDP
; 105: {
105 0000 @ReadStatusLCM .SECTION 'CODE'
105 0000 PUBLIC _ReadStatusLCM
105 0000 _ReadStatusLCM PROC
; 106: _pbc = 0xff;
106 0000 1F95 SET __pbc
; 107: LCM_RS = 0;
107 0001 3412 CLR [012H].0
; 108: LCM_RW = 1;
108 0002 3092 SET [012H].1
; 109: LCM_E = 0;
109 0003 3512 CLR [012H].2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -