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

📄 irr.lis

📁 16个单片机c语言实验程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 046A 81E0              ldi R24,1
 046C 80930100          sts _s_s,R24
 0470 42C1              xjmp L60
 0472           L59:
 0472                   .dbline 82
 0472           ; while(1)
 0472           ;     {
 0472                   .dbline 83
 0472           ;       ds=TCNT1L;
 0472 2CB4              in R2,0x2c
 0474 20920400          sts _ds,R2
 0478                   .dbline 84
 0478           ;       if(ds>250)     //定时器超时,接收复位
 0478 8AEF              ldi R24,250
 047A 8215              cp R24,R2
 047C A0F4              brsh L62
 047E           X21:
 047E                   .dbline 85
 047E           ;         {
 047E                   .dbline 86
 047E           ;         TCNT1L=0;
 047E 2224              clr R2
 0480 2CBC              out 0x2c,R2
 0482                   .dbline 87
 0482           ;         irr_b=0;
 0482 20920000          sts _irr_b,R2
 0486                   .dbline 88
 0486           ;         da=0;
 0486 80E0              ldi R24,0
 0488 90E0              ldi R25,0
 048A A0E0              ldi R26,0
 048C B0E0              ldi R27,0
 048E 90930600          sts _da+1,R25
 0492 80930500          sts _da,R24
 0496 B0930800          sts _da+2+1,R27
 049A A0930700          sts _da+2,R26
 049E                   .dbline 89
 049E           ;       wb=0; 
 049E 20920200          sts _wb,R2
 04A2                   .dbline 90
 04A2           ;       s_s=0;
 04A2 20920100          sts _s_s,R2
 04A6                   .dbline 91
 04A6           ;         }
 04A6           L62:
 04A6                   .dbline 92
 04A6           ;       if(s_s==1)     //显示开关打开,开始显示
 04A6 80910100          lds R24,_s_s
 04AA 8130              cpi R24,1
 04AC 09F0              breq X24
 04AE 23C1              xjmp L64
 04B0           X24:
 04B0           X22:
 04B0                   .dbline 93
 04B0           ;         {
 04B0                   .dbline 94
 04B0           ;         SREG=0x00;     //关闭全局中断
 04B0 2224              clr R2
 04B2 2FBE              out 0x3f,R2
 04B4                   .dbline 95
 04B4           ;       LcdInit();     //1602初始化
 04B4 F5DD              xcall _LcdInit
 04B6                   .dbline 97
 04B6           ;         //显示设备码
 04B6           ;         d1=da>>24;
 04B6 88E1              ldi R24,24
 04B8 90E0              ldi R25,0
 04BA 20910700          lds R18,_da+2
 04BE 30910800          lds R19,_da+2+1
 04C2 00910500          lds R16,_da
 04C6 10910600          lds R17,_da+1
 04CA 8A93              st -y,R24
 04CC 0E940000          xcall asr32
 04D0 00930800          sts _d1,R16
 04D4                   .dbline 98
 04D4           ;         ten_1=d1/100;
 04D4 14E6              ldi R17,100
 04D6 0E940000          xcall div8u
 04DA 00930400          sts _ten_1,R16
 04DE                   .dbline 99
 04DE           ;         ten_2=(d1-(100*ten_1))/10;
 04DE 202E              mov R2,R16
 04E0 84E6              ldi R24,100
 04E2 829D              mul R24,R2
 04E4 00910800          lds R16,_d1
 04E8 0019              sub R16,R0
 04EA 1AE0              ldi R17,10
 04EC 0E940000          xcall div8u
 04F0 00930300          sts _ten_2,R16
 04F4                   .dbline 100
 04F4           ;         ten_3=d1-(100*ten_1)-ten_2*10;
 04F4 20900400          lds R2,_ten_1
 04F8 84E6              ldi R24,100
 04FA 829D              mul R24,R2
 04FC 20900800          lds R2,_d1
 0500 2018              sub R2,R0
 0502 302E              mov R3,R16
 0504 8AE0              ldi R24,10
 0506 839D              mul R24,R3
 0508 2018              sub R2,R0
 050A 20920200          sts _ten_3,R2
 050E                   .dbline 101
 050E           ;         WriteNum(1,0,ten_1);
 050E 20900400          lds R2,_ten_1
 0512 3324              clr R3
 0514 3982              std y+1,R3
 0516 2882              std y+0,R2
 0518 2227              clr R18
 051A 3327              clr R19
 051C 01E0              ldi R16,1
 051E 10E0              ldi R17,0
 0520 6DDE              xcall _WriteNum
 0522                   .dbline 102
 0522           ;         WriteNum(1,1,ten_2);
 0522 20900300          lds R2,_ten_2
 0526 3324              clr R3
 0528 3982              std y+1,R3
 052A 2882              std y+0,R2
 052C 21E0              ldi R18,1
 052E 30E0              ldi R19,0
 0530 01E0              ldi R16,1
 0532 10E0              ldi R17,0
 0534 63DE              xcall _WriteNum
 0536                   .dbline 103
 0536           ;         WriteNum(1,2,ten_3);
 0536 20900200          lds R2,_ten_3
 053A 3324              clr R3
 053C 3982              std y+1,R3
 053E 2882              std y+0,R2
 0540 22E0              ldi R18,2
 0542 30E0              ldi R19,0
 0544 01E0              ldi R16,1
 0546 10E0              ldi R17,0
 0548 59DE              xcall _WriteNum
 054A                   .dbline 105
 054A           ;         //显示设备码反码
 054A           ;         d1=da>>16;
 054A 20900700          lds R2,_da+2
 054E 30900800          lds R3,_da+3
 0552 20920800          sts _d1,R2
 0556                   .dbline 106
 0556           ;         ten_1=d1/100;
 0556 14E6              ldi R17,100
 0558 022D              mov R16,R2
 055A 0E940000          xcall div8u
 055E 00930400          sts _ten_1,R16
 0562                   .dbline 107
 0562           ;         ten_2=(d1-(100*ten_1))/10;
 0562 202E              mov R2,R16
 0564 84E6              ldi R24,100
 0566 829D              mul R24,R2
 0568 00910800          lds R16,_d1
 056C 0019              sub R16,R0
 056E 1AE0              ldi R17,10
 0570 0E940000          xcall div8u
 0574 00930300          sts _ten_2,R16
 0578                   .dbline 108
 0578           ;         ten_3=d1-(100*ten_1)-ten_2*10;
 0578 20900400          lds R2,_ten_1
 057C 84E6              ldi R24,100
 057E 829D              mul R24,R2
 0580 20900800          lds R2,_d1
 0584 2018              sub R2,R0
 0586 302E              mov R3,R16
 0588 8AE0              ldi R24,10
 058A 839D              mul R24,R3
 058C 2018              sub R2,R0
 058E 20920200          sts _ten_3,R2
 0592                   .dbline 109
 0592           ;         WriteNum(1,4,ten_1);
 0592 20900400          lds R2,_ten_1
 0596 3324              clr R3
 0598 3982              std y+1,R3
 059A 2882              std y+0,R2
 059C 24E0              ldi R18,4
 059E 30E0              ldi R19,0
 05A0 01E0              ldi R16,1
 05A2 10E0              ldi R17,0
 05A4 2BDE              xcall _WriteNum
 05A6                   .dbline 110
 05A6           ;         WriteNum(1,5,ten_2);
 05A6 20900300          lds R2,_ten_2
 05AA 3324              clr R3
 05AC 3982              std y+1,R3
 05AE 2882              std y+0,R2
 05B0 25E0              ldi R18,5
 05B2 30E0              ldi R19,0
 05B4 01E0              ldi R16,1
 05B6 10E0              ldi R17,0
 05B8 21DE              xcall _WriteNum
 05BA                   .dbline 111
 05BA           ;         WriteNum(1,6,ten_3);
 05BA 20900200          lds R2,_ten_3
 05BE 3324              clr R3
 05C0 3982              std y+1,R3
 05C2 2882              std y+0,R2
 05C4 26E0              ldi R18,6
 05C6 30E0              ldi R19,0
 05C8 01E0              ldi R16,1
 05CA 10E0              ldi R17,0
 05CC 17DE              xcall _WriteNum
 05CE                   .dbline 113
 05CE           ;         //显示键码
 05CE           ;         d1=da>>8;
 05CE 88E0              ldi R24,8
 05D0 90E0              ldi R25,0
 05D2 20910700          lds R18,_da+2
 05D6 30910800          lds R19,_da+2+1
 05DA 00910500          lds R16,_da
 05DE 10910600          lds R17,_da+1
 05E2 8A93              st -y,R24
 05E4 0E940000          xcall asr32
 05E8 00930800          sts _d1,R16
 05EC                   .dbline 114
 05EC           ;         ten_1=d1/100;
 05EC 14E6              ldi R17,100
 05EE 0E940000          xcall div8u
 05F2 00930400          sts _ten_1,R16
 05F6                   .dbline 115
 05F6           ;         ten_2=(d1-(100*ten_1))/10;
 05F6 202E              mov R2,R16
 05F8 84E6              ldi R24,100
 05FA 829D              mul R24,R2
 05FC 00910800          lds R16,_d1
 0600 0019              sub R16,R0
 0602 1AE0              ldi R17,10
 0604 0E940000          xcall div8u
 0608 00930300          sts _ten_2,R16
 060C                   .dbline 116
 060C           ;         ten_3=d1-(100*ten_1)-ten_2*10;
 060C 20900400          lds R2,_ten_1
 0610 84E6              ldi R24,100
 0612 829D              mul R24,R2
 0614 20900800          lds R2,_d1
 0618 2018              sub R2,R0
 061A 302E              mov R3,R16
 061C 8AE0              ldi R24,10
 061E 839D              mul R24,R3
 0620 2018              sub R2,R0
 0622 20920200          sts _ten_3,R2
 0626                   .dbline 117
 0626           ;         WriteNum(1,8,ten_1);
 0626 20900400          lds R2,_ten_1
 062A 3324              clr R3
 062C 3982              std y+1,R3
 062E 2882              std y+0,R2
 0630 28E0              ldi R18,8
 0632 30E0              ldi R19,0
 0634 01E0              ldi R16,1
 0636 10E0              ldi R17,0
 0638 E1DD              xcall _WriteNum
 063A                   .dbline 118
 063A           ;         WriteNum(1,9,ten_2);
 063A 20900300          lds R2,_ten_2
 063E 3324              clr R3
 0640 3982              std y+1,R3
 0642 2882              std y+0,R2
 0644 29E0              ldi R18,9
 0646 30E0              ldi R19,0
 0648 01E0              ldi R16,1
 064A 10E0              ldi R17,0
 064C D7DD              xcall _WriteNum
 064E                   .dbline 119
 064E           ;         WriteNum(1,10,ten_3);
 064E 20900200          lds R2,_ten_3
 0652 3324              clr R3
 0654 3982              std y+1,R3
 0656 2882              std y+0,R2
 0658 2AE0              ldi R18,10
 065A 30E0              ldi R19,0
 065C 01E0              ldi R16,1
 065E 10E0              ldi R17,0
 0660 CDDD              xcall _WriteNum
 0662                   .dbline 121
 0662           ;         //显示键码反码
 0662           ;         d1=da;
 0662 20900500          lds R2,_da
 0666 30900600          lds R3,_da+1
 066A 20920800          sts _d1,R2
 066E                   .dbline 122
 066E           ;         ten_1=d1/100;
 066E 14E6              ldi R17,100
 0670 022D              mov R16,R2
 0672 0E940000          xcall div8u
 0676 00930400          sts _ten_1,R16
 067A                   .dbline 123
 067A           ;         ten_2=(d1-(100*ten_1))/10;
 067A 202E              mov R2,R16
 067C 84E6              ldi R24,100
 067E 829D              mul R24,R2
 0680 00910800          lds R16,_d1
 0684 0019              sub R16,R0
 0686 1AE0              ldi R17,10
 0688 0E940000          xcall div8u
 068C 00930300          sts _ten_2,R16
 0690                   .dbline 124
 0690           ;         ten_3=d1-(100*ten_1)-ten_2*10;
 0690 20900400          lds R2,_ten_1
 0694 84E6              ldi R24,100
 0696 829D              mul R24,R2
 0698 20900800          lds R2,_d1
 069C 2018              sub R2,R0
 069E 302E              mov R3,R16
 06A0 8AE0              ldi R24,10
 06A2 839D              mul R24,R3
 06A4 2018              sub R2,R0
 06A6 20920200          sts _ten_3,R2
 06AA                   .dbline 125
 06AA           ;         WriteNum(1,12,ten_1);
 06AA 20900400          lds R2,_ten_1
 06AE 3324              clr R3
 06B0 3982              std y+1,R3
 06B2 2882              std y+0,R2
 06B4 2CE0              ldi R18,12
 06B6 30E0              ldi R19,0
 06B8 01E0              ldi R16,1
 06BA 10E0              ldi R17,0
 06BC 9FDD              xcall _WriteNum
 06BE                   .dbline 126
 06BE           ;         WriteNum(1,13,ten_2);
 06BE 20900300          lds R2,_ten_2
 06C2 3324              clr R3
 06C4 3982              std y+1,R3
 06C6 2882              std y+0,R2
 06C8 2DE0              ldi R18,13
 06CA 30E0              ldi R19,0
 06CC 01E0              ldi R16,1
 06CE 10E0              ldi R17,0
 06D0 95DD              xcall _WriteNum
 06D2                   .dbline 127
 06D2           ;         WriteNum(1,14,ten_3);
 06D2 20900200          lds R2,_ten_3
 06D6 3324              clr R3
 06D8 3982              std y+1,R3
 06DA 2882              std y+0,R2
 06DC 2EE0              ldi R18,14
 06DE 30E0              ldi R19,0
 06E0 01E0              ldi R16,1
 06E2 10E0              ldi R17,0
 06E4 8BDD              xcall _WriteNum
 06E6                   .dbline 129
 06E6           ;         //复位D端口
 06E6           ;         DDRD=0x00;    //中断输入
 06E6 2224              clr R2
 06E8 21BA              out 0x11,R2
 06EA                   .dbline 130
 06EA           ;       PORTD=0xff;   //内部上拉
 06EA 8FEF              ldi R24,255
 06EC 82BB              out 0x12,R24
 06EE                   .dbline 131
 06EE           ;         s_s=0;        //关闭显示开关
 06EE 20920100          sts _s_s,R2
 06F2                   .dbline 132
 06F2           ;         SREG=0x80;    //开全局中断
 06F2 80E8              ldi R24,128
 06F4 8FBF              out 0x3f,R24
 06F6                   .dbline 133
 06F6           ;         }
 06F6           L64:
 06F6                   .dbline 134
 06F6           ;       }
 06F6           L60:
 06F6                   .dbline 81
 06F6 BDCE              xjmp L59
 06F8           X23:
 06F8                   .dbline -2
 06F8           L58:
 06F8                   .dbline 0 ; func end
 06F8 2296              adiw R28,2
 06FA 0895              ret
 06FC                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\wdd\MYDOCU~1\16实验程序\红外接收\irr.c
 0000           _i::
 0000                   .blkb 1
 0001                   .dbsym e i _i c
 0001           _ten_4::
 0001                   .blkb 1
 0002                   .dbsym e ten_4 _ten_4 c
 0002           _ten_3::
 0002                   .blkb 1
 0003                   .dbsym e ten_3 _ten_3 c
 0003           _ten_2::
 0003                   .blkb 1
 0004                   .dbsym e ten_2 _ten_2 c
 0004           _ten_1::
 0004                   .blkb 1
 0005                   .dbsym e ten_1 _ten_1 c
 0005           _d4::
 0005                   .blkb 1
 0006                   .dbsym e d4 _d4 c
 0006           _d3::
 0006                   .blkb 1
 0007                   .dbsym e d3 _d3 c
 0007           _d2::
 0007                   .blkb 1
 0008                   .dbsym e d2 _d2 c
 0008           _d1::
 0008                   .blkb 1
 0009                   .dbsym e d1 _d1 c
 0009           ; }

⌨️ 快捷键说明

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