📄 system.asm
字号:
//===================================================
//文件名称:System.asm
//功能描述:IO口初始化,波形初始化
//完成日期:2003-6-12
//======================================================
.INCLUDE hardware.inc;
.RAM
.EXTERNAL _Out_Value
.CODE
.PUBLIC _System_Initial;
_System_Initial: .PROC
r1 = 0
[P_INT_Ctrl] = r1
r1=0x0000
[P_SystemClock]=r1 //CPUCLK选择FOSC=24.576M
r1 = 0x0000 //IOA0--IOA5 接键盘,设置为带下拉电阻的输入
[P_IOA_Dir] = r1
[P_IOA_Attrib] = r1
r1 = 0x0000
[P_IOA_Data] = r1
retf;
.ENDP;
.PUBLIC _InitOutTriang //输出三角波初始化
_InitOutTriang: .PROC
INT OFF
r1=0x030 //CLKa=FOSC/2=12.288MHz,CLKb=1
[P_TimerA_Ctrl]=r1
r1=0x0000;
[P_DAC_Ctrl]=r1;
r1=0x2000; //D/A初值,用D/A中间的一段
[_Out_Value]=r1
r1=0x1000 //允许TimerA 中断
[P_INT_Ctrl] = r1
IRQ ON
retf
.ENDP
.PUBLIC _OutputTriang
_OutputTriang: .PROC
bp=sp
r1=[bp+3] //计数初值
[P_TimerA_Data]=r1
RETF
.ENDP
.PUBLIC _InitOutSQUARE //输出方波
_InitOutSQUARE: .PROC
INT OFF
r1=0x032 //CLKa=32768Hz
[P_TimerB_Ctrl]=r1
r2=65535-3 //定时10us///////是定时100us吗
[P_TimerB_Data]=r2
r1=0x0000;
[P_DAC_Ctrl]=r1; //直接将DAr1内数据锁存到DAC1内
//直接将DAR2内数据锁存到DAC2内
r1=0x0400 //允许TimerB中断
[P_INT_Ctrl] = r1
IRQ ON
retf
.ENDP
.PUBLIC _outdac
_outdac: .PROC
int off
bp=sp
r2=[bp+3]
[P_DAC1]=R2
[P_DAC2]=R2
retf
.ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -