- 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
- ;* 返 回: 无
- ;*************************************************************
- *****************
|