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

📄 msc.asm

📁 MCS-51单片机实验 39个实用实验和源码
💻 ASM
字号:
;FOR    EAT598
PI      EQU     0F208H          ;开关输入口地址
        ORG     0000H
        LJMP    START
        ORG     000BH           ;T0 中断程序入口地址
        LJMP    INT_T0
        ORG     0040H
START:
        MOV     SP,#60H
        MOV     TMOD,#01H       ;T0 方式 1
        CLR     TR0             ;关 T0
        SETB    ET0
        SETB    EA              ;开中断
READ:
        MOV     DPTR,#PI
        MOVX    A,@DPTR         ;读开关值
        MOV     R1,A
        MOV     R0,#08H         ;置计数器初值
        MOV     A,#01H          ;置比较初值
KEY:
        ANL     A,R1
        JZ      SOUND           ;比较开关值
        RL      A               ;改变比较值
        DJNZ    R0,KEY
        CLR     TR0             ;开关未拨,不发声
        SJMP    READ
SOUND:
        DEC     R0
        MOV     A,R0
        ADD     A,R0            ;产生表格偏移量
        MOV     R0,A
        MOV     DPTR,#FREQUENCY ;置表格起始值
        MOVC    A,@A+DPTR
        MOV     R7,A            ;查表,将结果存入公用寄存器R6,R7
        MOV     A,R0
        INC     A
        MOVC    A,@A+DPTR
        MOV     R6,A
        SETB    TR0             ;T0 允许
        SJMP    READ
INT_T0: CLR     TR0             ;T0 关闭
        CPL     P1.0            ;产生波形
        MOV     TH0,R7          ;重载定时器
        MOV     TL0,R6
        SETB    TR0             ;T0 允许
        RETI
; 音阶频率表
FREQUENCY:
        DB      0FCH,8FH,0FCH,5BH,0FBH,0E9H,0FBH,68H    ;i,7,6,5
        DB      0FAH,0D8H,0FAH,8CH,0F9H,0E1H,0F9H,21H   ;4,3,2,1
        END

⌨️ 快捷键说明

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