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

📄 lichengbiao.lst

📁 电动自行车里程系统。 安装于电动自行车上
💻 LST
📖 第 1 页 / 共 2 页
字号:
8051 Assembler           Version 1.00   12/28/108 13:46:38    Page 1
C:\Documents and Settings\Administrator\桌面\新建文件夹 (2)\蒋富强\lichengbiao.a51



    1 0000              RS BIT P2.0
    2 0000              RW BIT P2.1
    3 0000              E  BIT P2.2
    4 0000              SDA   BIT P3.1
    5 0000              SCL   BIT P3.0
    6 0000              DATE1 EQU 60H                     ;存储要显示的个位数
    7 0000              DATE2 EQU 61H                     ;存储要显示的十位数
    8 0000              DATE3 EQU 62H                     ;存储要显示的百位数
    9 0000              DATE4 EQU 63H                     ;存储要显示的千位数
   10 0000              DATEN EQU 78H                     ;存放写入LCD的数据的个数
   11 0000              DATE  EQU 79H                     ;存放写入LCD的数据
   12 0000              ;***************************************************************
   13 0000              ;主程序MAIN
   14 0000              ;***************************************************************
   15 0000                     
   16 0000                      ORG 0000H
   17 0000 0130                AJMP MAIN
   18 0030                      ORG 0030H
   19 0030 D2A5         MAIN:  SETB P2.5                   ;将P2.5置高电平
   20 0032 30A579               JNB P2.5,qinling           ;由p2.5判断是否清零LCD 
   21 0035 755000               MOV 50H,#00H               ;读24c02直径
   22 0038 755101               MOV 51H,#01H
   23 003B 120087             LCALL AT2401RC
   24 003E BF0002              CJNE R7,#0,DUSHU
   25 0041 0130                AJMP MAIN
   26 0043 8F70         DUSHU:  MOV 70H,R7
   27 0045 755000               MOV 50H,#00H               ;读24c02百米脉冲数
   28 0048 755102               MOV 51H,#02H
   29 004B 120087             LCALL AT2401RC
   30 004E 8F71                 MOV 71H,R7 
   31 0050 755000               MOV 50H,#00H               ;读24c02里程个位数
   32 0053 755120               MOV 51H,#20H
   33 0056 120087             LCALL AT2401RC
   34 0059 8F60                 MOV DATE1,R7
   35 005B 755000               MOV 50H,#00H               ;读24c02里程十位数
   36 005E 755121               MOV 51H,#21H
   37 0061 120087             LCALL AT2401RC
   38 0064 8F61                 MOV DATE2,R7
   39 0066 755000               MOV 50H,#00H                ;读24c02里程百位数
   40 0069 755122               MOV 51H,#22H
   41 006C 120087             LCALL AT2401RC
   42 006F 8F62                 MOV DATE3,R7
   43 0071 755000               MOV 50H,#00H                ;读24c02里程千位数
   44 0074 755123               MOV 51H,#23H
   45 0077 120087             LCALL AT2401RC
   46 007A 8F63                 MOV DATE4,R7
   47 007C 514C               ACALL LCDINT
   48 007E 317D         BACKM:ACALL JISHU                  ;调用收到脉冲并进行处理子程
   49 0080 31F4               ACALL LCDXS
   50 0082 30A529               JNB P2.5,qinling
   51 0085 017E                AJMP BACKM
   52 0087              ;*********************************************************
   53 0087              ;24C02读初始,读取里程数
   54 0087              ;*********************************************************         
   55 0087 12015E       AT2401RC:LCALL R2STAR
   56 008A 7FA0                    MOV R7,#10100000B
   57 008C 12010E                LCALL R2SEND
