⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.ls1

📁 some reference exercise of C language
💻 LS1
📖 第 1 页 / 共 4 页
字号:
                     431     ;       LCD_RS = 0;
                     432                             ; SOURCE LINE # 90
0000 C2A6            433             CLR     P2_6
                     434     ;       WriteLCD(command);
                     435                             ; SOURCE LINE # 91
0002 020000   F      436             LJMP    _WriteLCD
                     437     ; END OF _WriteCommand
                     438     
                     439     ; }
                     440     ; void WriteCharacter(unsigned char character)
                     441     
----                 442             RSEG  ?PR?_WriteCharacter?MAIN
0000                 443     _WriteCharacter:
                     444             USING   0
                     445                             ; SOURCE LINE # 93
                     446     ;---- Variable 'character?745' assigned to Register 'R7' ----
                     447     ; {
                     448                             ; SOURCE LINE # 94
                     449     ;       LCD_RS = 1;
A51 MACRO ASSEMBLER  MAIN                                                                 11/27/2006 23:50:26 PAGE     8

                     450                             ; SOURCE LINE # 95
0000 D2A6            451             SETB    P2_6
                     452     ;       WriteLCD(character);
                     453                             ; SOURCE LINE # 96
0002 020000   F      454             LJMP    _WriteLCD
                     455     ; END OF _WriteCharacter
                     456     
                     457     ; }
                     458     ; void SendString2LCD(unsigned char code *p)
                     459     
----                 460             RSEG  ?PR?_SendString2LCD?MAIN
0000                 461     _SendString2LCD:
                     462             USING   0
                     463                             ; SOURCE LINE # 98
0000 8E00     F      464             MOV     p?846,R6
0002 8F00     F      465             MOV     p?846+01H,R7
                     466     ; {
                     467                             ; SOURCE LINE # 99
                     468     ;       unsigned char i=0;
                     469                             ; SOURCE LINE # 100
                     470     ;---- Variable 'i?847' assigned to Register 'R1' ----
0004 E4              471             CLR     A
0005 F9              472             MOV     R1,A
0006                 473     ?C0015:
                     474     ;       while(p[i]!=0)
                     475                             ; SOURCE LINE # 101
0006 E500     F      476             MOV     A,p?846+01H
0008 29              477             ADD     A,R1
0009 F582            478             MOV     DPL,A
000B E4              479             CLR     A
000C 3500     F      480             ADDC    A,p?846
000E F583            481             MOV     DPH,A
0010 E4              482             CLR     A
0011 93              483             MOVC    A,@A+DPTR
0012 FF              484             MOV     R7,A
0013 600D            485             JZ      ?C0017
                     486     ;       {
                     487                             ; SOURCE LINE # 102
                     488     ;               WriteCharacter(p[i]);
                     489                             ; SOURCE LINE # 103
0015 120000   F      490             LCALL   _WriteCharacter
                     491     ;               i++;
                     492                             ; SOURCE LINE # 104
0018 09              493             INC     R1
                     494     ;               Delay(200);
                     495                             ; SOURCE LINE # 105
0019 7FC8            496             MOV     R7,#0C8H
001B 7E00            497             MOV     R6,#00H
001D 120000   F      498             LCALL   _Delay
                     499     ;       }
                     500                             ; SOURCE LINE # 106
0020 80E4            501             SJMP    ?C0015
                     502     ; }
                     503                             ; SOURCE LINE # 107
0022                 504     ?C0017:
0022 22              505             RET     
                     506     ; END OF _SendString2LCD
                     507     
                     508     ; void Convert(void)
                     509     
----                 510             RSEG  ?PR?Convert?MAIN
0000                 511     Convert:
                     512             USING   0
                     513                             ; SOURCE LINE # 108
                     514     ; {
                     515                             ; SOURCE LINE # 109
A51 MACRO ASSEMBLER  MAIN                                                                 11/27/2006 23:50:26 PAGE     9

                     516     ;       ADC_CS = 0;
                     517                             ; SOURCE LINE # 110
0000 C2B7            518             CLR     P3_7
                     519     ;       DelayShort();
                     520                             ; SOURCE LINE # 111
0002 120000   F      521             LCALL   DelayShort
                     522     ;       ADC_WR = 0;
                     523                             ; SOURCE LINE # 112
0005 C2A7            524             CLR     P2_7
                     525     ;       DelayShort();
                     526                             ; SOURCE LINE # 113
0007 120000   F      527             LCALL   DelayShort
                     528     ;       ADC_WR = 1;
                     529                             ; SOURCE LINE # 114
000A D2A7            530             SETB    P2_7
                     531     ;       DelayShort();
                     532                             ; SOURCE LINE # 115
000C 120000   F      533             LCALL   DelayShort
                     534     ;       ADC_CS = 1;
                     535                             ; SOURCE LINE # 116
000F D2B7            536             SETB    P3_7
                     537     ; 
                     538     ;       // Tre cho chuyen doi xong
                     539     ;       Delay(10);
                     540                             ; SOURCE LINE # 119
0011 7F0A            541             MOV     R7,#0AH
0013 7E00            542             MOV     R6,#00H
0015 120000   F      543             LCALL   _Delay
                     544     ;       // Chuyen Port thanh cong vao de chuan bi doc du lieu
                     545     ;       ADC_DATA = 0xFF;
                     546                             ; SOURCE LINE # 121
0018 7580FF          547             MOV     P0,#0FFH
                     548     ;       ADC_CS = 0;
                     549                             ; SOURCE LINE # 122
001B C2B7            550             CLR     P3_7
                     551     ;       DelayShort();
                     552                             ; SOURCE LINE # 123
001D 120000   F      553             LCALL   DelayShort
                     554     ;       ADC_RD = 0;
                     555                             ; SOURCE LINE # 124
0020 C2A6            556             CLR     P2_6
                     557     ;       DelayShort();
                     558                             ; SOURCE LINE # 125
0022 120000   F      559             LCALL   DelayShort
                     560     ;       // Doc du lieu vao
                     561     ;       voltage = ADC_DATA;
                     562                             ; SOURCE LINE # 127
0025 858000   F      563             MOV     voltage,P0
                     564     ;       ADC_RD = 1;
                     565                             ; SOURCE LINE # 128
0028 D2A6            566             SETB    P2_6
                     567     ;       DelayShort();
                     568                             ; SOURCE LINE # 129
002A 120000   F      569             LCALL   DelayShort
                     570     ;       ADC_CS = 1;
                     571                             ; SOURCE LINE # 130
002D D2B7            572             SETB    P3_7
                     573     ; }
                     574                             ; SOURCE LINE # 131
