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

📄 qth2001.asm

📁 达盛单片机试验箱
💻 ASM
字号:
; 系统晶振是 11.0592 MHz
PI    EQU    8200H        ;开关输入口地址
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 + -