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

📄 led-8-2.lis

📁 16个单片机c语言实验程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module led-8-2.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\16实验程序\数码管显示2\led-8-2.c
 0000                   .dbfile E:\16实验程序\数码管显示2\encoder.h
 0000                   .dbfunc e encoder _encoder fc
 0000           ;           code -> R20
 0000           ;            num -> R16
                        .even
 0000           _encoder::
 0000 0E940000          xcall push_xgsetF000
 0004                   .dbline -1
 0004                   .dbline 3
 0004           ; //数码管显示程序
 0004           ; #define uchar unsigned char 
 0004           ; #define uint unsigned int 
 0004                   .dbline 5
 0004           ; #include<iom16v.h>
 0004           ; //7段译码
 0004 602F              mov R22,R16
 0006 7727              clr R23
 0008 6030              cpi R22,0
 000A 6707              cpc R22,R23
 000C 29F1              breq L5
 000E           X0:
 000E 6130              cpi R22,1
 0010 E0E0              ldi R30,0
 0012 7E07              cpc R23,R30
 0014 19F1              breq L6
 0016           X1:
 0016 6230              cpi R22,2
 0018 E0E0              ldi R30,0
 001A 7E07              cpc R23,R30
 001C 09F1              breq L7
 001E           X2:
 001E 6330              cpi R22,3
 0020 E0E0              ldi R30,0
 0022 7E07              cpc R23,R30
 0024 F9F0              breq L8
 0026           X3:
 0026 6430              cpi R22,4
 0028 E0E0              ldi R30,0
 002A 7E07              cpc R23,R30
 002C E9F0              breq L9
 002E           X4:
 002E 6530              cpi R22,5
 0030 E0E0              ldi R30,0
 0032 7E07              cpc R23,R30
 0034 D9F0              breq L10
 0036           X5:
 0036 6630              cpi R22,6
 0038 E0E0              ldi R30,0
 003A 7E07              cpc R23,R30
 003C C9F0              breq L11
 003E           X6:
 003E 6730              cpi R22,7
 0040 E0E0              ldi R30,0
 0042 7E07              cpc R23,R30
 0044 B9F0              breq L12
 0046           X7:
 0046 6830              cpi R22,8
 0048 E0E0              ldi R30,0
 004A 7E07              cpc R23,R30
 004C A9F0              breq L13
 004E           X8:
 004E 6930              cpi R22,9
 0050 E0E0              ldi R30,0
 0052 7E07              cpc R23,R30
 0054 99F0              breq L14
 0056           X9:
 0056 13C0              xjmp L2
 0058           L5:
 0058                   .dbline 8
 0058           ; #include"encoder.h"    
 0058           ; //写74hc595
 0058           ; #include"ch595.h"
 0058 40EC              ldi R20,192
 005A                   .dbline 8
 005A 11C0              xjmp L3
 005C           L6:
 005C                   .dbline 10
 005C           ; #define ls138a 7
 005C           ; #define ls138b 6
 005C 49EF              ldi R20,249
 005E                   .dbline 10
 005E 0FC0              xjmp L3
 0060           L7:
 0060                   .dbline 12
 0060           ; #define ls138c 5
 0060           ; #define ls138en 4
 0060 44EA              ldi R20,164
 0062                   .dbline 12
 0062 0DC0              xjmp L3
 0064           L8:
 0064                   .dbline 14
 0064           ; 
 0064           ; unsigned long a1,a2,a3,a4,a5,a6,a7,a8;
 0064 40EB              ldi R20,176
 0066                   .dbline 14
 0066 0BC0              xjmp L3
 0068           L9:
 0068                   .dbline 16
 0068           ; 
 0068           ; //按10进制分解各个位
 0068 49E9              ldi R20,153
 006A                   .dbline 16
 006A 09C0              xjmp L3
 006C           L10:
 006C                   .dbline 18
 006C           ; void disa(unsigned long data)
 006C           ; {
 006C 42E9              ldi R20,146
 006E                   .dbline 18
 006E 07C0              xjmp L3
 0070           L11:
 0070                   .dbline 20
 0070           ; a8=data/10000000;
 0070           ; a7=(data-a8*10000000)/1000000;
 0070 42E8              ldi R20,130
 0072                   .dbline 20
 0072 05C0              xjmp L3
 0074           L12:
 0074                   .dbline 22
 0074           ; a6=(data-a8*10000000-a7*1000000)/100000;
 0074           ; a5=(data-a8*10000000-a7*1000000-a6*100000)/10000;
 0074 48EF              ldi R20,248
 0076                   .dbline 22
 0076 03C0              xjmp L3
 0078           L13:
 0078                   .dbline 24
 0078           ; a4=(data-a8*10000000-a7*1000000-a6*100000-a5*10000)/1000;
 0078           ; a3=(data-a8*10000000-a7*1000000-a6*100000-a5*10000-a4*1000)/100;
 0078 40E8              ldi R20,128
 007A                   .dbline 24
 007A 01C0              xjmp L3
 007C           L14:
 007C                   .dbline 26
 007C           ; a2=(data-a8*10000000-a7*1000000-a6*100000-a5*10000-a4*1000-a3*100)/10;
 007C           ; a1=(data-a8*10000000-a7*1000000-a6*100000-a5*10000-a4*1000-a3*100-a2*10);
 007C 40E9              ldi R20,144
 007E                   .dbline 26
 007E           L2:
 007E           L3:
 007E                   .dbline 28
 007E           ; }
 007E           ; 
 007E 042F              mov R16,R20
 0080                   .dbline -2
 0080           L1:
 0080                   .dbline 0 ; func end
 0080 0C940000          xjmp pop_xgsetF000
 0084                   .dbsym r code 20 c
 0084                   .dbsym r num 16 c
 0084                   .dbend
 0084                   .dbfile E:\16实验程序\数码管显示2\ch595.h
 0084                   .dbfunc e s_ms _s_ms fV
 0084           ;              t -> R16,R17
                        .even
 0084           _s_ms::
 0084                   .dbline -1
 0084                   .dbline 8
 0084           ; //ch595的数据输入
 0084           ; #define clk  1
 0084           ; #define rclk 2
 0084           ; #define dat  3  
 0084           ; 
 0084           ; //延时函数
 0084           ; void s_ms(unsigned int t)
 0084           ; {
 0084                   .dbline 9
 0084           ;     for(;t>1;t--)
 0084 02C0              xjmp L19
 0086           L16:
 0086                   .dbline 10
 0086           ;     {
 0086                   .dbline 11
 0086           ;     }
 0086           L17:
 0086                   .dbline 9
 0086 0150              subi R16,1
 0088 1040              sbci R17,0
 008A           L19:
 008A                   .dbline 9
 008A 81E0              ldi R24,1
 008C 90E0              ldi R25,0
 008E 8017              cp R24,R16
 0090 9107              cpc R25,R17
 0092 C8F3              brlo L16
 0094           X10:
 0094                   .dbline -2
 0094           L15:
 0094                   .dbline 0 ; func end
 0094 0895              ret
 0096                   .dbsym r t 16 i
 0096                   .dbend
 0096                   .dbfunc e sendbyte _sendbyte fV
 0096           ;            tem -> R10
 0096           ;              i -> R22
 0096           ;           byte -> R20
                        .even
 0096           _sendbyte::
 0096 0E940000          xcall push_xgsetF00C
 009A 402F              mov R20,R16
 009C                   .dbline -1
 009C                   .dbline 15
 009C           ; }
 009C           ; //写74hc595函数
 009C           ; void sendbyte(uchar byte)
 009C           ; {    
 009C                   .dbline 17
 009C           ;    uchar i,tem; 
 009C           ;    byte=encoder(byte);       //译码
 009C 042F              mov R16,R20
 009E B0DF              xcall _encoder
 00A0 402F              mov R20,R16
 00A2                   .dbline 18
 00A2           ;    for(i=0;i<8;i++)          
 00A2 6627              clr R22
 00A4 0CC0              xjmp L24
 00A6           L21:
 00A6                   .dbline 19
 00A6           ;         {
 00A6                   .dbline 20
 00A6           ;          PORTA&=~(1<<clk);
 00A6 D998              cbi 0x1b,1
 00A8                   .dbline 21
 00A8           ;          tem=(byte&0x80);
 00A8 842F              mov R24,R20
 00AA 8078              andi R24,128
 00AC A82E              mov R10,R24
 00AE                   .dbline 22
 00AE           ;                if(tem==0)
 00AE 8823              tst R24
 00B0 11F4              brne L25
 00B2           X11:
 00B2                   .dbline 23
 00B2           ;                  {
 00B2                   .dbline 24
 00B2           ;                  PORTA&=~(1<<dat);
 00B2 DB98              cbi 0x1b,3
 00B4                   .dbline 25
 00B4           ;                  }
 00B4 01C0              xjmp L26
 00B6           L25:
 00B6                   .dbline 27
 00B6           ;                  else
 00B6           ;                  {
 00B6                   .dbline 28
 00B6           ;                  PORTA|=(1<<dat);
 00B6 DB9A              sbi 0x1b,3
 00B8                   .dbline 29
 00B8           ;                  }
 00B8           L26:
 00B8                   .dbline 30
 00B8           ;          byte=byte<<1;
 00B8 440F              lsl R20
 00BA                   .dbline 31
 00BA           ;          PORTA|=(1<<clk);
 00BA D99A              sbi 0x1b,1
 00BC                   .dbline 32
 00BC           ;          }
 00BC           L22:
 00BC                   .dbline 18
 00BC 6395              inc R22
 00BE           L24:
 00BE                   .dbline 18
 00BE 6830              cpi R22,8
 00C0 90F3              brlo L21
 00C2           X12:
 00C2                   .dbline 33
 00C2           ;          PORTA&=~(1<<rclk);
 00C2 DA98              cbi 0x1b,2
 00C4                   .dbline 34
 00C4           ;                s_ms(100);
 00C4 04E6              ldi R16,100
 00C6 10E0              ldi R17,0
 00C8 DDDF              xcall _s_ms
 00CA                   .dbline 35
 00CA           ;          PORTA|=(1<<rclk);         
 00CA DA9A              sbi 0x1b,2
 00CC                   .dbline -2
 00CC           L20:
 00CC                   .dbline 0 ; func end
 00CC 0C940000          xjmp pop_xgsetF00C
 00D0                   .dbsym r tem 10 c
 00D0                   .dbsym r i 22 c
 00D0                   .dbsym r byte 20 c
 00D0                   .dbend
 00D0                   .dbfile E:\16实验程序\数码管显示2\led-8-2.c
 00D0                   .dbfunc e disa _disa fV
 00D0           ;           data -> y+6
                        .even
 00D0           _disa::
 00D0 0E940000          xcall push_arg4
 00D4 0E940000          xcall push_xgsetF00C
 00D8                   .dbline -1
 00D8                   .dbline 18
 00D8                   .dbline 19
 00D8 40E8              ldi R20,128
 00DA 56E9              ldi R21,150
 00DC 68E9              ldi R22,152
 00DE 70E0              ldi R23,0
 00E0 0E81              ldd R16,y+6
 00E2 1F81              ldd R17,y+7
 00E4 2885              ldd R18,y+8
 00E6 3985              ldd R19,y+9
 00E8 7A93              st -y,R23
 00EA 6A93              st -y,R22
 00EC 5A93              st -y,R21
 00EE 4A93              st -y,R20
 00F0 0E940000          xcall div32u
 00F4 10930100          sts _a8+1,R17
 00F8 00930000          sts _a8,R16
 00FC 30930300          sts _a8+2+1,R19
 0100 20930200          sts _a8+2,R18
 0104                   .dbline 20
 0104 40E8              ldi R20,128
 0106 56E9              ldi R21,150
 0108 68E9              ldi R22,152
 010A 70E0              ldi R23,0
 010C 3A93              st -y,R19
 010E 2A93              st -y,R18
 0110 1A93              st -y,R17
 0112 0A93              st -y,R16
 0114 8A01              movw R16,R20
 0116 9B01              movw R18,R22
 0118 0E940000          xcall empy32u
 011C 1801              movw R2,R16
 011E 2901              movw R4,R18
 0120 0E81              ldd R16,y+6
 0122 1F81              ldd R17,y+7
 0124 2885              ldd R18,y+8
 0126 3985              ldd R19,y+9
 0128 0219              sub R16,R2
 012A 1309              sbc R17,R3
 012C 2409              sbc R18,R4
 012E 3509              sbc R19,R5
 0130 40E4              ldi R20,64
 0132 52E4              ldi R21,66
 0134 6FE0              ldi R22,15
 0136 70E0              ldi R23,0
 0138 7A93              st -y,R23
 013A 6A93              st -y,R22
 013C 5A93              st -y,R21
 013E 4A93              st -y,R20
 0140 0E940000          xcall div32u
 0144 10930500          sts _a7+1,R17
 0148 00930400          sts _a7,R16
 014C 30930700          sts _a7+2+1,R19
 0150 20930600          sts _a7+2,R18
 0154                   .dbline 21
 0154 40900200          lds R4,_a8+2
 0158 50900300          lds R5,_a8+2+1
 015C 20900000          lds R2,_a8
 0160 30900100          lds R3,_a8+1
 0164 40E8              ldi R20,128
 0166 56E9              ldi R21,150
 0168 68E9              ldi R22,152
 016A 70E0              ldi R23,0
 016C 5A92              st -y,R5
 016E 4A92              st -y,R4
 0170 3A92              st -y,R3
 0172 2A92              st -y,R2
 0174 8A01              movw R16,R20
 0176 9B01              movw R18,R22
 0178 0E940000          xcall empy32u
 017C 2E80              ldd R2,y+6
 017E 3F80              ldd R3,y+7
 0180 4884              ldd R4,y+8
 0182 5984              ldd R5,y+9
 0184 201A              sub R2,R16
 0186 310A              sbc R3,R17
 0188 420A              sbc R4,R18
 018A 530A              sbc R5,R19
 018C 80900600          lds R8,_a7+2
 0190 90900700          lds R9,_a7+2+1
 0194 60900400          lds R6,_a7
 0198 70900500          lds R7,_a7+1
 019C 40E4              ldi R20,64
 019E 52E4              ldi R21,66
 01A0 6FE0              ldi R22,15
 01A2 70E0              ldi R23,0
 01A4 9A92              st -y,R9
 01A6 8A92              st -y,R8
 01A8 7A92              st -y,R7
 01AA 6A92              st -y,R6
 01AC 8A01              movw R16,R20
 01AE 9B01              movw R18,R22
 01B0 0E940000          xcall empy32u
 01B4 201A              sub R2,R16
 01B6 310A              sbc R3,R17
 01B8 420A              sbc R4,R18
 01BA 530A              sbc R5,R19
 01BC 40EA              ldi R20,160
 01BE 56E8              ldi R21,134
 01C0 61E0              ldi R22,1
 01C2 70E0              ldi R23,0
 01C4 7A93              st -y,R23
 01C6 6A93              st -y,R22
 01C8 5A93              st -y,R21
 01CA 4A93              st -y,R20
 01CC 8101              movw R16,R2
 01CE 9201              movw R18,R4
 01D0 0E940000          xcall div32u
 01D4 10930900          sts _a6+1,R17
 01D8 00930800          sts _a6,R16
 01DC 30930B00          sts _a6+2+1,R19
 01E0 20930A00          sts _a6+2,R18
 01E4                   .dbline 22

⌨️ 快捷键说明

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