002F 22              575             RET     
                     576     ; END OF Convert
                     577     
                     578     ; void Calculate(void)
                     579     
----                 580             RSEG  ?PR?Calculate?MAIN
0000                 581     Calculate:
A51 MACRO ASSEMBLER  MAIN                                                                 11/27/2006 23:50:26 PAGE    10

                     582             USING   0
                     583                             ; SOURCE LINE # 132
                     584     ; {
                     585                             ; SOURCE LINE # 133
                     586     ;       unsigned int temp;
                     587     ;       // tach lay phan nguyen va phan thap phan
                     588     ;       temp = voltage*10/51;
                     589                             ; SOURCE LINE # 136
0000 E500     F      590             MOV     A,voltage
0002 75F00A          591             MOV     B,#0AH
0005 A4              592             MUL     AB
0006 75F033          593             MOV     B,#033H
0009 84              594             DIV     AB
                     595     ;---- Variable 'temp?1048' assigned to Register 'R2/R3' ----
000A FB              596             MOV     R3,A
                     597     ;       digit1 = (unsigned char)(temp/10);
                     598                             ; SOURCE LINE # 137
000B 7C00            599             MOV     R4,#00H
000D 7D0A            600             MOV     R5,#0AH
000F FF              601             MOV     R7,A
0010 7E00            602             MOV     R6,#00H
0012 120000   F      603             LCALL   ?C?UIDIV
0015 8F00     F      604             MOV     digit1,R7
                     605     ;       digit2 = (unsigned char)(temp%10);
                     606                             ; SOURCE LINE # 138
0017 7E00            607             MOV     R6,#00H
0019 AF03            608             MOV     R7,AR3
001B 7C00            609             MOV     R4,#00H
001D 7D0A            610             MOV     R5,#0AH
001F 120000   F      611             LCALL   ?C?UIDIV
0022 8D00     F      612             MOV     digit2,R5
                     613     ;       // chuyen sang ma ASCII
                     614     ;       digit1 = digit1 + 0x30;
                     615                             ; SOURCE LINE # 140
0024 7430            616             MOV     A,#030H
0026 2500     F      617             ADD     A,digit1
0028 F500     F      618             MOV     digit1,A
                     619     ;       digit2 = digit2 + 0x30;
                     620                             ; SOURCE LINE # 141
002A 7430            621             MOV     A,#030H
002C 2500     F      622             ADD     A,digit2
002E F500     F      623             MOV     digit2,A
                     624     ; }
                     625                             ; SOURCE LINE # 142
0030 22              626             RET     
                     627     ; END OF Calculate
                     628     
                     629     ; void DisplayVoltage(void)
                     630     
----                 631             RSEG  ?PR?DisplayVoltage?MAIN
0000                 632     DisplayVoltage:
                     633             USING   0
                     634                             ; SOURCE LINE # 143
                     635     ; {
                     636                             ; SOURCE LINE # 144
                     637     ;       // Dua con tro den vi tri can hien thi
                     638     ;       WriteCommand(0xCD);
                     639                             ; SOURCE LINE # 146
0000 7FCD            640             MOV     R7,#0CDH
0002 120000   F      641             LCALL   _WriteCommand
                     642     ;       WriteCharacter(digit1);
                     643                             ; SOURCE LINE # 147
0005 AF00     F      644             MOV     R7,digit1
0007 120000   F      645             LCALL   _WriteCharacter
                     646     ;       WriteCharacter('.');
                     647                             ; SOURCE LINE # 148
A51 MACRO ASSEMBLER  MAIN                                                                 11/27/2006 23:50:26 PAGE    11

000A 7F2E            648             MOV     R7,#02EH
000C 120000   F      649             LCALL   _WriteCharacter
                     650     ;       WriteCharacter(digit2);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -