单片机复习习题及答案.ppt
《单片机复习习题及答案.ppt》由会员分享,可在线阅读,更多相关《单片机复习习题及答案.ppt(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、补充题一:补充题一:1、编写将外部数据存储器、编写将外部数据存储器2000H单元的内容,单元的内容,搬到内部数据存储器搬到内部数据存储器30H单元中。单元中。MOV DPTR,#2000HMOVX A,DPTRMOV 30H,A问题的延伸:问题的延伸:如何实现数如何实现数据块的传送?据块的传送?2、试将(、试将(R0)R1MOV A,R0MOV R1,A3、试将(、试将(R0)与()与(R1)交换)交换MOV A,R0XCH A,R1MOV R0,A实验实验1思考题思考题1:用用DJNZ指令控制循环,将外部数据存储器指令控制循环,将外部数据存储器2000H200FH单元的内容搬运到以单元的内容
2、搬运到以30H为起始为起始地址的内部数据存储器中来。地址的内部数据存储器中来。MOV R7,#16MOV R0,#30HMOV DPTR,#2000Hloop:MOVX A,DPTRMOV R0,AINC DPTRINC R0DJNZ R7,loop补充题二补充题二1.编写多字节加法与减法程序。编写多字节加法与减法程序。(31H)(30H)+(41H)(40H)(51H)(50H)2.编写编写BCD的加法程序。的加法程序。56H+74H 30H单元单元3.试将(试将(R0)中的二进制数转换成非压缩)中的二进制数转换成非压缩BCD码,分别存入码,分别存入30H32H单元中。单元中。MOV A,3
3、0HADD A,40HMOV 50H,AMOV A,31HADDC A,41HMOV 51H,ACLR CMOV A,30HSUBB A,40HMOV 50H,AMOV A,31HSUBB A,41HMOV 51H,AMOV A,#56HADD A,#74HDA AMOV 30H,Abin_bcdbin_bcd:MOV A,R0MOV A,R0MOV BMOV B,#100#100;单字节只能到百位,先除;单字节只能到百位,先除;单字节只能到百位,先除;单字节只能到百位,先除100100。DIV ABDIV AB;A=A=百位数,百位数,百位数,百位数,B=B=十位与个位数。十位与个位数。十位
4、与个位数。十位与个位数。MOV 32HMOV 32H,A A;百位数存入;百位数存入;百位数存入;百位数存入32H32HMOV AMOV A,#10#10 XCH AXCH A,B B;B=10B=10,A=A=十位与个位数。十位与个位数。十位与个位数。十位与个位数。DIV ABDIV AB;A=A=十位数,十位数,十位数,十位数,B=B=个位数个位数个位数个位数MOV 31H,AMOV 31H,A;将十位上的;将十位上的;将十位上的;将十位上的BCDBCD码存入码存入码存入码存入31H31H单元。单元。单元。单元。MOV 30H,BMOV 30H,B;个位;个位;个位;个位BCDBCD存入存
5、入存入存入30H30H单元。单元。单元。单元。补充题三:补充题三:1、写出程序,判断、写出程序,判断P1.0是否为是否为1?是?是将将F0置置1,否则将,否则将F0清清0。JB P1.0,true CLR F0 AJMP continuetrue:SETB F0continue:2、比较比较30H与与31H单元的内容,如单元的内容,如果(果(30H)()(31H),将),将P1.1置置1。否则将否则将P1.1清清0。MOV A,31HCLR CSUBB A,30HJC trueCLR P1.1 AJMP continuetrue:SETB P1.1continue:【补充题补充题】:用查表指令
6、设计一子程序,将:用查表指令设计一子程序,将09转换成共阳极的转换成共阳极的7段显示码。并在程序中段显示码。并在程序中注释出该子程序的入口与出口。注释出该子程序的入口与出口。dpgfedcbaabcdedpgf共阳极的共阳极的7段显示码段显示码:显示显示0123456789编码编码C0HF6HA4HB0H98H99H82HF7H80H10H编码编码03HD7H4AH46H96H26H22H57H02H06H编码格式编码格式:afbdcedpg程序设计:程序设计:;程序入口:(;程序入口:(A)=显示的原始数据,显示的原始数据,09。;程序出口:(;程序出口:(A)=显示的显示的7段编码。段编码
7、。display:ADD A,#1 ;RET指令的字节数为指令的字节数为1MOVC A,A+PCRETDB 0C0H,0F6H,0A4H,0B0H,98HDB 99H,82H,0F7H,80H,10H;程序入口:(;程序入口:(A)=显示的原始数据,显示的原始数据,09。;程序出口:(;程序出口:(A)=显示的显示的7段编码。段编码。dislaydislay:PUSH DPHPUSH DPH PUSH DPL PUSH DPL MOV DPTR MOV DPTR,#tab1#tab1 MOVC A MOVC A,A+DPTRA+DPTR POP DPL POP DPL POP DPH POP
8、DPH RET RET tab1tab1:DB DB 0C0H,0F6H,0A4H,0B0H,98HDB DB 99H,82H,0F7H,80H,10H补充题:补充题:已知系统时钟为已知系统时钟为4MHz,试设,试设计一个计一个10mS的延时子程序。的延时子程序。时钟为时钟为4MHz的机器周期计算:的机器周期计算:延时延时10mS所需机器周期计算:所需机器周期计算:10000S 3S=10(1000 3)从以上算式可知,误差是不可避免的了。而且必须采用从以上算式可知,误差是不可避免的了。而且必须采用双重循环。我们可以想办法将误差降到最低。所以我们将以上双重循环。我们可以想办法将误差降到最低。所
9、以我们将以上算式调整为算式调整为10(1000 3)。将误差产生在括号中,降低括)。将误差产生在括号中,降低括号外的倍率。以避免误差放大。号外的倍率。以避免误差放大。如果令如果令L2=10,则,则,(22L1+3+X+3+X)=1000 3 333L1=(333-3-X)2=165X=0delaydelaydelaydelay:MOVMOV R7 R7,#10#10looplooplooploop2 2 2 2:MOV R6MOV R6,#165#165looplooplooploop1 1 1 1:DJNZ R6DJNZ R6,looplooplooploop1 1 1 1 DJNZDJNZ
10、 R7 R7,looplooplooploop2 2 2 2 RET RET【4-74-7】、试编写程序,查找在内部、试编写程序,查找在内部RAMRAM的的30H30H50H50H单元中是否有单元中是否有0AAH0AAH数据。若有则,数据。若有则,(51H51H)=01H=01H;没有则,(;没有则,(51H51H)=00H=00H。lookup:PUSH R0MOV R0,#30Hloop:CJNE R0,#0AAH,nextMOV 51H,#01HAJMP exitnext:INC R0CJNE R0,#51H,loopMOV 51H,#0exit:POP R0RETstart:MOV R
11、0,#30H MOV R2,#21Hloop:MOV A,R0 CJNE A,#0AAH,next MOV 51H,#01H LJMP exitnext:INC R0 DJNZ R2,loop MOV 51H,#00Hexit:RET【4-84-8】、试编写程序,查找在、试编写程序,查找在内部内部RAMRAM的的20H20H40H40H单元中出现单元中出现00H00H的次数。并将结果存入的次数。并将结果存入41H41H中。中。start:MOV 41H,#0MOV R0,#20HMOV R2,#21Hloop:MOV A,R0JNZnextINC41Hnext:INCR0DJNZ R2,LOO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 复习 习题 答案
限制150内