📄 init_43.asm
字号:
;*****************************************************
;Company : CHK
;File Name : INIT.asm
;Author : XiaoW
;Create Data : 2005-11-10
;Last Modified : 2005-11-10
;Description :
;程序初始化模块
;功能:完成寄存器初始化
;参量:
;返回变量: ALL
;控制I/O: ALL
;可修改数据(伪指令)
;
;参数模型:
;Version : 1.0
;*****************************************************
;
; FOR RAM CLEAR
B0 EQU 0H
INITMCU:
;--------系统寄存器初始化------------------------------------------------------
;******** PORTS SET **************
LDI PFCON,0FH
LDI PORTF,0FH ;set portF to be output port
LDI PECON,0FH ;设置PORTE.2 INPUT(PSDI), PORTE.1 OUTPUT(PSDO)
LDI PORTE,0FH ;set portE to be output port
LDI PDCON,0FH
LDI PORTD,0FH ;set portD to be output port
LDI PCCON,0FH
LDI PORTC,07H ;set portC to be output port PC.3 INPUT (PSCK)
LDI PBCON,0FH ;设置PORTB OUTPUT
LDI PORTB,0FH ;set portB to be output port
LDI PACON,0CH ; 设置PortA AD 输入 PA.0 PA.1 INPUT AD
LDI PORTA,0CH ; set portA to be output port
;*********** END PORTS SET ***************
;************ TIMER SET ******************
//LDI TM0,0111B ;set timer 0 freq.(OSC/4)/32=64 us
//LDI TL0,0FH ;set T0L=0FH
//LDI TH0,0FH ;set T0H=0FH
;LDI T0CON,0010B ;定时器时钟源为外部时钟,本例使
;LDI TM1,0101B ;set timer 0 freq.(OSC/4)/32=64 us
;LDI TL1,06H ;set T0L=0FH
;LDI TH1,00H ;set T0H=0FH
;************** END TIMER SET**************
;************ PWM SET ******************
;LDI PWM0CON,1 ;PWM0 设置位正向占空比,PWM0 时钟=tosc,选择PWM0 输出
;LDI PWM0PH,3 ;先设置PWM0 周期高2 位
;LDI PWM0PM,0FH ;然后设置PWM0 周期中4 位
;LDI PWM0PL,0 ;最后设置PWM0 周期低4 位;PWM0 周期为3F0H* tosc=1008*250ns≈25us
;LDI PWM0DH,0 ;先设置PWM0 占空比高2 位
;LDI PWM0DM,7 ;然后设置PWM0 占空比中4 位
;LDI PWM0DL,0FH ;最后设置PWM0 占空比低4 位
;PWM0 占空比为7FH* tosc=127*250ns≈3us
;LDI PWM1CON,9 ;PWM1 设置位反向占空比,PWM0 时钟=tosc,选择PWM1 输出
;LDI PWM1PH,3 ;先设置PWM1 周期高2 位
;LDI PWM1PM,0FH ;然后设置PWM1 周期中4 位
;LDI PWM1PL,0 ;最后设置PWM1 周期低4 位
;PWM1 周期为3F0H* tosc=1008*250ns≈25us
;LDI PWM1DH,0 ;先设置PWM1 占空比高2 位
;LDI PWM1DM,7 ;然后设置PWM1 占空比中4 位
;LDI PWM1DL,0FH ;最后设置PWM1 占空比低4 位
;************** END PWM SET**************
;************ AD SET ******************
;LDI PAOUT,1110B ;AN0 对应的PORTA.0 口定义为输入.
LDI ADMODE,0010B ;选择内部基准电压VREF,模拟;通道数2个,AN0-1)
;LDI ADCH,1000B ;选择通道AN0 并使能
;LDI ADCON,1001B ;开始转换,时间 330*tOSC
;************** END AD SET*************
;************ WDT SET ******************
;************** END WDT SET*************
;--------------------------------------------------------------------------
;用户RAM初始化
;--------------------------------------------------------------------------
LDI DPH, 1
LDI DPM, 3H
LDI DPL, 0FH
LOOP_BANK0:
LDI INX, 0 ;清空BANK0
SBIM DPL, 01
LDI 30H, 0
SBCM DPM, B0
LDI 30H, 0
SBCM DPH, B0
LDI 30H, 0
SUB DPL, B0
LDI 30H, 3
SBC DPM, B0
LDI 30H, 0
SBC DPH, B0
BC LOOP_BANK0
;************ IE SET ******************
LDI IRQ, 0000B
LDI IE, 0100B ;定时器T0作外部中断
;************** END IE SET*************
RTNI
;-----------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -