AT89S51单片机作业.ppt
《AT89S51单片机作业.ppt》由会员分享,可在线阅读,更多相关《AT89S51单片机作业.ppt(53页珍藏版)》请在冰豆网上搜索。
第2章作业,P402,3,4,6,7,第3章作业1,1.将寄存器R2中的内容传送到寄存器R1中(R2R1);2.片外RAM(0030H)R1;3.片外RAM(0030H)片内RAM(30H);4.片内RAM(30H)片外RAM(2000H);5.ROM(1000H)R0;6.ROM(1000H)片外RAM(0020H);7.ROM(1000H)片内RAM(20H);8.片外RAM(1000H)片外RAM(2000H);,1.将寄存器R2中的内容传送到寄存器R1中(R2R1)MOVA,R2MOVR1,A作业中的错误:
MOVR1,R2指令格式错误:
1)操作码内不能有空格;2)操作码和目的操作数之间必须有空格;3)目的操作数和源操作数之间逗号隔开;4)一行只能写一条指令;5)每个指令一般不用;结束。
2.片外RAM(0030H)R1MOVDPTR,#0030HMOVR0,#30HMOVXA,DPTRMOVXA,R0MOVR1,AMOVR1,A作业中的错误:
1)表示立即数的”#”漏写;2)MOVDPTR,#0030H和MOVDPTR,#30H的区别3)MOVXR1,A的错误4)DPTR-DPRT5)MOVXR1,DPTR,3.片外RAM(0030H)片内RAM(30H)MOVDPTR,#0030HMOVXA,DPTRMOV30H,A作业中的错误:
1)表示立即数的”#”漏写;2)MOVDPTR,#0030H和MOVDPTR,#30H的区别3)DPTR-DPRT4)MOVA,30HMOVXA,DPTR,4.片内RAM(30H)片外RAM(2000H)MOVA,30HMOVXDPTR,#2000HMOVDPTR,A作业中的错误:
1)表示立即数的”#”漏写;2)间接寻址的“”漏写3)DPTR-DPRT,5.ROM(1000H)R0MOVA,#00HMOVDPTR,#1000HMOVCA,A+DPTRMOVR0,A作业中的错误:
1)MOVR0,1000H?
;2)漏写MOVA,#00H3)MOVR0,A?
6.ROM(1000H)片外RAM(0020H)MOVA,#00HMOVDPTR,#1000HMOVCA,A+DPTRMOVDPTR,#0020HMOVXDPTR,A作业中的错误:
1)”#”;2)”,7.ROM(1000H)片内RAM(20H)MOVA,#00HMOVDPTR,#1000HMOVCA,A+DPTRMOV20H,A作业中的错误:
1)MOV20H,1000H,8.片外RAM(1000H)片外RAM(2000H)MOVDPTR,#1000HMOVXA,DPTRMOVDPTR,#2000HMOVXDPTR,A,第3章作业21.试编一程序对外部RAM2000H单元的第0位清零,第7位置1其余各位保持不变。
2.试编一程序对外部RAM3000H单元的第0位置1,第7位清零其余各位求反。
第三章作业2讲解1.试编一程序对外部RAM2000H单元的第0位清零,第7位置1其余各位保持不变。
涉及的知识点:
1)片外RAM单元中数据的传输指令2)利用逻辑与进行位清零和0与结果是0,和1与结果是自己3)利用逻辑或进行位置1和1或结果是1,和0或结果是自己,第三章作业2讲解(续)1.试编一程序对外部RAM2000H单元的第0位清零,第7位置1其余各位保持不变。
MOVDPTR,#2000HxxxxxxxxMOVXA,DPTR11111110ANLA,#FEHxxxxxxx0ORLA,#80H10000000MOVXDPTR,A1xxxxxx0,第三章作业2讲解(续)2.试编一程序对外部RAM3000H单元的第0位置1,第7位清零其余各位求反。
涉及的知识点:
1)片外RAM单元中数据的传输指令2)利用逻辑与进行位清零和0与结果是0,和1与结果是自己3)利用逻辑或进行位置1和1或结果是1,和0或结果是自己4)利用逻辑异或进行位求反和1异或结果求反,和0异或结果是自己(或利用累加器A的求反指令CPLA),第三章作业2讲解(续)2.试编一程序对外部RAM3000H单元的第0位置1,第7位清零其余各位求反。
MOVDPTR,#2000HxxxxxxxxMOVXA,DPTR00000001ORLA,#01Hxxxxxxx1ARLA,#7FH01111111XRLA,#7EH0xxxxxx1MOVXDPTR,A0111111001,第三章作业2讲解(续)2.试编一程序对外部RAM3000H单元的第0位置1,第7位清零其余各位求反。
MOVDPTR,#2000HxxxxxxxxMOVXA,DPTRCPLA00000001ORLA,#01HARLA,#7FH01111111MOVXDPTR,A,第三章作业2讲解(续)2.试编一程序对外部RAM3000H单元的第0位置1,第7位清零其余各位求反。
MOVDPTR,#2000HxxxxxxxxMOVXA,DPTR00000001ORLA,#01Hxxxxxxx1ARLA,#7FH01111111CPLAMOVXDPTR,A,18,第四章作业1)设有100个单字节数组成的数据块,存放在外部RAM中其起始地址为1000H,试编一程序,将这一数据块传送至6000H为起始地址的区域中去。
2)设有两个长度均为10的数组,分别存放在6000H和8000H为起始地址的外部RAM中,试编一程序求其对应项之和,结果存放在第一数组区域中。
3)设有100个带符号的单字节数组成的数组,存放在以2800H为起始地址的存储区域中,试编一程序找出它们中的最小数,并存放到2000H单元中。
4)试编一程序若累加器A中内容分别满足一下条件,则程序转至标号为COMP的存储单元。
设A中为无符号数1)A20;2)A20;3)A20;4)A20.,18,第四章作业讲解1.试编一程序若累加器A中内容分别满足一下条件,则程序转至标号为COMP的存储单元。
设A中为无符号数1)A20;2)A20;3)A20;4)A20.方法1:
两个数据做减法SUBB,可根据借位CY来判断两个数的大小!
方法2:
两个数据做比较CJNE,再根据是否相等和借位CY来判断两个数的大小!
第四章作业讲解1.试编一程序若累加器A中内容分别满足一下条件,则程序转至标号为COMP的存储单元。
设A中为无符号数1)A20;1)A20;CLRCCLRCSUBBA,#14H(#20)CJNEA,#14H,L0JNCCOMPSJMPCOMPCOMP:
XXXXXXXXL0:
JNCCOMPCOMP:
XXXXXXXFINISH:
XXXXXXX,第四章作业讲解1.试编一程序若累加器A中内容分别满足一下条件,则程序转至标号为COMP的存储单元。
设A中为无符号数2)A20;2)A20;CLRCCLRCSUBBA,#14H(#20)CJNEA,#14H,L0JNCCOMPSJMPFINISHCOMP:
XXXXXXXXL0:
JNCCOMPCOMP:
XXXXXXXFINISH:
XXXXXXX,第四章作业讲解1.试编一程序若累加器A中内容分别满足一下条件,则程序转至标号为COMP的存储单元。
设A中为无符号数3)A20;3)A20;CLRCCLRCSUBBA,#14H(#20)CJNEA,#14H,L0JCCOMPSJMPCOMPJZCOMPL0:
JCCOMPCOMP:
XXXXXXXXCOMP:
XXXXXXXFINISH:
XXXXXXX,第四章作业讲解1.试编一程序若累加器A中内容分别满足一下条件,则程序转至标号为COMP的存储单元。
设A中为无符号数4)A20;4)A20;CLRCCLRCSUBBA,#14H(#20)CJNEA,#14H,L0JCCOMPSJMPFINISHCOMP:
XXXXXXXXL0:
JCCOMPCOMP:
XXXXXXXFINISH:
XXXXXXX,第四章作业讲解1)设有100个单字节数组成的数据块,存放在外部RAM中其起始地址为1000H,试编一程序,将这一数据块传送至6000H为起始地址的区域中去。
1)设有100个单字节数组成的数据块,存放在外部RAM中其起始地址为1000H,将数据块传送至6000H为起始地址的区域中。
程序:
ORG0000HMOVR0,#64HDJNZR0,LOOPMOVDPL,#00HSJMP$LOOP:
MOVDPH,#10HENDMOVXA,DPTRMOVDPH,#60HMOVXDPTR,AINCDPL,1)设有100个单字节数组成的数据块,存放在外部RAM中其起始地址为1000H,将数据块传送至6000H为起始地址的区域中。
程序:
ORG0000HMOVDPL,R2MOVR0,#64HMOVXDPTR,AMOVR1,#60HINCDPRTMOVR2,#00HMOVDPH,R1MOVDPTR,#1000HMOVDHL,R2LOOP:
MOVXA,DPTRPOPDPLINCDPTRPOPDPHPUSHDPHDJNZR0,LOOPPUSHDPLSJMP$MOVDPH,#R1ENDMOVDPH,R1,第四章作业讲解2)设有两个长度均为10的数组,分别存放在6000H和8000H为起始地址的外部RAM中,试编一程序求其对应项之和,结果存放在第一数组区域中。
2)两个长度为10的数组,放在6000H和8000H为起始地址的外部RAM中,对应项之和,结果放在第一数组中。
程序:
ORG0000HMOVR2,#0AHINCDHLMOVDPL,#00HLOOP:
MOVDHP,#80HDJNZR2,LOOPMOVXA,DPTRSJMP$MOVR5,AENDMOVDHP,#60MOVXA,DPTRADDA,R5,程序:
ORG0000HMOVDPL,R2MOVR0,#10MOVXA,DPTRMOVR1,#60HADDA,R5MOVR2,#00HMOVXDPTR,AMOVDPTR,#8000HINCDPRTLOOP:
MOVXA,DPTRMOVDPH,R1MOVR5,AMOVDHL,R2INCDPTRPOPDPLPUSHDPHPOPDPHPUSHDPLDJNZR0,LOOPMOVDPH,#R1SJMP$END,第四章作业讲解3)设有100个带符号的单字节数组成的数组,存放在以2800H为起始地址的存储区域中,试编一程序找出它们中的最小数,并存放到2000H单元中。
程序:
ORG0000HMOVR2,#64HMOVDPTR,#2800HDECR2LOOP:
MOVXA,DPTRMOVR3,AINCDPTRMOVXA,DPTRMOVR4,A,程序:
MOVA,R3SJMPLOOP2CLRCLOOP1:
MOVA,R3XRLA,R4LOOP2:
DJNZR2,LOOPJBACC.7,NEXT1MOVDPTR,#2000HMOVA,R3MOVXDPTR,ASUBBA,R4JCLOOP1MOVA,R4SJMPLOOP2NEXT1:
MOVA,R3JBACC.7,LOOP1MOVA,R4,33,第六章作业1.以T0为定时器,在P1.1引脚上产生频率为1HZ的方波。
2.利用定时器/计数器实现数字频率计的功能,将T0设置为定时器,T1设置为计数器,把测得信号接T1引脚(P3.5),启动定