ppeter:
STC12C5410AD和STC11F32AD是8051的兼容單片機(jī)我再做了查詢方式和中斷方式的實(shí)驗(yàn)發(fā)現(xiàn)很奇怪的現(xiàn)象STC11F32AD在中斷方式時(shí)是正確的其他都不行到底是怎么回事?以下是查詢方式和中斷方式的程序請大家?guī)蛶兔Ψ浅8兄x!STC12C5410AD:988098809E8080808680F880FE80E080E68018001E00STC11F32AD:0A0B0A0B08090E0F0C0D0203 JMPMAIN ORG30HMAIN: MOVSP,#070HMOV SCON,#050H;控制狀態(tài)字 MOVTMOD,#020H;T1作波特率發(fā)生器MOV TH1,#0FDH ;選定波特率9600MOV TL1,#0FDHSETB TR1SETB EA ;開串行口中斷SETB ESCLRTI;1.查詢方式:MOVR0,#00TRAM:MOVA,R0 ;取數(shù)據(jù)XRLA,#10DJZENDD MOVSBUF,A ;發(fā)送一個(gè)字符WAIT:JBCTI,NEXT;等待發(fā)送結(jié)束SJMPWAITNEXT:INCR0 ;準(zhǔn)備下一次發(fā)送SJMPTRAMENDD:NOPNOPSJMPENDDEND----------------------------------------------------------STC12C5410AD:00060018001E006000660078007E00808086809880STC11F32AD:000102030405060708090A (這個(gè)是正確的)JMPMAINORG0023H;串行口中斷入口AJMP SINT ORG30HMAIN: MOVSP,#070HMOV SCON,#050H;控制狀態(tài)字 MOVTMOD,#020H;T1作波特率發(fā)生器MOV TH1,#0FDH ;選定波特率9600MOV TL1,#0FDHSETB TR1SETB EA ;開串行口中斷SETB ESCLRTI;2.中斷方式:TRAM:MOVR0,#00MOVA,R0 ;取數(shù)據(jù)MOVSBUF,A ;發(fā)送第一個(gè)字符H:SJMPH ;其它工作SINT:CLR TI ;中斷服務(wù)程序XRLA,#10DJZHHINCR0MOVA,R0 ;取數(shù)據(jù)MOVSBUF,A ;發(fā)送下一個(gè)字符HH:RETIEND