根據題目給出的條件確定程式碼需要的資料或實現方法。1.TMOD定時器T0,對應低四位,方式2,低四位0010.TMOD = 02H2.IE使用的位置1,EA是總控制,涉及中斷都要置1,T0置1.IE = 82H3.初值X週期400us,佔空比3:1,高電平:一週期總時間 = 3:4,可以將一週期分成四個單元方便操作,一單元為100us。根據方式2公式:(2^8 - X)*機器週期 = 100us(一單元)/*方式0將2^8換成2^13,其餘不變 ;方式1將2^8換成2^16,其餘不變。*/由於題主沒有給出機器週期或者晶振頻率,初值X暫且由0ABCH代替,如果題目給出的是晶振頻率,可由公式:(機器週期 = 12/晶振頻率)得到。程式碼: ORG 0000H SJMP START ORG 000BH ;地址:T0:000BH,T1:001BH AJMP TCT0 ORG 0030H ;以上都是偽指令,告訴機器從30H開始寫程式碼,下面是程式碼正文。START:MOV SP,#0040H ;給個指標告訴機器這是斷點,RETI返回地址 MOV TMOD,#02H MOV IE,#82H MOV TH0,#0AH MOV TL0,#0BH ;X的初值的設定,題目中給T1的話TH0,TL0變成TH1,TL1。 MOV TR0,#01H ;允許T0中斷 MOV R0,#00H ;迴圈計數器MAIN: SJMP $TCT0: INC R0 CJNE R0,#03H,TCT1 ;不相等則比較是否經過一個週期,相等則進行下一條指令 CLR P1.0 ;輸出清0TCT1: CJNE R0,#04H,TCTR ;不相等則返回,相等則進行下一條指令 SETB P1.0 MOV R0,#00H ;迴圈計數器清0,新的迴圈重新開始計數,不可少。TCTR: RETI
根據題目給出的條件確定程式碼需要的資料或實現方法。1.TMOD定時器T0,對應低四位,方式2,低四位0010.TMOD = 02H2.IE使用的位置1,EA是總控制,涉及中斷都要置1,T0置1.IE = 82H3.初值X週期400us,佔空比3:1,高電平:一週期總時間 = 3:4,可以將一週期分成四個單元方便操作,一單元為100us。根據方式2公式:(2^8 - X)*機器週期 = 100us(一單元)/*方式0將2^8換成2^13,其餘不變 ;方式1將2^8換成2^16,其餘不變。*/由於題主沒有給出機器週期或者晶振頻率,初值X暫且由0ABCH代替,如果題目給出的是晶振頻率,可由公式:(機器週期 = 12/晶振頻率)得到。程式碼: ORG 0000H SJMP START ORG 000BH ;地址:T0:000BH,T1:001BH AJMP TCT0 ORG 0030H ;以上都是偽指令,告訴機器從30H開始寫程式碼,下面是程式碼正文。START:MOV SP,#0040H ;給個指標告訴機器這是斷點,RETI返回地址 MOV TMOD,#02H MOV IE,#82H MOV TH0,#0AH MOV TL0,#0BH ;X的初值的設定,題目中給T1的話TH0,TL0變成TH1,TL1。 MOV TR0,#01H ;允許T0中斷 MOV R0,#00H ;迴圈計數器MAIN: SJMP $TCT0: INC R0 CJNE R0,#03H,TCT1 ;不相等則比較是否經過一個週期,相等則進行下一條指令 CLR P1.0 ;輸出清0TCT1: CJNE R0,#04H,TCTR ;不相等則返回,相等則進行下一條指令 SETB P1.0 MOV R0,#00H ;迴圈計數器清0,新的迴圈重新開始計數,不可少。TCTR: RETI