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

📄 训练项目七:键盘的使用.lis

📁 长沙理工自己的实验程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00BA 9CD0              xcall _send
 00BC 07E0              ldi R16,7
 00BE 10E0              ldi R17,0
 00C0 99D0              xcall _send
 00C2 3FC0              xjmp L6
 00C4           L16:
 00C4           ;         case 81:set_cs;send(0xc8);send(0x08);break;
 00C4 C29A              sbi 0x18,2
 00C6 08EC              ldi R16,200
 00C8 10E0              ldi R17,0
 00CA 94D0              xcall _send
 00CC 08E0              ldi R16,8
 00CE 10E0              ldi R17,0
 00D0 91D0              xcall _send
 00D2 37C0              xjmp L6
 00D4           L17:
 00D4           ;         case 82:set_cs;send(0xc8);send(0x09);break;
 00D4 C29A              sbi 0x18,2
 00D6 08EC              ldi R16,200
 00D8 10E0              ldi R17,0
 00DA 8CD0              xcall _send
 00DC 09E0              ldi R16,9
 00DE 10E0              ldi R17,0
 00E0 89D0              xcall _send
 00E2 2FC0              xjmp L6
 00E4           L18:
 00E4           ;         case 83:set_cs;send(0xc8);send(0x0A);break;
 00E4 C29A              sbi 0x18,2
 00E6 08EC              ldi R16,200
 00E8 10E0              ldi R17,0
 00EA 84D0              xcall _send
 00EC 0AE0              ldi R16,10
 00EE 10E0              ldi R17,0
 00F0 81D0              xcall _send
 00F2 27C0              xjmp L6
 00F4           L19:
 00F4           ;         case 84:set_cs;send(0xc8);send(0x0B);break;
 00F4 C29A              sbi 0x18,2
 00F6 08EC              ldi R16,200
 00F8 10E0              ldi R17,0
 00FA 7CD0              xcall _send
 00FC 0BE0              ldi R16,11
 00FE 10E0              ldi R17,0
 0100 79D0              xcall _send
 0102 1FC0              xjmp L6
 0104           L20:
 0104           ;         case 89:set_cs;send(0xc8);send(0x0C);break;
 0104 C29A              sbi 0x18,2
 0106 08EC              ldi R16,200
 0108 10E0              ldi R17,0
 010A 74D0              xcall _send
 010C 0CE0              ldi R16,12
 010E 10E0              ldi R17,0
 0110 71D0              xcall _send
 0112 17C0              xjmp L6
 0114           L21:
 0114           ;         case 90:set_cs;send(0xc8);send(0x0D);break;
 0114 C29A              sbi 0x18,2
 0116 08EC              ldi R16,200
 0118 10E0              ldi R17,0
 011A 6CD0              xcall _send
 011C 0DE0              ldi R16,13
 011E 10E0              ldi R17,0
 0120 69D0              xcall _send
 0122 0FC0              xjmp L6
 0124           L22:
 0124           ;         case 91:set_cs;send(0xc8);send(0x0E);break;
 0124 C29A              sbi 0x18,2
 0126 08EC              ldi R16,200
 0128 10E0              ldi R17,0
 012A 64D0              xcall _send
 012C 0EE0              ldi R16,14
 012E 10E0              ldi R17,0
 0130 61D0              xcall _send
 0132 07C0              xjmp L6
 0134           L23:
 0134           ;         case 92:set_cs;send(0xc8);send(0x0F);break;
 0134 C29A              sbi 0x18,2
 0136 08EC              ldi R16,200
 0138 10E0              ldi R17,0
 013A 5CD0              xcall _send
 013C 0FE0              ldi R16,15
 013E 10E0              ldi R17,0
 0140 59D0              xcall _send
 0142           ;         default:break;         
 0142           L6:
 0142           ;         
 0142           ;         }
 0142           ;     }
 0142           L3:
 0142 65CF              xjmp L2
 0144           X2:
 0144           L1:
 0144                   .dbline 0 ; func end
 0144 0895              ret
                        .even
 0146           _key_check::
 0146 0A92              st -y,R0
 0148 1A92              st -y,R1
 014A 2A92              st -y,R2
 014C 3A92              st -y,R3
 014E 4A92              st -y,R4
 0150 5A92              st -y,R5
 0152 6A92              st -y,R6
 0154 7A92              st -y,R7
 0156 8A92              st -y,R8
 0158 9A92              st -y,R9
 015A 0A93              st -y,R16
 015C 1A93              st -y,R17
 015E 2A93              st -y,R18
 0160 3A93              st -y,R19
 0162 8A93              st -y,R24
 0164 9A93              st -y,R25
 0166 AA93              st -y,R26
 0168 BA93              st -y,R27
 016A EA93              st -y,R30
 016C FA93              st -y,R31
 016E 0FB6              in R0,0x3f
 0170 0A92              st -y,R0
 0172           ; }
 0172           ; /****************************************************************************
 0172           ; ** Function Name:      key_check       
 0172           ; ** Descriptions:       read the key
 0172           ; ** Input Parameters:   K
 0172           ; ** Output parameters:  void
 0172           ; ** Returned Value:     void
 0172           ; **---------------------------------------------------------------------------
 0172           ; ****************************************************************************/
 0172           ; 
 0172           ; void key_check()
 0172           ; { 
 0172           ;     n=1;
 0172 81E0              ldi R24,1
 0174 90E0              ldi R25,0
 0176 90930200          sts _n+1,R25
 017A 80930100          sts _n,R24
 017E           ;     send(0x15);                                /* 读键盘指令                   */
 017E 05E1              ldi R16,21
 0180 10E0              ldi R17,0
 0182 38D0              xcall _send
 0184           ;     k=receive()+61;
 0184 51D0              xcall _receive
 0186 C801              movw R24,R16
 0188 CD96              adiw R24,61
 018A 80930000          sts _k,R24
 018E           ;     set_cs;
 018E C29A              sbi 0x18,2
 0190           L25:
 0190                   .dbline 0 ; func end
 0190 0990              ld R0,y+
 0192 0FBE              out 0x3f,R0
 0194 F991              ld R31,y+
 0196 E991              ld R30,y+
 0198 B991              ld R27,y+
 019A A991              ld R26,y+
 019C 9991              ld R25,y+
 019E 8991              ld R24,y+
 01A0 3991              ld R19,y+
 01A2 2991              ld R18,y+
 01A4 1991              ld R17,y+
 01A6 0991              ld R16,y+
 01A8 9990              ld R9,y+
 01AA 8990              ld R8,y+
 01AC 7990              ld R7,y+
 01AE 6990              ld R6,y+
 01B0 5990              ld R5,y+
 01B2 4990              ld R4,y+
 01B4 3990              ld R3,y+
 01B6 2990              ld R2,y+
 01B8 1990              ld R1,y+
 01BA 0990              ld R0,y+
 01BC 1895              reti
                        .even
 01BE           _led_init::
 01BE           ; }
 01BE           ; /****************************************************************************
 01BE           ; ** Function Name:      led_init       
 01BE           ; ** Descriptions:       
 01BE           ; ** Input Parameters:   uiTime
 01BE           ; ** Output parameters:  void
 01BE           ; ** Returned Value:     void
 01BE           ; **---------------------------------------------------------------------------
 01BE           ; ****************************************************************************/
 01BE           ; void led_init (void)
 01BE           ; {
 01BE           ;     DDRB|= 0x0C;                              /* PB0和PB1为输入              */
 01BE 87B3              in R24,0x17
 01C0 8C60              ori R24,12
 01C2 87BB              out 0x17,R24
 01C4           ;       set_cs;
 01C4 C29A              sbi 0x18,2
 01C6           ;       send (0xA4);
 01C6 04EA              ldi R16,164
 01C8 10E0              ldi R17,0
 01CA 14D0              xcall _send
 01CC           L26:
 01CC                   .dbline 0 ; func end
 01CC 0895              ret
                        .even
 01CE           _init_7279::
 01CE           ; }
 01CE           ; 
 01CE           ; /****************************************************************************
 01CE           ; ** Function Name:      init_7279       
 01CE           ; ** Descriptions:       initialization
 01CE           ; ** Input Parameters:   uiTime
 01CE           ; ** Output parameters:  void
 01CE           ; ** Returned Value:     void
 01CE           ; **---------------------------------------------------------------------------
 01CE           ; ****************************************************************************/
 01CE           ; void init_7279()
 01CE           ; {
 01CE           ;     SREG|=0x80;                                   /* 状态寄存器,全局中断允许 */
 01CE 7894              bset 7
 01D0           ;     EIMSK|=0x08;                                  /* 外部中断屏蔽寄存器       */
 01D0 89B7              in R24,0x39
 01D2 8860              ori R24,8
 01D4 89BF              out 0x39,R24
 01D6           ;     EICRA&=0x3f;                                  /* 外部中断控制寄存器A

⌨️ 快捷键说明

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