1、单片机3.1;外部数据存储器两个单元000EH,000FH互换ORG 0000HMOV P2,#00H ;P2+P0MOV R0,#0EHMOV R1,#0FHMOVX A,R0MOV B,AMOVX A,R1MOVX R0,AMOV A,BMOVX R1,ASJMP $END3.2 ;求R(30H)(31H)单元的补码,结果保存在20H,21HORG 0000HMOV A,30H ;(30H)(31H)JNB ACC.7,ABCCLR A ;10000H-(30H)(31H)SUBB A,31HMOV 21H,A ;保存结果MOV A,#00HSUBB A,30HSETB ACC.7MOV
2、20H,AABC:SJMP $ ;111111*END3.3 ;保20H单元中的压缩BCD码,变成非压缩的BCD码,结果放在21H,22HORG 0000HMOV A,20H ;34HMOV 21H,#00HMOV 22H,#00HMOV R0,#22HXCHD A,R0SWAP AMOV 21H,ASJMP $END3.4;把one单元的二进制数,变成压缩BCD码,放在HUND,TEN单元ONE EQU 20HHUND EQU 21HTEN EQU 22HORG 0000H ;255MOV A,ONEMOV B,#100DIV ABMOV HUND,AMOV A,BMOV B,#10DIV
3、ABSWAP AADD A,BMOV TEN,ASJMP $END3.5 ;比较40H,41H单元的大小,大的存GR,小的存LE,相等存两个GR EQU 30HLEE EQU 31HORG 0000HMOV A,40HSUBB A,41HJZ ABCJC BCD MOV GR,40H ;没借位 MOV LEE,41H SJMP $BCD:MOV GR,41H ;有借位 MOV LEE,40H SJMP $ABC:MOV GR,40H ;相等操作 MOV LEE,40H SJMP $ END3.6 ;X0,Y=X;X=0,Y=20H:XT0MOV TL0,#0B0H ;设起点SETB TR0 ;
4、在TCON.4MOV IE,#10000010B ;设置了T0中断MOV A,#11111110Bsjmp $T_0:MOV TH0,#3CH ;初值65536-50000=15536(3CB0H)-T0 MOV TL0,#0B0H ;设起点 MOV P1,A RL A RETIEND7.2 ORG 0000HAJMP MAIN0ORG 000BHAJMP T_0ORG 001BHAJMP T_1MAIN0:;100ms,T0选择了方式1(16),选择了(定时)T1计数,方式2(8)MOV TMOD,#01100001B ;T0,T1 ,TR0MOV TH0,#3CH ;初值65536-500
5、00=15536(3CB0H)-T0MOV TL0,#0B0H ;设起点MOV TH1,#0FBH ;100H-5= FBMOV TL1,#0FBHSETB TR0 ;在TCON.4SETB TR1MOV IE,#10001010B ;设置了T0,T1中断sjmp $T_0:MOV TH0,#3CH ;初值65536-50000=15536(3CB0H)-T0 MOV TL0,#0B0H ;设起点 CPL P1.0 CPL P1.2 RETIT_1:CPL P1.7 RETIEND7.3 ORG 0000HAJMP MAIN0ORG 000BHAJMP T_0MAIN0:;100ms,T0选择
6、计数方式2(8),T1定时,方式2MOV TMOD,#00100110B ;MOV TH0,#0FFH ;初值65536-50000=15536(3CB0H)-T0MOV TL0,#0FFH ;设起点SETB TR0 ;启动T0MOV IE,#10000010B ;设置了T0中断sjmp $T_0: SETB P1.0 ACALL delay500u CLR P1.0 ACALL delay500u CPL P1.1 SJMP T_0 RETIdelay500u:;100ms,选择了方式1(16),选择了(定时)MOV TH1,#6 ;初值65536-50000=15536(3CB0H)-T0
7、MOV TL1,#6 ;设起点SETB TR1 ;在TCON.4JNB TF1,$ ;等TF=1CLR TF1RETEND7.4 ORG 0000HAJMP MAIN0ORG 000BHAJMP T_0MAIN0:;T0必须是定时方式1,起动条件为TR0=1,MOV TMOD,#11100001B ;T1选择计数方式2,门控位为1,两个起动条件MOV TH0,#3CH ;50000个脉冲MOV TL0,#0B0HSETB TR0SETB TR1MOV IE,#10000010BMOV R2,#10MAIN1:MOV A,TL1CJNE A,#16,ABCMOV TL1,#1ABC:MOV DP
8、TR,#Z_TABMOVC A,A+DPTRMOV P1,ASJMP MAIN1T_0:MOV TH0,#3CH ;50000个脉冲 MOV TL0,#0B0H DJNZ R2,T_0_0 CPL P3.7 MOV R2,#10T_0_0:RETIZ_TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0c6H,0A1H,86H,8EH,0B6H END8.1a ORG 0000HMOV TMOD,#00100000BMOV TH1,#230MOV TL1,#230SETB TR1 ;以上设置波特率为1200MOV SC
9、ON,#01000000B ;设置串行发送为方式1MOV R2,#0ABC:MOV SBUF,R2JNB TI,$ ;等待TI等于1(发送完成)CLR TI ;清除发送标志INC R2ACALL DELAYCPL P3.2CJNE R2,#16,ABCSJMP $delay: PUSH 05H ;延时程序 PUSH 06H PUSH 07H MOV R7,#4delay1:MOV R6,#250delay2:MOV R5,#250delay3:NOP NOP DJNZ R5,delay3 DJNZ R6,delay2 DJNZ R7,delay1 POP 07H POP 06H POP 05H RETEND8.2bORG 0000HMOV TMOD,#00100000BMOV TH1,#230MOV TL1,#230SETB TR1 ;以上设置波特率为1200MOV SCON,#50H ;方式1,且允许的接收ABC:JNB RI,$ ;等待数据的到来CLR RIMOV A,SBUFMOV DPTR,#Z_TABMOVC A,A+DPTRMOV P2,ASJMP ABCZ_TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0c6H,0A1H,86H,8EH END
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1