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

📄 key_display.l

📁 使用三星芯片的控制程序,可供三星8位MCU初学者参考!
💻 L
📖 第 1 页 / 共 3 页
字号:
  406  0CAD   EB 18              jr ne,key_5_sub_end             ;fire off ,exit        
  407  0CAF   20 14              inc fire_value                  ;fire+
  408  0CB1   A6 14 01           cp  fire_value,#01H
  409  0CB4   7B 07              jr  ult,fire_min
  410  0CB6   A6 14 0A           cp  fire_value,#0AH
  411  0CB9   BB 07              jr  ugt,fire_max
  412  0CBB   8B 0A              jr  key_5_sub_end
  413  0CBD              fire_min:
  414  0CBD   E6 14 01           ld  fire_value,#01H
  415  0CC0   8B 05              jr  key_5_sub_end
  416  0CC2              fire_max:
  417  0CC2   E6 14 0A           ld  fire_value,#0AH
  418  0CC5   8B 00              jr  key_5_sub_end
  419  0CC7              key_5_sub_end:
  420                    ;        ld  I2C_data,fire_value
  421                    ;        ld  I2C_dress,#fire_value_dress
  422                    ;        call WR_24C02
  423                    ;        ld  beep_flag,#01h
  424  0CC7   AF                 ret        
  425                    ;***************************************************************         
  426                    ;*************************************************************** 
  427  0CC8              key_6_sub:
  428  0CC8   76 10 01           tm fire_status,#01H
  429  0CCB   EB 18              jr ne,key_6_sub_end             ;fire off ,exit        
  430  0CCD   00 14              dec fire_value                  ;fire-
  431  0CCF   A6 14 01           cp  fire_value,#01H
  432  0CD2   7B 07              jr  ult,fire_min_1
  433  0CD4   A6 14 0A           cp  fire_value,#0AH
  434  0CD7   BB 07              jr  ugt,fire_max_2
  435  0CD9   8B 0A              jr  key_6_sub_end
  436  0CDB              fire_min_1:
  437  0CDB   E6 14 01           ld  fire_value,#01H
  438  0CDE   8B 05              jr  key_6_sub_end
  439  0CE0              fire_max_2:
  440  0CE0   E6 14 0A           ld  fire_value,#0AH
  441  0CE3   8B 00              jr  key_6_sub_end
  442  0CE5              key_6_sub_end:
  443                    ;        ld  I2C_data,fire_value
  444                    ;        ld  I2C_dress,#fire_value_dress
  445                    ;        call WR_24C02
  446                    ;        ld  beep_flag,#01h
  447  0CE5   AF                 ret        
  448                    ;***************************************************************           
  449                    ;*************************************************************** 
  450  0CE6              key_7_sub:
  451  0CE6   A6 10 00           cp fire_status,#00H              
  452  0CE9   6B 08              jr eq,fire_on                   ;if fire_status=0=off jump to fire on
  453                            
  454  0CEB              fire_off:                               ;if fire_status=1=on  to fire off
  455  0CEB   E6 10 00           ld fire_status,#00H
  456  0CEE   56 E0 DF           and p0,#11011111B               ;clear p0.5 disenble LIGHTS
  457                            
  458  0CF1   8B 20              jr key_7_sub_end
  459                            
  460  0CF3              fire_on:
  461  0CF3   E6 10 01           ld fire_status,#01H
  462  0CF6   46 E0 20           or p0,#00100000B                ;set p0.5 enble LIGHTS
  463                            
  464  0CF9              sound_judge:        
  465  0CF9   A6 13 01           cp sound_status,#01H
  466  0CFC   6B 05              jr eq,sound_judge_1
  467  0CFE   F6 0D 18           call sound_close
  468  0D01   8B 03              jr lamp_judge
  469  0D03              sound_judge_1:
  470  0D03   F6 0D 14           call sound_open
  471                    
  472  0D06              lamp_judge:                
  473  0D06   A6 12 01           cp lamp_status,#01H
  474  0D09   6B 05              jr eq,lamp_judge_1
  475  0D0B   F6 0D 20           call lamp_close
  476  0D0E   8B 03              jr key_7_sub_end
  477  0D10              lamp_judge_1:
  478  0D10   F6 0D 1C           call  lamp_open     
  479                    
  480  0D13              key_7_sub_end:
  481                            
  482                    ;        ld  beep_flag,#01h
  483  0D13   AF                 ret
  484                            
  485                    ;**************************************************************
  486  0D14              sound_open:
  487  0D14   56 E0 F7           and p0,#11110111B               ;clear p0.3  enble spker
  488  0D17   AF                 ret
  489                            
  490  0D18              sound_close:
  491  0D18   46 E0 08           or p0,#00001000B               ;set p0.3  disenble spker
  492  0D1B   AF                 ret
  493                            
  494  0D1C              lamp_open:
  495  0D1C   56 E0 EF           and p0,#11101111B               ;clear p0.4  enble lamp
  496  0D1F   AF                 ret 
  497                            
  498  0D20              lamp_close:
  499  0D20   46 E0 08           or p0,#00001000B               ;set p0.4  disenble lamp
  500  0D23   AF                 ret              
  501                    ;***************************************************************       
  502                    ;*************************************************************** 
  503  0D24              key_8_sub:
  504  0D24   76 10 01           tm fire_status,#01H
  505  0D27   EB 13              jr ne,key_8_sub_end
  506                            
  507  0D29   A6 13 00           cp sound_status,#00H              
  508  0D2C   6B 08              jr eq,sound_on                   ;if sound_status=0=off jump to sound on
  509                            
  510  0D2E              sound_off:                                ;if sound_status=1=on  to sound off
  511  0D2E   E6 13 00           ld sound_status,#00H  
  512  0D31   F6 0D 18           call  sound_close   
  513  0D34   8B 06              jr key_8_sub_end
  514                            
  515  0D36              sound_on:
  516  0D36   E6 13 01           ld sound_status,#01H
  517  0D39   F6 0D 14           call sound_open
  518                    
  519  0D3C              key_8_sub_end:
  520                    ;        ld  I2C_data,sound_status
  521                    ;        ld  I2C_dress,#sound_status_dress
  522                    ;        call WR_24C02
  523                    ;        ld  beep_flag,#01h      
  524  0D3C   AF                 ret        
  525                    ;***************************************************************          
  526                    
  527                    
  528                    
  529                    
  530                    
  531                    
  532                            
  533                            
  534                    ;*************************************************************************
  535                    ;led_display subroutine
  536                    ;*************************************************************************
  537  0D3D              led_scan:
  538  0D3D   A6 1B 01           cp led_display_flag,#01H        ;if time=15s led off, else led on
  539  0D40   EB 52              jr ne,led_scan_end
  540                    
  541                    
  542                            
  543  0D42              led_temp:
  544  0D42   2C 0B              ld r2,#0bh        
  545  0D44   38 15              ld r3,temp_value
  546  0D46   C3 02              ldc r0,@rr2                     ;of00h
  547  0D48   46 E1 02           or p1,#02H
  548  0D4B   46 E2 03           or p2,#03H                      ;Q1 Q2 Q3 off       
  549  0D4E   09 00              ld serial_data,r0               ;temp on 
  550  0D50   F6 0D 95           call  serial_out      
  551  0D53   56 E2 FD           and p2,#11111101B               ;Q1  on p2.1
  552                                   
  553  0D56   2C 0B              ld r2,#0bh        
  554  0D58   38 15              ld r3,temp_value
  555  0D5A   E7 02 10           ldc r0,#10h[rr2]                ;0f10h              
  556  0D5D   46 E1 02           or p1,#02H
  557  0D60   46 E2 03           or p2,#03H                      ;Q1 Q2 Q3 off        
  558  0D63   09 00              ld serial_data,r0               ;temp on 
  559  0D65   F6 0D 95           call  serial_out             
  560  0D68   56 E2 FE           and p2,#11111110B               ;Q3 on p2.0
  561                            
  562  0D6B              led_fire:
  563  0D6B   2C 0B              ld r2,#0bh        
  564  0D6D   38 14              ld r3,fire_value
  565  0D6F   C3 02              ldc r0,@rr2                     ;of00h
  566  0D71   46 E1 02           or p1,#02H
  567  0D74   46 E2 03           or p2,#03H                      ;Q1 Q2 Q3 off       
  568  0D77   09 00              ld serial_data,r0               ;temp on 
  569  0D79   F6 0D 95           call  serial_out      
  570  0D7C   56 E1 FD           and p1,#11111101B               ;Q2  on p1.1
  571                                   
  572  0D7F   2C 0B              ld r2,#0bh        
  573  0D81   38 14              ld r3,fire_value
  574  0D83   E7 02 20           ldc r0,#20h[rr2]                ;0f20h              
  575  0D86   46 E1 02           or p1,#02H
  576  0D89   46 E2 03           or p2,#03H                      ;Q1 Q2 Q3 off        
  577  0D8C   09 00              ld serial_data,r0               ;temp on 
  578  0D8E   F6 0D 95           call  serial_out             
  579  0D91   56 E2 FE           and p2,#11111110B               ;Q3 on p2.0
  580                            
  581  0D94              led_scan_end:
  582  0D94   AF                 ret        
  583                            
  584                    ;************************************************************************
  585                    ; serial out subroutine                                                                                    
  586  0D95              serial_out:
  587  0D95   90 00              rl  serial_data                 ;p2.2=data  2<-data
  588  0D97   90 00              rl  serial_data
  589  0D99   0C 08              ld  r0,#08                      ;n=8
  590                            
  591  0D9B              serial_out_loop:             
  592  0D9B   18 00              ld  r1,serial_data
  593                            
  594  0D9D   54 01 E2           and p2,serial_clk_0             ;clk=0
  595  0DA0   56 C1 04           and r1,#04H                     ;bit 2 (P2.2) Keep on
  596  0DA3   44 C1 E2           or  p2,r1                       ;bit 2 (P2.2) serial out
  597  0DA6   44 02 E2           or  p2,serial_clk_1             ;clk=1
  598                            
  599  0DA9   E0 00              rr  serial_data                 ;bit 0 first, bit 7 end
  600  0DAB   00 C0              dec r0                          ;serial_number-1=0?
  601  0DAD   EB EC              jr  nz,serial_out_loop          ;if serial_number=0 end, else  again
  602  0DAF   AF                 ret
  603                    ;***************************************************************************
  604                    
  605                        
  606                        
  607  0DB0              .end


Total 440 Lines Assembled - 0 Errors, 0 Warnings
Total code size 0x24D


⌨️ 快捷键说明

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