8051 Assembler           Version 1.00   12/28/108 13:46:38    Page 2
C:\Documents and Settings\Administrator\桌面\新建文件夹 (2)\蒋富强\lichengbiao.a51



   58 008F E550                    MOV A,50H
   59 0091 FF                      MOV R7,A
   60 0092 12010E                LCALL R2SEND
   61 0095 E551                    MOV A,51H
   62 0097 FF                      MOV R7,A
   63 0098 12010E                LCALL R2SEND
   64 009B D2B1                   SETB SDA
   65 009D D2B0                   SETB SCL
   66 009F 12015E                LCALL R2STAR
   67 00A2 7FA1                    MOV R7,#10100001B
   68 00A4 12010E                LCALL R2SEND
   69 00A7 1200EF                LCALL R2READ
   70 00AA 120170                LCALL R2STOP
   71 00AD 22                      RET
   72 00AE              ;***************************************************************
   73 00AE              ;LCD清零程序
   74 00AE              ;***************************************************************
   75 00AE 514C         qinling:ACALL LCDINT
   76 00B0 756000                MOV DATE1,#0               ;里程数清零
   77 00B3 756100                MOV DATE2,#0
   78 00B6 756200                MOV DATE3,#0
   79 00B9 756300                MOV DATE4,#0
   80 00BC 757000                MOV 70H,#0                ;直径清零        
   81 00BF 20A3FD       HERE:     JB P2.3,HERE             ;由P2.3判断轮胎直径的输入  
   82 00C2 51C5                ACALL DELAY50MS                          
   83 00C4 0570                  INC 70H                   ;40h中存放输入的直径
   84 00C6 D2A4                 SETB P2.4
   85 00C8 30A402                JNB P2.4,JISHUAN          ;由p2.4判断是否开始工作显示
   86 00CB 01BF                 AJMP HERE
   87 00CD              ;***************************************************************
   88 00CD              ;计算车行驶100米所需要的脉冲数的子程序
   89 00CD              ;***************************************************************
   90 00CD 7420         JISHUAN: MOV A,#32                 ;32为100/3.14的工作系数
   91 00CF 8570F0                MOV B,70H
   92 00D2 84                    DIV AB
   93 00D3 F571                  MOV 71H,A                 ;每跑100M的脉冲数放入71H
   94 00D5 755000                MOV 50H,#00H              ;每跑100M脉冲存入24C02 
   95 00D8 755102                MOV 51H,#02H
   96 00DB AD71                  MOV R5,71H               
   97 00DD 12013A              LCALL AT2401W
   98 00E0 755000                MOV 50H,#00H              ;将直径存入24c02中
   99 00E3 755101                MOV 51H,#01H
  100 00E6 AD70                  MOV R5,70H
  101 00E8 12013A              LCALL AT2401W        
  102 00EB 514C                ACALL LCDINT
  103 00ED 017E                 AJMP BACKM
  104 00EF              ;***********************************************************
  105 00EF              ;读取24c02的数据
  106 00EF              ;***********************************************************
  107 00EF C0E0         R2READ: PUSH ACC                 ;保存AC
  108 00F1 7E08                  MOV R6,#08H 
  109 00F3 1202C0       R2RLOP1:LCALL D15US
  110 00F6 D2B0                 SETB SCL                 ;输出一个串行时钟
  111 00F8 1202C0              LCALL D15US
  112 00FB A2B1                  MOV C,SDA               ;读数据线上的数据到 C
  113 00FD 33                    RLC A                   ;移到 ACC 
  114 00FE 1202C0              LCALL D15US
8051 Assembler           Version 1.00   12/28/108 13:46:38    Page 3
C:\Documents and Settings\Administrator\桌面\新建文件夹 (2)\蒋富强\lichengbiao.a51



  115 0101 C2B0                  CLR SCL
  116 0103 DEEE                 DJNZ R6,R2RLOP1          ;读 8 BIT 数据
  117 0105 1202C0              LCALL D15US
  118 0108 C2B1                  CLR SDA
  119 010A FF                    MOV R7,A                ;将接收到的数据保存到R7 
  120 010B D0E0                  POP ACC                 ;还原ACC 
  121 010D 22                    RET
  122 010E              ;******************************************************
  123 010E              ;写到24C02本程序开始及结束SDA & SCL 均=0 ,发送数据在R7 
  124 010E              ;******************************************************
  125 010E C0E0         R2SEND: PUSH ACC                  
  126 0110 EF                    MOV A,R7                
  127 0111 7E08                  MOV R6,#08H
  128 0113 33           R2SLOP1: RLC A
  129 0114 92B1                  MOV SDA,C
  130 0116 1202C0              LCALL D15US
  131 0119 D2B0                 SETB SCL
  132 011B 1202C0              LCALL D15US
  133 011E C2B0                  CLR SCL
  134 0120 DEF1                 DJNZ R6,R2SLOP1
  135 0122 D2B1                 SETB SDA
  136 0124 1202C0              LCALL D15US
  137 0127 C2B1                  CLR SDA
  138 0129 1202C0              LCALL D15US
  139 012C A2B1         R2SLOP2: MOV C,SDA
  140 012E 40FC                   JC R2SLOP2
  141 0130 C2B0                  CLR SCL
  142 0132 C2B1                  CLR SDA
  143 0134 D0E0                  POP ACC
  144 0136 1202B7              LCALL D1MS
  145 0139 22                    RET   
  146 013A              ;****************************************************
  147 013A              ;将要写的数据交给R5,由R5送到存储器相应的地址
  148 013A              ;****************************************************
  149 013A D2B1         AT2401W:SETB SDA
  150 013C D2B0                 SETB SCL
  151 013E 12015E              LCALL R2STAR
  152 0141 7FA0                  MOV R7,#10100000B
  153 0143 12010E              LCALL R2SEND
  154 0146 E550                  MOV A,50H
  155 0148 FF                    MOV R7,A
  156 0149 12010E              LCALL R2SEND
  157 014C E551                  MOV A,51H
  158 014E FF                    MOV R7,A
  159 014F 12010E              LCALL R2SEND
  160 0152 ED                    MOV A,R5
  161 0153 FF                    MOV R7,A
  162 0154 12010E              LCALL R2SEND
  163 0157 120170              LCALL R2STOP
  164 015A 1202B7              LCALL D1MS
  165 015D 22                    RET
  166 015E              ;************************************************************** 
  167 015E              ;设置开始 ,初始SDA &SCL=1,结束 SDA & SC
  168 015E              ;**************************************************************
  169 015E D2B1         R2STAR: SETB SDA
  170 0160 D2B0                 SETB SCL
  171 0162 1202C0              LCALL D15US                ;对2401操作开始 
8051 Assembler           Version 1.00   12/28/108 13:46:38    Page 4
C:\Documents and Settings\Administrator\桌面\新建文件夹 (2)\蒋富强\lichengbiao.a51



  172 0165 C2B1                  CLR SDA                  ;在SCL=1时,SDA由1变为0表示开始 
  173 0167 1202C0              LCALL D15US 
  174 016A C2B0                  CLR SCL
  175 016C 1202C0              LCALL D15US
  176 016F 22                    RET    
  177 0170              ;******************************************************
  178 0170              ;设置结束
  179 0170              ;******************************************************
  180 0170 1202C0       R2STOP:LCALL D15US
  181 0173 D2B0                 SETB SCL
  182 0175 C2B1                  CLR SDA
  183 0177 1202C0              LCALL D15US
  184 017A D2B1                 SETB SDA       
  185 017C 22                    RET
  186 017D              
  187 017D              
  188 017D              ;**************************************************************
  189 017D              ;开始对脉冲计数并存储里程数的子程序
  190 017D              ;**************************************************************
  191 017D D2A6         JISHU:  SETB P2.6
  192 017F 30A6FB                JNB P2.6,JISHU            ;P2.6每收到一个脉冲51H加1
  193 0182 0573                  INC 73H
  194 0184 AC73                  MOV R4,73H
  195 0186 BC0AF4               CJNE R4,#10,JISHU          ;51H加到10后,50就加1
  196 0189 757300                MOV 73H,#0
  197 018C 0572                  INC 72H
  198 018E E572                  MOV A,72H
  199 0190 B571EA               CJNE A,71H,JISHU           ;50H脉冲数与跑100M脉冲比较
  200 0193 757200                MOV 72H,#0
  201 0196 0560                  INC DATE1                   ;存里程数
  202 0198 E560                  MOV A,DATE1
  203 019A B40A2A               CJNE A,#10,JIESHU
  204 019D 756000                MOV DATE1,#0
  205 01A0 0561                  INC DATE2
  206 01A2 E561                  MOV A,DATE2
  207 01A4 B40A20               CJNE A,#10,JIESHU
  208 01A7 756100                MOV DATE2,#0
  209 01AA 0562                  INC DATE3
  210 01AC E562                  MOV A,DATE3
  211 01AE B40A16               CJNE A,#10,JIESHU
  212 01B1 756200                MOV DATE3,#0
  213 01B4 0563                  INC DATE4
  214 01B6 E563                  MOV A,DATE4
  215 01B8 B4000C               CJNE A,#0,JIESHU
  216 01BB 756300                MOV DATE4,#0
  217 01BE 756200                MOV DATE3,#0
  218 01C1 756100                MOV DATE2,#0
  219 01C4 756000                MOV DATE1,#0  
  220 01C7 755000       JIESHU:  MOV 50H,#00H              ;里程数存入24c02
  221 01CA 755120                MOV 51H,#20H
  222 01CD AD60                  MOV R5,DATE1
  223 01CF 12013A              LCALL AT2401W  
  224 01D2 755000                MOV 50H,#00H
  225 01D5 755121                MOV 51H,#21H
  226 01D8 AD61                  MOV R5,DATE2

⌨️ 快捷键说明

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