📄 lm386.asm
字号:
;*****************************************************************************************
; MCS8051-III学习板演示程序
;
; (c) Copyright 2007-2007,广州恒芯电子
; All Rights Reserved
;*****************************************************************************************
;*****************************************************************************************
;程序说明
;*****************************************************************************************
;名称: MCS8051-III学习板演示程序(LM386测试)
;功能: 发出报警声
;版本:2007-07-01
;*****************************************************************************************
;硬件说明
;*****************************************************************************************
;单片机: 兼容MCS-51单片机/STC89C51
;晶振频率: 12MHz
;*****************************************************************************************
;说明:程序预定义
;*****************************************************************************************
LM386_DATA EQU P3.7 ;数码管动态扫描值(值为从0到3)
;*****************************************************************************************
;说明:程序开始
;*****************************************************************************************
ORG 0000H ;程序首地址 PC=0000H
JMP START ;程序跳转到START PC=0030H
ORG 000BH ;T0中断程序入口
JMP BELL
ORG 0030H ;程序开始
START:
;T0中断设定
MOV TMOD, #00000001B ;使用T0:GATE=0,C/T=0(定时),M1 M0=01(工作方式1)
SETB ET0 ;允许T0中断
SETB TR0 ;使T0工作
SETB EA ;总中断开启
L1:
JB 20H.0, L2
MOV 70H, #0FFH ;频率为5K
MOV 71H, #38H
JMP L3
L2:
MOV 70H, #0FCH ;频率为1K
MOV 71H, #38H
L3:
CPL 20H.0 ;频率转换标志
CALL DELAY ;延时
CALL DELAY
CALL DELAY
CALL DELAY
JMP L1
;*****************************************************************************************
;函数:LEDSCAN
;说明: 数码管动态扫描处理程序
;参数: 无
;返回; 无
;*****************************************************************************************
BELL:
CPL LM386_DATA ;LM386数据端取反
MOV TH0, 70H ;加载定时值
MOV TL0, 71H
RETI ;中断返回
;*****************************************************************************************
;函数:DELAY
;说明:程序延时
;参数: 无
;返回: 无
;*****************************************************************************************
DELAY:
MOV R6, #0FFH
DELAY_1:
MOV R7, #0FFH
DJNZ R7, $
DJNZ R6, DELAY_1
RET
;*****************************************************************************************
;说明:程序结束
;*****************************************************************************************
END ;程序结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -