没有合适的资源?快使用搜索试试~ 我知道了~
[详细完整版]21单片机.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 26 浏览量
2022-06-19
11:10:50
上传
评论 1
收藏 31KB DOC 举报
温馨提示
试读
1页
一、改正下列指令中的错误,保证指令功能不变。 1. MOV A,2000H ;片外RAM2000H单元内容送入A。 2. MOVX 20H,2000H ;片外RAM2000H单元内容送入片内20H单元。 3. MOVC A,2000H ;将ROM2000H单元内容送入A 4. XCH 40H,30H ;交换片内RAM30H和40H单元的内容。 5. MOV R0,#90H ;将片内90H中内容送入A中。 MOV A,@R0 答:1. MOV DPTR,#2000H MOV X A,@DPTR 2. MOV DPTR,#2000H MOV X A,@DPTR MOV 20H,A 3. MOV DPTR,#2000H MOV A,#0 MOV C A,@A+DPTR 4. MOV A,40H XCH A,30H MOV 40H,A 5. MOV A,90H 二、1、已知片内50H单元中有一个0~9的数,试编程把它变为相应的ASC 码。 解:因为0~9的ASC 码为30H~39H。只要将50H单元中的内容低四位不变,高四位变成3 即可。参考程序如下: MOV R0,#50H MOV A,#3
资源详情
资源评论
资源推荐
21 单片机
一、改正下列指令中的错误,保证指令功能不变。
1. MOV A,2000H ;片外 RAM2000H 单元内容送入 A。
2. MOVX 20H,2000H ;片外 RAM2000H 单元内容送入片内 20H 单元。
3. MOVC A,2000H ;将 ROM2000H 单元内容送入 A
4. XCH 40H,30H ;交换片内 RAM30H 和 40H 单元的内容。
5. MOV R0,#90H ;将片内 90H 中内容送入 A 中。 MOV A,@R0
答:1. MOV DPTR,#2000H
MOV X A,@DPTR
2. MOV DPTR,#2000H
MOV X A,@DPTR
MOV 20H,A
3. MOV DPTR,#2000H
MOV A,#0
MOV C A,@A+DPTR
4. MOV A,40H
XCH A,30H
MOV 40H,A
5. MOV A,90H
二、1、已知片内 50H 单元中有一个 0~9 的数,试编程把它变为相应的
ASCⅡ 码。
解:因为 0~9 的 ASCⅡ 码为 30H~39H。只要将 50H 单元中的内容低四位
不变,高四位变成 3 即可。参考程序如下:
MOV R0,#50H
MOV A,#30H
XCHD A,@R0
MOV @R0,A
2、已知外部 RAM 2020H 单元中有一个数 x,内部 RAM20H 单元有一个数
y,试编出可以使它们互相交换的程序。
解:MOV DPTR,#2020H
MOV R1,#20H
MOV X A,@DPTR
XCH A,@R1
MOV X @DPTR,A
3、将片外 2500H 单元中的内容压入堆栈后弹出到片内 40H 单元。
解:MOV DPTR,#2500H
MOVX A,@DPTR
MOV SP,#60H
PUSH ACC
POP 40H
三、1、编程实现两字节数相减,设被减数存放在 20H、21H 单元中,减数
存放在 30H、31H 单元中,差存放在 40H、41H 单元中,所有存储单元均
按低位在前,高位在后存放数据。
解:MOV A,20H;被减数低字节送 A
CLR C
SUBB A,30H;低字节相减
MOV 40H,A ;结果低字节送 40H 单元
MOV A, 21H ; 被减数高字节送 A
SUBB A,31H;高字节相减
MOV 41H, A ;结果高字节送 41H 单元
2、设计将两个 4 位压缩 BCD 码数相加的程序。其中一个加数存放在
30H(存放十位,个位)、31H(存放千位,百位)单元,另一个加数存放
在 32H(存放十位,个位)、 33H(存放千位,百位)单元,和数存入
30H、31H 单元。
解:MOV R0, #30H ;地址指针指向一个加数的个位、十位
MOV R1,#32H ;另一个地址指针指向第二个加数的个位、十位
MOV A,@R0;一个加数送累加器
ADD A,@R1;两个加数的个位、十位相加
DA A;调整为 BCD 码数
MOV @R0,A ;和数的个位、十位送 30H 单元
INC R0 ;两个地址指针分别指向两个加数的百位、千位
INC R1
MOV A, @R0; 一个加数的百位、千位送累加器
ADDC A,@R1 ;两个加数的百位、千位和进位相加
DA A ;调整为 BCD 码数
MOV @R0, A ;和数的百位、千位送 31H 单元
四、把累加器 A 中的二进制数转换为 3 位 BCD 码数的程序,百位数存人
30H 单元,十位数和个位数存入 31H 单元。
解:编程思路:通过对 A 中的二进制数除 100 取余、除 10 取余两次操作后,
可分离个、十、百位。程序如下:
ORG 0100H
MOV B,#100;除数 100 送 B
DIV AB ;A 中内容除以 100,得到百位数
MOV 30H,A;百位数存 30H 单元
MOV A,#10;除数 10 送 A
XCH A,B;余数送 A,除数 10 送 B
DIV AB;A 中内容除以 10,得到十位数和个位数
SWAP A;把十位数移到 A 的高 4 位
ADD A,B ;组成压缩的 BCD 码
MOV 31H,A ;存入 31H 单元
END
五、编制一个循环闪烁灯程序。有 8 个发光二极管,其中一个闪烁点亮 10
次后,转移到下一个闪烁 10 次,循环不止,参考电路如图所示。
解: MOV A,#01H;赋灯初始状态
SHIFT:LCALL FLASH ;调闪烁 10 次子程序
RR A ;右移
SJMP SHIFT ;循环
FLASH:MOV R2,#0AH ;闪烁 10 次
FLASH1:MOV P1,A ;点亮
LCALL DELAY ;延时
MOV P1,#00H ;熄灭
LCALL DELAY
DJNZ R2,FLASH1 ;循环
RET
DELAY:MOV R5,#200 ;延时 0.05s
D1:MOV R6 #123
NOP DJNZ R6,$(当前指令起始地址)
DJNZ R5,D1
RET
六、单片机的发展趋势是什么?
答:(1)采用多核 CPU 提高处理能力。
(2)加大存储容量,采用新型存储器方便用户擦写程序及数据,加强程序
的保密措施。
(3)单片机内部所集成的部件越来越多,和模拟电路结合越来越紧密,使
其应用水平不断提高。如 NS(美国国家半导体)公司的单片机已把语音、
图像部件也集成到单片机中。
(4)通信和联网功能不断加强。
(5)集成度不断提高,功耗越来越低,电源电压范围加宽。
是空空呀
- 粉丝: 171
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- LM324_datasheet.pdf
- 全新Storm+Core+API管理系统源码
- 基于RP2040的电子沙漏,使用RP2040游戏机开发板,灯板是74HC595驱动的8*8LED矩阵
- 基于SSM和VUE的商店POS积分管理系统(免费提供全套java开源项目源码+论文)
- 基于SpringBoot的“在线动漫信息平台”的设计与实现.rar
- NPP xml tools
- 基于python开发的树莓派RP2040的游戏机
- 基于SNMP网络设备MIB信息采集系统(免费提供全套java开源项目源码+论文)
- 基于SSM和VUE的五子棋游戏的设计(免费提供全套java开源项目源码+论文)
- qiun-data-charts
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0