📄 led.asm
字号:
//-----------------------------------------------------------------------------
// 版权归新华龙电子公司所有
//-----------------------------------------------------------------------------
//
// 文件名:LED.ASM
//
// 编写人:LC
//
// 编写时间:2005/2/25
//
// 目标器件: C8051F02x
//
// 编译工具: Silicon Laboratories IDE
//程序说明:
// 此程序用于测试教学实验机上的16个发光二极管,正常情况下应轮流点亮.
//---------------------------------------------------------------------
// 头文件包含
//-------------------------------------------------------------------------
$include (c8051f020.inc)
//---------------------------------------------------------------------------
// 常量定义
//----------------------------------------------------------------------
SYSCLK EQU 2000000 ;系统工作频率
TIMER3 EQU SYSCLK * 1024
ORG 0
AJMP main
ORG 73H
AJMP Timer3_ISR
ORG 0100H
//---------------------------------------------------------------------------
// 主程序
//----------------------------------------------------------------------------
main:
MOV WDTCN,#0deH
MOV WDTCN,#0adH ;禁止看门狗定时器
LCALL PORT_Init ;初始化I/O口
LCALL Timer3_Init ;初始化定时器3
MOV REF0CN,#02H
MOV R0,#0FEH ;置扫描值
SETB EA ;开总中断
LJMP $
RET
;通用I/O口及交叉开关初始化
PORT_Init:
MOV XBR2,#40H
ORL P74OUT,#0ffH
RET
;定时器3初始化
Timer3_Init:
MOV TMR3CN,#00H
MOV TMR3RLH, #HIGH(-TIMER3) ;装载值
MOV TMR3RLL, #LOW(-TIMER3)
MOV TMR3H, #0ffh ;设置自动重载值
MOV TMR3L, #0ffh
ORL TMR3CN,#04H
ORL EIE2,#01H ;使能定时器3
RET
;定时器3中断服务程序
Timer3_ISR:
ANL TMR3CN,#NOT(80h) ;清中断标志
MOV A,R0
MOV P4,A ;送数据到P4口
SETB C
RLC A ;带进位左移
MOV R0,A
CJNE A,#0FFH,TT ;第八灯是否点亮
MOV R0,#0FEH
TT:
RETI
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -