找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3007|回复: 6
收起左侧

请问如何把一个C语言转换成汇编语言?

[复制链接]
ID:770640 发表于 2020-6-8 21:40 | 显示全部楼层 |阅读模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define KEY_IO P3
#define LCD_IO P0
sbit LCD_RS = P2^0;
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;
sbit LED = P2^4;
bit new_s, modify = 0;
char t0, sec = 50, min = 59, hour = 23;
char code LCD_line1[] = "Designed by clw";
char code LCD_line2[] = " Time: 00:00:00 ";
char Timer_buf[] = "23:59:50";
//---------------------------------------------------
void delay(uint z)
{
uint
x, y;
for(x = z; x > 0; x--)  
for(y = 100; y > 0; y--);
}
//---------------------------------------------------
void W_LCD_Com(uchar com) //写指令
{
LCD_RS = 0;
LCD_IO = com; // LCD_RS和R/W都为低电平时,写入指令
LCD_EN = 1;
delay(5); LCD_EN = 0; //用EN输入一个高脉冲
}
//---------------------------------------------------
void W_LCD_Dat(uchar dat) //写数据
{
LCD_RS = 1;
LCD_IO = dat; // LCD_RS为高、R/W为低时,写入数据
LCD_EN = 1;
delay(5); LCD_EN = 0; //用EN输入一个高脉冲
}
//---------------------------------------------------
void W_LCD_STR(uchar *s) //写字符串
{
while(*s)
W_LCD_Dat(*s++);
}
//---------------------------------------------------
void W_BUFF(void) //填写显示缓冲区
{
Timer_buf[7] = sec % 10 + 48; Timer_buf[6] = sec / 10 + 48;
Timer_buf[4] = min % 10 + 48; Timer_buf[3] = min / 10 + 48;
Timer_buf[1] = hour % 10 + 48;Timer_buf[0] = hour / 10 + 48;
W_LCD_Com(0xc0 + 7); W_LCD_STR(Timer_buf);
}
//---------------------------------------------------
uchar read_key(void)
{
uchar
x1, x2;
KEY_IO = 255;
x1 = KEY_IO;
if (x1 != 255) {
delay(100);  
x2 = KEY_IO;
if (x1 != x2)
return 255;  
while(x2 != 255) x2 = KEY_IO;
if
(x1 == 0x7f)
return 0;
else if (x1 == 0xbf)
return 1;
else if (x1 == 0xdf)
return 2;
else if (x1 == 0xef)
return 3;
else if (x1 == 0xf7)
return 4;
}
return 255;
}
//---------------------------------------------------
void Init()
{
LCD_RW = 0;
W_LCD_Com(0x38); delay(50);
W_LCD_Com(0x0c);
W_LCD_Com(0x06);
W_LCD_Com(0x01);
W_LCD_Com(0x80); W_LCD_STR(LCD_line1);
W_LCD_Com(0xC0); W_LCD_STR(LCD_line2);
TMOD = 0x01; //T0定时方式1
TH0 = 0x4c;
TR0 = 1; //启动T0
PT0 = 1; //高优先级, 以保证定时精度
ET0 = 1;
EA = 1;
}
//---------------------------------------------------
void main()
{
uint i, j;
uchar Key;
Init();
while(1)
{
//-------------------------------  
if (new_s) { //如果出现了新的一秒, 修改时间
new_s = 0;
sec++;
sec %= 60;
if(!sec)
{
min++;
min %= 60;  
if(!min)
{ hour++; hour %= 24;}
}
W_BUFF(); //写显示
//-------------------------------

}
//-------------------------------
Key = read_key(); //读出按键
switch(Key) {    //分别处理四个按键
case
0: modify = 1; break;
case
1: if(modify) {min++; min %= 60; W_BUFF(); break;}
case
2: if(modify) {hour++; hour %= 24; W_BUFF(); break;}
case
3: modify = 0; break;
} }
}
//---------------------------------------------------
void timer0(void) interrupt 1
//T0中断函数, 50ms执行一次
{
TH0 = 0x4c;
t0++; t0 %= 20; //20, 一秒钟
if(t0 == 0)
{new_s = 1; LED = ~LED;}
if(modify)
LED = 0;
}

回复

使用道具 举报

ID:517466 发表于 2020-6-9 06:55 | 显示全部楼层
反编译生成的hex文件,可以得到汇编语言
回复

使用道具 举报

ID:89217 发表于 2020-6-9 08:35 | 显示全部楼层
找个汇编大神 把你的文件重写成汇编的就好了
回复

使用道具 举报

ID:770640 发表于 2020-6-9 10:20 | 显示全部楼层
suncat0504 发表于 2020-6-9 06:55
反编译生成的hex文件,可以得到汇编语言

那请问下,我把HEX文件放进网上找的反编译软件,得到的汇编语言感觉有问题
Q0800:        MOV   R0,#7FH                      ;0800   78 7F
Q0802:        CLR   A                            ;0802   E4
Q0803:        MOV   @R0,A                        ;0803   F6
              DJNZ  R0,Q0803                     ;0804   D8 FD
              MOV   SP,#20H                      ;0806   75 81 20
              LJMP  Q0847                        ;0809   02 08 47
这里是不能出现Q0800:   这种形式的吧
因为我把反编译出来的汇编语言放进Keil里就报错了
回复

使用道具 举报

ID:401564 发表于 2020-6-9 14:05 | 显示全部楼层
这里是不能出现Q0800:   这种形式的吧
Q0800:     难道这不是标号吗?
你懂汇编吗?如果会用,那还不如果自己写
如果不会用,那有汇编代码又有什么用呢?
只要C代码可以完整的编译,在KEIL中运行仿真就会有汇编代码出来的了,但那是机器算法,不是人的算法,大程序很多无用代码的,没有良好汇编基础的人是看不明白的
回复

使用道具 举报

ID:739545 发表于 2020-6-9 14:12 | 显示全部楼层
keil直接反汇编
回复

使用道具 举报

