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

📄 sing.lst

📁 这是购买周立功的试验箱时候松的源代码。很经典的代码。希望学习单片机的朋友好好研究。短小精悍。有意思。这是第一部分。
💻 LST
字号:
A51 MACRO ASSEMBLER  SING                                                                 02/04/2004 17:09:16 PAGE     1


MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN sing.OBJ
ASSEMBLER INVOKED BY: C:\KEIL\C51\BIN\A51.EXE sing.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

  00B3                 1             BUZZ    EQU     P3.3
8000                   2             ORG     8000H
8000 028100            3             LJMP    MAIN
800B                   4             ORG     800BH
800B 028177            5             LJMP    INT_T0
8100                   6             ORG     8100H       
                       7             
8100                   8     MAIN:   
8100 758160            9             MOV     SP,#60H         ;初始化堆栈向量
8103 753000           10             MOV     30H,#00         ;定时器初值清零
8106 753100           11             MOV     31H,#00
8109 7590FF           12             MOV     P1,#0FFH        ;设置P1口为输入模式
810C 758901           13             MOV     TMOD,#01H       ;设置定时器0为工作模式1
810F D2A9             14             SETB    ET0             ;开定时器0中断
8111 D2AF             15             SETB    EA              ;开总中断
8113 C28C             16             CLR     TR0             ;关闭定时器0
                      17     
8115                  18     START:  
8115 A890             19             MOV     R0,P1           
8117 B8FF04           20             CJNE    R0,#0FFH,KEY1   ;键盘扫描
811A C28C             21             CLR     TR0
811C 80F7             22             SJMP    START
811E                  23     KEY1:
811E B8FE09           24             CJNE    R0,#0FEH,KEY2   ;K1键按下
8121 7530FB           25             MOV     30H,#0FBH       ;设置音阶1
8124 7531E9           26             MOV     31H,#0E9H
8127 02816F           27             LJMP    SET_TIMER
812A                  28     KEY2:   
812A B8FD09           29             CJNE    R0,#0FDH,KEY3   ;K2键按下
812D 7530FC           30             MOV     30H,#0FCH       ;设置音阶2
8130 75315C           31             MOV     31H,#5CH
8133 02816F           32             LJMP    SET_TIMER
8136                  33     KEY3:
8136 B8FB09           34             CJNE    R0,#0FBH,KEY4   ;K3键按下
8139 7530FC           35             MOV     30H,#0FCH       ;设置音阶3
813C 7531C1           36             MOV     31H,#0C1H
813F 02816F           37             LJMP    SET_TIMER
8142                  38     KEY4:
8142 B8F709           39             CJNE    R0,#0F7H,KEY5   ;K4键按下
8145 7530FC           40             MOV     30H,#0FCH       ;设置音阶4
8148 7531EF           41             MOV     31H,#0EFH
814B 02816F           42             LJMP    SET_TIMER
814E                  43     KEY5:
814E B8EF09           44             CJNE    R0,#0EFH,KEY6   ;K5键按下
8151 7530FD           45             MOV     30H,#0FDH       ;设置音阶5
8154 753145           46             MOV     31H,#045H
8157 02816F           47             LJMP    SET_TIMER
815A                  48     KEY6:
815A B8DF09           49             CJNE    R0,#0DFH,KEY7   ;K6键按下
815D 7530FD           50             MOV     30H,#0FDH       ;设置音阶6
8160 753192           51             MOV     31H,#92H
8163 02816F           52             LJMP    SET_TIMER
8166                  53     KEY7:
8166 B8BF0A           54             CJNE    R0,#0BFH,NOKEY  ;K7键按下
8169 7530FD           55             MOV     30H,#0FDH       ;设置音阶7
816C 7531D6           56             MOV     31H,#0D6H
                      57     
816F                  58     SET_TIMER:
A51 MACRO ASSEMBLER  SING                                                                 02/04/2004 17:09:16 PAGE     2

816F D28C             59             SETB    TR0             ;发声
8171 80A2             60             SJMP    START
8173                  61     NOKEY:
8173 C28C             62             CLR     TR0             ;无键按下
8175 809E             63             SJMP    START
                      64             
8177                  65     INT_T0:                         ;T0中断服务程序
8177 85308C           66             MOV     TH0,30H         ;定时器附初值
817A 85318A           67             MOV     TL0,31H
817D B2B3             68             CPL     BUZZ            ;输出方波
817F 32               69             RETI
                      70     
                      71             END                              
                             
A51 MACRO ASSEMBLER  SING                                                                 02/04/2004 17:09:16 PAGE     3

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

BUZZ . . . . . . .  B ADDR   00B0H.3 A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
ET0. . . . . . . .  B ADDR   00A8H.1 A   
INT_T0 . . . . . .  C ADDR   8177H   A   
KEY1 . . . . . . .  C ADDR   811EH   A   
KEY2 . . . . . . .  C ADDR   812AH   A   
KEY3 . . . . . . .  C ADDR   8136H   A   
KEY4 . . . . . . .  C ADDR   8142H   A   
KEY5 . . . . . . .  C ADDR   814EH   A   
KEY6 . . . . . . .  C ADDR   815AH   A   
KEY7 . . . . . . .  C ADDR   8166H   A   
MAIN . . . . . . .  C ADDR   8100H   A   
NOKEY. . . . . . .  C ADDR   8173H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
SET_TIMER. . . . .  C ADDR   816FH   A   
SP . . . . . . . .  D ADDR   0081H   A   
START. . . . . . .  C ADDR   8115H   A   
TH0. . . . . . . .  D ADDR   008CH   A   
TL0. . . . . . . .  D ADDR   008AH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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