初始化的例子。
ORG 0060H
MAIN: MOV P1,#0FFH ;
MOV SP,#30H ;堆栈
MOV TMOD,#26H ;计数器1为工作方式2自动加载,计数器0为工作方式2
MOV T2MOD,#01H
MOV TL0,#0FFH ;置计数器0初值
MOV TH0,#0FFH
MOV TL1,#0FDH ;;;;;;;;波特率=9600 when XTAL=11.05920MHz
MOV TH1,#0FDH ;BUT IT IS 12.000MHz
MOV TL2,#0B8H ;置计数器2初值 ;T2需要从新装载,时间为62.5mS
MOV TH2,#17H
MOV RCAP2L,#0B8H;计数器2重新装载值
MOV RCAP2H,#17H
SETB PT2 ;T2中断优先级设置
SETB TR0 ;TR0置1,计数器0启动
SETB TR1 ;;;;;;;;;TR1置1,计数器1启动
SETB TR2 ;TR2置1,计数器2启动
MOV SCON,#01010000B ;;;;;;;;串口为方式1,允许接收。
MOV PCON,#00H ;;;;;;;;;波特率不加倍
;SETB PS ;串口中断优先与硬中断
SETB ET0 ;计数0允许中断
CLR ET1 ;T1 波特率发生,不能打开中断
SETB ET2 ;计数2允许中断
SETB IT0 ;外部中断t0脉冲边沿触发
SETB EX0 ;外部中断0允许
SETB ES ;;;;;;;;;串行中断允许
SETB EA ;开总中断
发表时间:2002年3月8日13:41:00