ID:155507 发表于 2020-6-10 20:45 | 显示全部楼层
keil直接反汇编
  1. ;==========================================================================
  2. ;====Power Disassembler for MCS-51 and 6502================================
  3. ;==========================================================================
  4. ;   Writen by:

  5. ;==========================================================================
  6. ;===========Disassemble information========================================
  7. ;==========================================================================
  8. ;    File Name: C:\STC89C51\PROJ51\LCD1602\LCD035.hex
  9. ;      IC Body: MCS-51  
  10. ;         Date: 2020/6/9
  11. ;==========================================================================
  12.                   ORG  000H
  13. ;==========================================================================
  14. ;标号==============指令================================地址===机器码=======
  15. ;==========================================================================
  16. Q0000:             LJMP  Q000E                        ;0000   02 00 0E
  17. ;==========================================================================; FUNCTION _W_LCD_Com
  18. Q0003:             CLR   P2.0                         ;0003   C2 A0  LCD_RS
  19.                    LCALL Q0293                        ;0005   12 02 93
  20.                    CLR   P2.2                         ;0008   C2 A2  LCD_EN
  21.                    RET                                ;000A   22
  22. ;========================================================================== 的中断入口地址
  23. Q000B:                       LJMP  Q0173                        ;000B   02 01 73      ;timer0 interrupt
  24. ;==========================================================================
  25. Q000E:             MOV   R0,#7FH                      ;000E   78 7F
  26.                    CLR   A                            ;0010   E4
  27. Q0011:             MOV   @R0,A                        ;0011   F6
  28.                    DJNZ  R0,Q0011                     ;0012   D8 FD
  29.                    MOV   SP,#20H                      ;0014   75 81 20 ; assign stack at beginning
  30.                    LJMP  Q0055                        ;0017   02 00 55
  31. ;==========================================================================
  32. Q001A:             LJMP  Q009A                        ;001A   02 00 9A ; FUNCTION main (BEGIN)
  33. ;==========================================================================
  34. Q001D:             CLR   A                            ;001D   E4         STARTUP.A51
  35.                    MOVC  A,@A+DPTR                    ;001E   93
  36.                    INC   DPTR                         ;001F   A3
  37.                    MOV   R0,A                         ;0020   F8
  38. Q0021:             CLR   A                            ;0021   E4
  39.                    MOVC  A,@A+DPTR                    ;0022   93
  40.                    INC   DPTR                         ;0023   A3
  41.                    JC    Q0029                        ;0024   40 03
  42.                    MOV   @R0,A                        ;0026   F6
  43.                    SJMP  Q002A                        ;0027   80 01
  44. Q0029:             MOVX  @R0,A                        ;0029   F2
  45. Q002A:             INC   R0                           ;002A   08
  46.                    DJNZ  R7,Q0021                     ;002B   DF F4
  47.                    SJMP  Q0058                        ;002D   80 29
  48. Q002F:             CLR   A                            ;002F   E4
  49.                    MOVC  A,@A+DPTR                    ;0030   93
  50.                    INC   DPTR                         ;0031   A3
  51.                    MOV   R0,A                         ;0032   F8
  52.                    ANL   A,#07H                       ;0033   54 07
  53.                    ADD   A,#0CH                       ;0035   24 0C
  54.                    XCH   A,R0                         ;0037   C8
  55.                    CLR   C                            ;0038   C3
  56.                    RLC   A                            ;0039   33
  57.                    SWAP  A                            ;003A   C4
  58.                    ANL   A,#0FH                       ;003B   54 0F
  59.                    ORL   A,#20H                       ;003D   44 20
  60.                    XCH   A,R0                         ;003F   C8
  61.                    MOVC  A,@A+PC                      ;0040   83
  62.                    JC    Q0047                        ;0041   40 04
  63.                    CPL   A                            ;0043   F4
  64.                    ANL   A,@R0                        ;0044   56
  65.                    SJMP  Q0048                        ;0045   80 01
  66. Q0047:             ORL   A,@R0                        ;0047   46
  67. Q0048:             MOV   @R0,A                        ;0048   F6
  68.                    DJNZ  R7,Q002F                     ;0049   DF E4
  69.                    SJMP  Q0058                        ;004B   80 0B
  70.                    AJMP  Q0002                        ;004D   01 02
  71.                    INC   A                            ;004F   04
  72.                    INC   R0                           ;0050   08
  73.                    JBC   24H.0,Q0094                  ;0051   10 20 40
  74.                    SJMP  QFFE6                        ;0054   80 90
  75. Q0055:             MOV   DPTR,#02FFH                  ;0055   90 02 FF
  76. Q0058:             CLR   A                            ;0058   E4
  77.                    MOV   R6,#01H                      ;0059   7E 01
  78.                    MOVC  A,@A+DPTR                    ;005B   93
  79.                    JZ    Q001A                        ;005C   60 BC
  80.                    INC   DPTR                         ;005E   A3
  81.                    MOV   R7,A                         ;005F   FF
  82.                    ANL   A,#3FH                       ;0060   54 3F
  83.                    JNB   ACC.5,Q006E                  ;0062   30 E5 09
  84.                    ANL   A,#1FH                       ;0065   54 1F
  85.                    MOV   R6,A                         ;0067   FE
  86.                    CLR   A                            ;0068   E4
  87.                    MOVC  A,@A+DPTR                    ;0069   93
  88.                    INC   DPTR                         ;006A   A3
  89.                    JZ    Q006E                        ;006B   60 01
  90.                    INC   R6                           ;006D   0E
  91. Q006E:             XCH   A,R7                         ;006E   CF
  92.                    ANL   A,#0C0H                      ;006F   54 C0
  93.                    ADD   A,ACC                        ;0071   25 E0
  94.                    JZ    Q001D                        ;0073   60 A8
  95.                    JC    Q002F                        ;0075   40 B8
  96.                    CLR   A                            ;0077   E4
  97.                    MOVC  A,@A+DPTR                    ;0078   93
  98.                    INC   DPTR                         ;0079   A3
  99.                    MOV   R2,A                         ;007A   FA
  100.                    CLR   A                            ;007B   E4
  101.                    MOVC  A,@A+DPTR                    ;007C   93
  102.                    INC   DPTR                         ;007D   A3
  103.                    MOV   R0,A                         ;007E   F8
  104. Q007F:             CLR   A                            ;007F   E4
  105.                    MOVC  A,@A+DPTR                    ;0080   93
  106.                    INC   DPTR                         ;0081   A3
  107.                    XCH   A,R0                         ;0082   C8
  108.                    XCH   A,DPL                        ;0083   C5 82
  109.                    XCH   A,R0                         ;0085   C8
  110.                    XCH   A,R2                         ;0086   CA
  111.                    XCH   A,DPH                        ;0087   C5 83
  112.                    XCH   A,R2                         ;0089   CA
  113.                    MOVX  @DPTR,A                      ;008A   F0
  114.                    INC   DPTR                         ;008B   A3
  115.                    XCH   A,R0                         ;008C   C8
  116.                    XCH   A,DPL                        ;008D   C5 82
  117.                    XCH   A,R0                         ;008F   C8
  118.                    XCH   A,R2                         ;0090   CA
  119.                    XCH   A,DPH                        ;0091   C5 83
  120.                    XCH   A,R2                         ;0093   CA
  121. Q0094:             DJNZ  R7,Q007F                     ;0094   DF E9
  122.                    DJNZ  R6,Q007F                     ;0096   DE E7
  123.                    SJMP  Q0058                        ;0098   80 BE
  124. ;========================================================================== ; FUNCTION main (BEGIN)
  125. Q009A:             LCALL Q01CB                        ;009A   12 01 CB
  126. Q009D:             JNB   20H.1,Q00D4                  ;009D   30 01 34
  127.                    CLR   20H.1                        ;00A0   C2 01    CLR     new_s
  128.                    INC   12H                          ;00A2   05 12    INC     sec
  129.                    MOV   A,12H                        ;00A4   E5 12
  130.                    MOV   B,#3CH                       ;00A6   75 F0 3C
  131.                    LCALL Q0258                        ;00A9   12 02 58
  132.                    MOV   12H,B                        ;00AC   85 F0 12
  133.                    MOV   A,12H                        ;00AF   E5 12
  134.                    JNZ   Q00D1                        ;00B1   70 1E
  135.                    INC   14H                          ;00B3   05 14
  136.                    MOV   A,14H                        ;00B5   E5 14
  137.                    MOV   B,#3CH                       ;00B7   75 F0 3C
  138.                    LCALL Q0258                        ;00BA   12 02 58
  139.                    MOV   14H,B                        ;00BD   85 F0 14
  140.                    MOV   A,14H                        ;00C0   E5 14
  141.                    JNZ   Q00D1                        ;00C2   70 0D
  142.                    INC   13H                          ;00C4   05 13
  143.                    MOV   A,13H                        ;00C6   E5 13
  144.                    MOV   B,#18H                       ;00C8   75 F0 18
  145.                    LCALL Q0258                        ;00CB   12 02 58
  146.                    MOV   13H,B                        ;00CE   85 F0 13
  147. Q00D1:             LCALL Q0114                        ;00D1   12 01 14
  148. Q00D4:             LCALL Q0216                        ;00D4   12 02 16
  149.                    MOV   A,R7                         ;00D7   EF
  150.                    DEC   A                            ;00D8   14
  151.                    JZ    Q00E9                        ;00D9   60 0E
  152.                    DEC   A                            ;00DB   14
  153.                    JZ    Q00FB                        ;00DC   60 1D
  154.                    DEC   A                            ;00DE   14
  155.                    JZ    Q0110                        ;00DF   60 2F
  156.                    ADD   A,#03H                       ;00E1   24 03
  157.                    JNZ   Q009D                        ;00E3   70 B8
  158.                    SETB  20H.0                        ;00E5   D2 00
  159.                    SJMP  Q009D                        ;00E7   80 B4
  160. ;==========================================================================
  161. Q00E9:             JNB   20H.0,Q00FB                  ;00E9   30 00 0F
  162.                    INC   14H                          ;00EC   05 14
  163.                    MOV   A,14H                        ;00EE   E5 14
  164.                    MOV   B,#3CH                       ;00F0   75 F0 3C
  165.                    LCALL Q0258                        ;00F3   12 02 58
  166.                    MOV   14H,B                        ;00F6   85 F0 14
  167.                    SJMP  Q010B                        ;00F9   80 10
  168. Q00FB:             JNB   20H.0,Q0110                  ;00FB   30 00 12
  169.                    INC   13H                          ;00FE   05 13
  170.                    MOV   A,13H                        ;0100   E5 13
  171.                    MOV   B,#18H                       ;0102   75 F0 18
  172.                    LCALL Q0258                        ;0105   12 02 58
  173.                    MOV   13H,B                        ;0108   85 F0 13
  174. Q010B:             LCALL Q0114                        ;010B   12 01 14
  175.                    SJMP  Q009D                        ;010E   80 8D
  176. Q0110:             CLR   20H.0                        ;0110   C2 00
  177.                    SJMP  Q009D                        ;0112   80 89
  178. ;========================================================================== ; FUNCTION W_BUFF
  179. Q0114:             MOV   A,12H                        ;0114   E5 12
  180.                    MOV   B,#0AH                       ;0116   75 F0 0A
  181.                    LCALL Q0258                        ;0119   12 02 58
  182.                    MOV   R7,B                         ;011C   AF F0
  183.                    MOV   A,R7                         ;011E   EF
  184.                    ADD   A,#30H                       ;011F   24 30
  185.                    MOV   0FH,A                        ;0121   F5 0F
  186.                    MOV   A,12H                        ;0123   E5 12
  187.                    MOV   B,#0AH                       ;0125   75 F0 0A
  188.                    LCALL Q0258                        ;0128   12 02 58
  189.                    ADD   A,#30H                       ;012B   24 30
  190.                    MOV   0EH,A                        ;012D   F5 0E
  191.                    MOV   A,14H                        ;012F   E5 14
  192.                    MOV   B,#0AH                       ;0131   75 F0 0A
  193.                    LCALL Q0258                        ;0134   12 02 58
  194.                    MOV   R7,B                         ;0137   AF F0
  195.                    MOV   A,R7                         ;0139   EF
  196.                    ADD   A,#30H                       ;013A   24 30
  197.                    MOV   0CH,A                        ;013C   F5 0C
  198.                    MOV   A,14H                        ;013E   E5 14
  199.                    MOV   B,#0AH                       ;0140   75 F0 0A
  200.                    LCALL Q0258                        ;0143   12 02 58
  201.                    ADD   A,#30H                       ;0146   24 30
  202.                    MOV   0BH,A                        ;0148   F5 0B
  203.                    MOV   A,13H                        ;014A   E5 13
  204.                    MOV   B,#0AH                       ;014C   75 F0 0A
  205.                    LCALL Q0258                        ;014F   12 02 58
  206.                    MOV   R7,B                         ;0152   AF F0
  207.                    MOV   A,R7                         ;0154   EF
  208.                    ADD   A,#30H                       ;0155   24 30
  209.                    MOV   09H,A                        ;0157   F5 09
  210.                    MOV   A,13H                        ;0159   E5 13
  211.                    MOV   B,#0AH                       ;015B   75 F0 0A
  212.                    LCALL Q0258                        ;015E   12 02 58
  213.                    ADD   A,#30H                       ;0161   24 30
  214.                    MOV   08H,A                        ;0163   F5 08
  215.                    MOV   R7,#0C7H                     ;0165   7F C7
  216.                    LCALL Q0003                        ;0167   12 00 03 _W_LCD_Com
  217.                    MOV   R3,#00H                      ;016A   7B 00
  218.                    MOV   R2,#00H                      ;016C   7A 00
  219.                    MOV   R1,#08H                      ;016E   79 08
  220.                    LJMP  Q02B9                        ;0170   02 02 B9
  221. ;========================================================================== ; FUNCTION timer0
  222. Q0173:        PUSH  ACC                          ;0173   C0 E0
  223.               PUSH  B                            ;0175   C0 F0
  224.               PUSH  DPH                          ;0177   C0 83
  225.               PUSH  DPL                          ;0179   C0 82
  226.               PUSH  PSW                          ;017B   C0 D0
  227.               MOV   PSW,#00H                     ;017D   75 D0 00
  228.               PUSH  00H                          ;0180   C0 00
  229.               PUSH  01H                          ;0182   C0 01
  230.               PUSH  02H                          ;0184   C0 02
  231.               PUSH  03H                          ;0186   C0 03
  232.               PUSH  04H                          ;0188   C0 04
  233.               PUSH  05H                          ;018A   C0 05
  234.               PUSH  06H                          ;018C   C0 06
  235.               PUSH  07H                          ;018E   C0 07
  236.               MOV   TH0,#4CH                     ;0190   75 8C 4C
  237.               MOV   TL0,#00H                     ;0193   75 8A 00
  238.               INC   11H                          ;0196   05 11
  239.               MOV   A,11H                        ;0198   E5 11
  240.               MOV   B,#14H                       ;019A   75 F0 14
  241.               LCALL Q0258                        ;019D   12 02 58
  242.               MOV   11H,B                        ;01A0   85 F0 11
  243.               MOV   A,11H                        ;01A3   E5 11
  244.               JNZ   Q01AB                        ;01A5   70 04
  245.               SETB  20H.1                        ;01A7   D2 01
  246.               CPL   P2.4                         ;01A9   B2 A4
  247. Q01AB:        JNB   20H.0,Q01B0                  ;01AB   30 00 02
  248.               CLR   P2.4                         ;01AE   C2 A4
  249. Q01B0:        POP   07H                          ;01B0   D0 07
  250.               POP   06H                          ;01B2   D0 06
  251.               POP   05H                          ;01B4   D0 05
  252.               POP   04H                          ;01B6   D0 04
  253.               POP   03H                          ;01B8   D0 03
  254.               POP   02H                          ;01BA   D0 02
  255.               POP   01H                          ;01BC   D0 01
  256.               POP   00H                          ;01BE   D0 00
  257.               POP   PSW                          ;01C0   D0 D0
  258.               POP   DPL                          ;01C2   D0 82
  259.               POP   DPH                          ;01C4   D0 83
  260.               POP   B                            ;01C6   D0 F0
  261.               POP   ACC                          ;01C8   D0 E0
  262.               RETI                               ;01CA   32
  263. ;========================================================================== ; FUNCTION Init
  264. Q01CB:             CLR   P2.1                         ;01CB   C2 A1
  265.                    MOV   R7,#38H                      ;01CD   7F 38
  266.                    LCALL Q0003                        ;01CF   12 00 03  _W_LCD_Com
  267.                    MOV   R7,#32H                      ;01D2   7F 32
  268.                    MOV   R6,#00H                      ;01D4   7E 00
  269.                    LCALL Q029B                        ;01D6   12 02 9B  _delay
  270.                    MOV   R7,#0CH                      ;01D9   7F 0C
  271.                    LCALL Q0003                        ;01DB   12 00 03 _W_LCD_Com
  272.                    MOV   R7,#06H                      ;01DE   7F 06
  273.                    LCALL Q0003                        ;01E0   12 00 03 _W_LCD_Com
  274.                    MOV   R7,#01H                      ;01E3   7F 01
  275.                    LCALL Q0003                        ;01E5   12 00 03 _W_LCD_Com
  276.                    MOV   R7,#80H                      ;01E8   7F 80
  277.                    LCALL Q0003                        ;01EA   12 00 03 _W_LCD_Com
  278.                    MOV   R3,#0FFH                     ;01ED   7B FF
  279.                    MOV   R2,#02H                      ;01EF   7A 02
  280.                    MOV   R1,#0DEH                     ;01F1   79 DE
  281.                    LCALL Q02B9                        ;01F3   12 02 B9 _W_LCD_STR
  282.                    MOV   R7,#0C0H                     ;01F6   7F C0
  283.                    LCALL Q0003                        ;01F8   12 00 03
  284.                    MOV   R3,#0FFH                     ;01FB   7B FF
  285.                    MOV   R2,#02H                      ;01FD   7A 02
  286.                    MOV   R1,#0EEH                     ;01FF   79 EE
  287.                    LCALL Q02B9                        ;0201   12 02 B9 _W_LCD_STR
  288.                    ORL   TMOD,#01H                    ;0204   43 89 01
  289.                    MOV   TH0,#4CH                     ;0207   75 8C 4C
  290.                    CLR   A                            ;020A   E4
  291.                    MOV   TL0,A                        ;020B   F5 8A
  292.                    SETB  TR0                          ;020D   D2 8C
  293.                    SETB  PT0                          ;020F   D2 B9
  294.                    SETB  ET0                          ;0211   D2 A9
  295.                    SETB  EA                           ;0213   D2 AF
  296.                    RET                                ;0215   22
  297. ;========================================================================== ; FUNCTION read_key
  298. Q0216:             MOV   P3,#0FFH                     ;0216   75 B0 FF
  299.                    MOV   R3,P3                        ;0219   AB B0
  300.                    MOV   A,R3                         ;021B   EB
  301.                    CPL   A                            ;021C   F4
  302.                    JZ    Q0255                        ;021D   60 36
  303.                    MOV   R7,#64H                      ;021F   7F 64
  304.                    MOV   R6,#00H                      ;0221   7E 00
  305.                    LCALL Q029B                        ;0223   12 02 9B _W_LCD_STR
  306.                    MOV   R7,P3                        ;0226   AF B0
  307.                    MOV   A,R3                         ;0228   EB
  308.                    XRL   A,R7                         ;0229   6F
  309.                    JZ    Q022F                        ;022A   60 03
  310.                    MOV   R7,#0FFH                     ;022C   7F FF
  311.                    RET                                ;022E   22
  312. ;==========================================================================
  313. Q022F:             MOV   A,R7                         ;022F   EF
  314.                    CPL   A                            ;0230   F4
  315.                    JZ    Q0237                        ;0231   60 04
  316.                    MOV   R7,P3                        ;0233   AF B0
  317.                    SJMP  Q022F                        ;0235   80 F8
  318. Q0237:             CJNE  R3,#7FH,Q023D                ;0237   BB 7F 03
  319.                    MOV   R7,#00H                      ;023A   7F 00
  320.                    RET                                ;023C   22
  321. ;==========================================================================
  322. Q023D:             CJNE  R3,#0BFH,Q0243               ;023D   BB BF 03
  323.                    MOV   R7,#01H                      ;0240   7F 01
  324.                    RET                                ;0242   22
  325. ;==========================================================================
  326. Q0243:             CJNE  R3,#0DFH,Q0249               ;0243   BB DF 03
  327.                    MOV   R7,#02H                      ;0246   7F 02
  328.                    RET                                ;0248   22
  329. ;==========================================================================
  330. Q0249:             CJNE  R3,#0EFH,Q024F               ;0249   BB EF 03
  331.                    MOV   R7,#03H                      ;024C   7F 03
  332.                    RET                                ;024E   22
  333. ;==========================================================================
  334. Q024F:             CJNE  R3,#0F7H,Q0255               ;024F   BB F7 03
  335.                    MOV   R7,#04H                      ;0252   7F 04
  336.                    RET                                ;0254   22
  337. ;==========================================================================
  338. Q0255:             MOV   R7,#0FFH                     ;0255   7F FF
  339.                    RET                                ;0257   22
  340. ;========================================================================== 运算符 %
  341. Q0258:             CLR   F0                           ;0258   C2 D5
  342.                    JNB   F7H,Q0264                    ;025A   30 F7 07
  343.                    CPL   F0                           ;025D   B2 D5
  344.                    XRL   B,#0FFH                      ;025F   63 F0 FF
  345.                    INC   B                            ;0262   05 F0
  346. Q0264:             JNB   ACC.7,Q0273                  ;0264   30 E7 0C
  347.                    CPL   F0                           ;0267   B2 D5
  348.                    CPL   A                            ;0269   F4
  349.                    INC   A                            ;026A   04
  350.                    DIV   AB                           ;026B   84
  351.                    XRL   B,#0FFH                      ;026C   63 F0 FF
  352.                    INC   B                            ;026F   05 F0
  353.                    SJMP  Q0274                        ;0271   80 01
  354. Q0273:             DIV   AB                           ;0273   84
  355. Q0274:             JNB   F0,Q0279                     ;0274   30 D5 02
  356.                    CPL   A                            ;0277   F4
  357.                    INC   A                            ;0278   04
  358. Q0279:             RET                                ;0279   22
  359. ;==========================================================================
  360. Q027A:             CJNE  R3,#01H,Q0283                ;027A   BB 01 06
  361.                    MOV   DPL,R1                       ;027D   89 82
  362.                    MOV   DPH,R2                       ;027F   8A 83
  363.                    MOVX  A,@DPTR                      ;0281   E0
  364.                    RET                                ;0282   22
  365. ;==========================================================================
  366. Q0283:             JNC   Q0287                        ;0283   50 02
  367.                    MOV   A,@R1                        ;0285   E7
  368.                    RET                                ;0286   22
  369. ;==========================================================================
  370. Q0287:             CJNE  R3,#0FEH,Q028C               ;0287   BB FE 02
  371.                    MOVX  A,@R1                        ;028A   E3
  372.                    RET                                ;028B   22
  373. ;==========================================================================
  374. Q028C:             MOV   DPL,R1                       ;028C   89 82
  375.                    MOV   DPH,R2                       ;028E   8A 83
  376.                    CLR   A                            ;0290   E4
  377.                    MOVC  A,@A+DPTR                    ;0291   93
  378.                    RET                                ;0292   22
  379. ;==========================================================================
  380. Q0293:             MOV   P0,R7                        ;0293   8F 80 ; FUNCTION _delay
  381.                    SETB  P2.2                         ;0295   D2 A2
  382.                    MOV   R7,#05H                      ;0297   7F 05
  383.                    MOV   R6,#00H                      ;0299   7E 00
  384. Q029B:             SETB  C                            ;029B   D3
  385.                    MOV   A,R7                         ;029C   EF
  386.                    SUBB  A,#00H                       ;029D   94 00
  387.                    MOV   A,R6                         ;029F   EE
  388.                    SUBB  A,#00H                       ;02A0   94 00
  389.                    JC    Q02B8                        ;02A2   40 14
  390.                    MOV   R5,#64H                      ;02A4   7D 64
  391.                    MOV   R4,#00H                      ;02A6   7C 00
  392. Q02A8:             MOV   A,R5                         ;02A8   ED
  393.                    DEC   R5                           ;02A9   1D
  394.                    JNZ   Q02AD                        ;02AA   70 01
  395.                    DEC   R4                           ;02AC   1C
  396. Q02AD:             MOV   A,R5                         ;02AD   ED
  397.                    ORL   A,R4                         ;02AE   4C
  398.                    JNZ   Q02A8                        ;02AF   70 F7
  399.                    MOV   A,R7                         ;02B1   EF
  400.                    DEC   R7                           ;02B2   1F
  401.                    JNZ   Q029B                        ;02B3   70 E6
  402.                    DEC   R6                           ;02B5   1E
  403.                    SJMP  Q029B                        ;02B6   80 E3
  404. Q02B8:             RET                                ;02B8   22
  405. ;========================================================================== ; FUNCTION _W_LCD_STR
  406. Q02B9:             MOV   15H,R3                       ;02B9   8B 15
  407.                    MOV   16H,R2                       ;02BB   8A 16
  408.                    MOV   17H,R1                       ;02BD   89 17
  409. Q02BF:             MOV   R3,15H                       ;02BF   AB 15
  410.                    MOV   R2,16H                       ;02C1   AA 16
  411.                    MOV   R1,17H                       ;02C3   A9 17
  412.                    LCALL Q027A                        ;02C5   12 02 7A
  413.                    JZ    Q02DD                        ;02C8   60 13
  414.                    INC   17H                          ;02CA   05 17
  415.                    MOV   A,17H                        ;02CC   E5 17
  416.                    JNZ   Q02D2                        ;02CE   70 02
  417.                    INC   16H                          ;02D0   05 16
  418. Q02D2:             DEC   A                            ;02D2   14
  419.                    MOV   R1,A                         ;02D3   F9
  420.                    LCALL Q027A                        ;02D4   12 02 7A
  421.                    MOV   R7,A                         ;02D7   FF
  422.                    LCALL Q0316                        ;02D8   12 03 16
  423.                    SJMP  Q02BF                        ;02DB   80 E2
  424. Q02DD:             RET                                ;02DD   22
  425. ;========================================================================== 变量
  426. Q02DE:                 DB  44H, 65H, 73H, 69H, 67H, 6EH, 65H, 64H        ;Designed
  427. Q02E6:                 DB  20H, 62H, 79H, 20H, 63H, 6CH, 77H, 00H        ;.by.clw.
  428. Q02EE:                 DB  20H, 54H, 69H, 6DH, 65H, 3AH, 20H, 30H        ;.Time:.0
  429. Q02F6:                 DB  30H, 3AH, 30H, 30H, 3AH, 30H, 30H, 20H        ;0:00:00.
  430. Q02FE:                 DB  00H,0C1H, 00H, 01H, 12H, 32H, 01H, 14H        ;.....2..
  431. Q0306:                 DB  3BH, 01H, 13H, 17H, 09H, 08H, 32H, 33H        ;;.....23
  432. Q030E:                 DB  3AH, 35H, 39H, 3AH, 35H, 30H, 00H, 00H        ;:59:50..
  433. ;========================================================================== ; FUNCTION _W_LCD_Dat
  434. Q0316:             SETB  P2.0                         ;0316   D2 A0
  435.                    LCALL Q0293                        ;0318   12 02 93
  436.                    CLR   P2.2                         ;031B   C2 A2
  437.                    RET                                ;031D   22
  438. ;==========================================================================

  439. END
复制代码





LCD35.zip

11.8 KB, 下载次数: 4

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表