;************************************************** ;P87C591_SIO0_SPS.ASM ;P87C591标准串行接口SIO0使用内部波特率发生器 ;TXD不断送出AAH和55H两个十六进制数 ;************************************************** S0PSL DATA 0FAH ;内部波特率发生器预分频器 S0PSH DATA 0FBH S0CON DATA 98H S0BUF DATA 99H ORG 0000H LJMP START ORG 30H START: MOV SP,#5FH ;初始化堆栈 MOV S0CON,#01000000B ;串口工作方式1 ORL PCON,#10000000B ;SMOD=1 MOV S0PSL,#64H ;定时初值 12MHz,4800波特 MOV S0PSH,#0FH ORL S0PSH,#10000000B ;SPS=1,使能内部波特率发生器 MOV A,#0AAH ;待送的数据 SEND: MOV S0BUF,A LOOP: JBC TI,NEXT ;是否送完? AJMP LOOP NEXT: CALL DELAY ;延时 CPL A ;A是的值AAH取反之后是55H LJMP SEND ;延时程序 DELAY: MOV R7,#10 D1: MOV R6,#200 D2: NOP NOP NOP NOP DJNZ R6,D2 DJNZ R7,D1 RET END