INIT_ALL
;调入校准信息到控制寄存器
CALL #0xFFF
MOV OSCCAL0, R0 ;晶振校准0
NOP
NOP
CALL #0xFFE
MOV OSCCAL1, R0 ;晶振校准1
NOP
NOP
;选择工作频率
MOV R0 ,#0x60
MOV OSCCTL, R0 ;设置为8M
;端口初始化
MOV R0 ,#0xFF
MOV TR0, R0 ;设置P0端口为输入
MOV R0 ,#0x00
MOV TR1, R0 ;设置P1端口为输出
MOV R0 ,#0X0F
MOV TR2, R0 ;设置P2端口的4,5,6,7为输出,0,1,2,3,为输入
CLR P0
CLR P1
CLR P2
;初始化定时器0
MOV R0 ,#0X84
MOV OPTR, R0 ;定时器0,分频为1:32,现在晶振为4M,一条指令为1us
(1/(4M/4)=1us ),则经过32us,计数1
MOV R0 ,#0X64
MOV T0, R0 ;设定定时5MS, 0X64=100D 即计数156后为256
溢出产生中断,而156*32=4992 约为5000us=5ms
MOV R0,#0Xa0
MOV INTCTL,R0 ;使能总中断AIE、使能T0中断T0IE、清T0中断标志
位T0IF
CRET
;*************************************************************
*****************
;* 函 数 名: LED_DISPLAY
;* 函数功能: 数码管显示函数,由4个8位LED灯显示
;* 入口参数: THOUSAND 千位 ,HUNDRED 百位 ,SMQ_S 十位, UNIT 个位 ,
每个数的范围 0~f
;* 返 回: 无
;*************************************************************
*****************
|