




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 作业,P40 2,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) MOV A,R2 MOV R1,A 作业中的错误: MOV R1,R2 指令格式错误:1)操作码内不能有空格; 2)操作码和目的操作数之间 必须有空格; 3)目的操作数和源操作数之 间逗号隔开; 4)一行只能写一条指令; 5)每个指令一般不用;结束。,2.片外RAM(0030H) R1 MOV DPTR,#0030H MOV R0,#30H MOVX A,DPTR MOVX A,R0 MOV R1,A MOV R1,A 作业中的错误: 1)表示立即数的”#”漏写; 2)MOV DPTR,#0030H和MOV DPTR,#30H的区别 3)MOVX R1,A的错误 4)DPTR-DPRT 5)MOVX R1,DPTR,3.片外RAM(0030H) 片内RAM(30H) MOV DPTR,#0030H MOVX A,DPTR MOV 30H,A 作业中的错误: 1)表示立即数的”#”漏写; 2)MOV DPTR,#0030H和MOV DPTR,#30H的区别 3)DPTR-DPRT 4)MOV A,30H MOVX A,DPTR,4.片内RAM(30H) 片外RAM(2000H) MOV A,30H MOVX DPTR,#2000H MOV DPTR,A 作业中的错误: 1)表示立即数的”#”漏写; 2)间接寻址的“”漏写 3)DPTR-DPRT,5.ROM(1000H) R0 MOV A,#00H MOV DPTR,#1000H MOVC A,A+DPTR MOV R0,A 作业中的错误: 1)MOV R0,1000H?; 2)漏写MOV A,#00H 3)MOV R0,A?,6.ROM(1000H) 片外RAM(0020H) MOV A,#00H MOV DPTR,#1000H MOVC A,A+DPTR MOV DPTR,#0020H MOVX DPTR,A 作业中的错误: 1)”#” ; 2)”,7.ROM(1000H) 片内RAM(20H) MOV A,#00H MOV DPTR,#1000H MOVC A,A+DPTR MOV 20H,A 作业中的错误: 1)MOV 20H,1000H,8.片外RAM(1000H) 片外RAM(2000H) MOV DPTR,#1000H MOVX A,DPTR MOV DPTR,#2000H MOVX DPTR,A,第3章 作业2 1.试编一程序对外部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其余各位保持不变。 MOV DPTR,#2000H xxxxxxxx MOVX A,DPTR 11111110 ANL A,#FEH xxxxxxx0 ORL A,#80H 10000000 MOVX DPTR,A 1xxxxxx0,第三章 作业2讲解(续) 2.试编一程序对外部RAM3000H单元的第0位置1,第7位清零其余各位求反。 涉及的知识点:1)片外RAM单元中数据的传输指令 2)利用逻辑与进行位清零 和0与结果是0,和1与结果是自己 3)利用逻辑或进行位置1 和1或结果是1,和0或结果是自己 4)利用逻辑异或进行位求反 和1异或结果求反,和0异或结果是自己 (或利用累加器A的求反指令CPL A),第三章 作业2讲解(续) 2.试编一程序对外部RAM3000H单元的第0位置1,第7位清零其余各位求反。 MOV DPTR,#2000H xxxxxxxx MOVX A,DPTR 00000001 ORL A,#01H xxxxxxx1 ARL A,#7FH 01111111 XRL A,#7EH 0xxxxxx1 MOVX DPTR,A 01111110 0 1,第三章 作业2讲解(续) 2.试编一程序对外部RAM3000H单元的第0位置1,第7位清零其余各位求反。 MOV DPTR,#2000H xxxxxxxx MOVX A,DPTR CPL A 00000001 ORL A,#01H ARL A,#7FH 01111111 MOVX DPTR,A,第三章 作业2讲解(续) 2.试编一程序对外部RAM3000H单元的第0位置1,第7位清零其余各位求反。 MOV DPTR,#2000H xxxxxxxx MOVX A,DPTR 00000001 ORL A,#01H xxxxxxx1 ARL A,#7FH 01111111 CPL A MOVX DPTR,A,18,第四章 作业 1)设有100个单字节数组成的数据块,存放在外部RAM中其起始地址为1000H,试编一程序,将这一数据块传送至6000H为起始地址的区域中去。 2)设有两个长度均为10的数组,分别存放在6000H和8000H为起始地址的外部RAM中,试编一程序求其对应项之和,结果存放在第一数组区域中。 3)设有100个带符号的单字节数组成的数组,存放在以2800H为起始地址的存储区域中,试编一程序找出它们中的最小数,并存放到2000H单元中。 4) 试编一程序若累加器A中内容分别满足一下条件,则程序转至标号为COMP的存储单元。设A中为无符号数 1)A 20; 2)A 20; 3)A20;4)A20.,18,第四章 作业讲解 1.试编一程序若累加器A中内容分别满足一下条件,则程序转至标号为COMP的存储单元。设A中为无符号数 1)A 20; 2)A 20; 3)A20;4)A20. 方法1:两个数据做减法SUBB,可根据借位CY来判断两个数的大小! 方法2:两个数据做比较CJNE,再根据是否相等和借位CY来判断两个数的大小!,第四章 作业讲解 1.试编一程序若累加器A中内容分别满足一下条件,则程序转至标号为COMP的存储单元。设A中为无符号数 1)A 20; 1)A 20; CLR C CLR C SUBB A,#14H(#20) CJNE A, #14H ,L0 JNC COMP SJMP COMP COMP: XXXXXXXX L0:JNC COMP COMP:XXXXXXX FINISH:XXXXXXX,第四章 作业讲解 1.试编一程序若累加器A中内容分别满足一下条件,则程序转至标号为COMP的存储单元。设A中为无符号数 2)A 20; 2)A 20; CLR C CLR C SUBB A,#14H(#20) CJNE A, #14H ,L0 JNC COMP SJMP FINISH COMP: XXXXXXXX L0:JNC COMP COMP:XXXXXXX FINISH:XXXXXXX,第四章 作业讲解 1.试编一程序若累加器A中内容分别满足一下条件,则程序转至标号为COMP的存储单元。设A中为无符号数 3)A 20; 3)A 20; CLR C CLR C SUBB A,#14H(#20) CJNE A, #14H ,L0 JC COMP SJMP COMP JZ COMP L0:JC COMP COMP: XXXXXXXX COMP:XXXXXXX FINISH:XXXXXXX,第四章 作业讲解 1.试编一程序若累加器A中内容分别满足一下条件,则程序转至标号为COMP的存储单元。设A中为无符号数 4)A 20; 4)A 20; CLR C CLR C SUBB A,#14H(#20) CJNE A, #14H ,L0 JC COMP SJMP FINISH COMP: XXXXXXXX L0:JC COMP COMP:XXXXXXX FINISH:XXXXXXX,第四章 作业讲解 1)设有100个单字节数组成的数据块,存放在外部RAM中其起始地址为1000H,试编一程序,将这一数据块传送至6000H为起始地址的区域中去。,1)设有100个单字节数组成的数据块,存放在外部RAM中其起始地址为1000H,将数据块传送至6000H为起始地址的区域中。 程序: ORG 0000H MOV R0,#64H DJNZ R0,LOOP MOV DPL,#00H SJMP $ LOOP: MOV DPH,#10H END MOVX A,DPTR MOV DPH,#60H MOVX DPTR,A INC DPL,1)设有100个单字节数组成的数据块,存放在外部RAM中其起始地址为1000H,将数据块传送至6000H为起始地址的区域中。 程序: ORG 0000H MOV DPL,R2 MOV R0,#64H MOVX DPTR,A MOV R1,#60H INC DPRT MOV R2,#00H MOV DPH,R1 MOV DPTR,#1000H MOV DHL,R2 LOOP: MOVX A,DPTR POP DPL INC DPTR POP DPH PUSH DPH DJNZ R0,LOOP PUSH DPL SJMP $ MOV DPH,#R1 END MOV DPH,R1,第四章 作业讲解 2)设有两个长度均为10的数组,分别存放在6000H和8000H为起始地址的外部RAM中,试编一程序求其对应项之和,结果存放在第一数组区域中。,2)两个长度为10的数组,放在6000H和8000H为起始地址的外部RAM中,对应项之和,结果放在第一数组中。 程序: ORG 0000H MOV R2,#0AH INC DHL MOV DPL,#00H LOOP: MOV DHP,#80H DJNZ R2,LOOP MOVX A,DPTR SJMP $ MOV R5,A END MOV DHP,#60 MOVX A,DPTR ADD A,R5,程序: : ORG 0000H MOV DPL,R2 MOV R0,#10 MOVX A,DPTR MOV R1,#60H ADD A,R5 MOV R2,#00H MOVX DPTR,A MOV DPTR,#8000H INC DPRT LOOP: MOVX A ,DPTR MOV DPH,R1 MOV R5,A MOV DHL,R2 INC DPTR POP DPL PUSH DPH POP DPH PUSH DPL DJNZ R0,LOOP MOV DPH,#R1 SJMP $ END,第四章 作业讲解 3)设有100个带符号的单字节数组成的数组,存放在以2800H为起始地址的存储区域中,试编一程序找出它们中的最小数,并存放到2000H单元中。,程序: ORG 0000H MOV R2,#64H MOV DPTR,#2800H DEC R2 LOOP: MOVX A,DPTR MOV R3,A INC DPTR MOVX A,DPTR MOV R4,A,程序: MOV A,R3 SJMP LOOP2 CLR C LOOP1: MOV A,R3 XRL A, R4 LOOP2: DJNZ R2,LOOP JB ACC.7,NEXT1 MOV DPTR,#2000H MOV A,R3 MOVX DPTR,A SUBB A,R4 JC LOOP1 MOV A,R4 SJMP LOOP2 NEXT1: MOV A,R3 JB ACC.7 ,LOOP1 MOV A,R4,33,第六章 作业 1.以T0为定时器,在P1.1引脚上产生频率为1HZ的方波。 2.利用定时器/计数器实现数字频率计的功能,将T0设置为定时器,T1设置为计数器,把测得信号接T1引脚(P3.5),启动定时/计数器工作后,在1S到达时,读取T1的内容作为频率值,存放于21H(F_HIGH)和20H(L_HIGH),fosc=12MHZ,33,第六章 作业讲解 1.以T0为定时器,在P1.1引脚上产生频率为1HZ的方波。 1.确定功能,以十六进制形式写入TMOD 1)定时还是计数?2)是否用中断?3)工作方式?4)启动方式。 2.设置初值,将其写入TH和TL,并清零TF。 3.用位操作指令SETB TR0(TR1)完成启动设置。,1.以T0为定时器,在P1.1引脚上产生频率为1HZ的方波。 分析:1)周期1秒,定时时间为0.5秒,由于T0要重复定时计数,因此选择工作方式2或1,C/T=1,与INT1无关,则GATE=0 2)方式2的最大定时间:12M-256us;6M-512us, 方式1的最大定时时间:12M-65.536ms;6m-131.072ms 需要嵌套循环,循环次数X定时时间=0.5s。方式1定时时间100ms,循环次数5。(方式2 500us,1000) TMOD=01H(TMOD=02H) 3)(216-X)x2x10-6=0.1 X=15536=3CB0 216=65536 TH0=3CH,THL=B0H,源程序:(查询方式) ORG 2000H LOOP: JBC TF0,LQ MOV TMOD,#01H SJMP LOOP LQ: CLR TF0 MOV TH0,#3CH MOV TH0,#3CH MOV TL0,#0B0H MOV TL0, #0B0H MOV R5,#5 DJNZ R5,LOOP CLR TF0 MOV R5,#5 CLR EA QF: CPL P1.0 SETB TR0 SJMP LOOP END,源程序:(中断方式) ORG 0000H SETB TR0 LJMP MAIN HERE: SJMP HERE ORG 0003H INT0: MOV TH0,#3CH LJMP INT0 MOV TL0,#0B0H MAIN: MOV TMOD,#01H DJNZ R5,RTURN MOV TH0,#3CH QF: CPL P1.0 MOV TL0,#0B0H RTURN:RETI MOV R5,#5 END SETB EA SETB ETO,38,2. 将T0设置为定时器,T1设置为计数器,把测得信号接T1引脚(P3.5),启动定时/计数器工作后,在1S到达时,读取T1的内容作为频率值,存放于21H(F_HIGH)和20H(L_HIGH),fosc=12MH 分析:1)由于T1要重复计数计数,因此选择工作方式1,C/T=1,与INT1无关,则GATE=0 2)T0作为定时器,每隔50ms溢出一次,选择方式1,与软件一起实现定时1秒钟,则M1M0=01, C/T=0,与INT1无关,则GATE=0。所以:TMOD=0101 0001=51H 3)定时器T1的初值:X1=0000H 定时器T0的初值:,38,39,源程序: ORG 2000H LOOP: JBC TF0,LQ MOV TMOD,#16H SJMP LOOP MOV TH1,#00H LQ: MOV TH0,#3CH MOV TL1,#00H MOV TL0, #0B0H MOV TH0,#3CH DJNZ R7,LOOP MOV TL0,#0B0H MOV R7,#20 MOV R7,#20 MOV 21H,TH1 CLR EA MOV 20H,TL1 SETB TR1 SJMP LOOP SETB TR0 END,39,40,第五章 作业 1. AT89S51单片机的引脚INT1接入如图所示电路。要求每按一下按钮B,单片机就将P1寄存器中的第0位置1,第7位清零,第1位和第6位互换,其余各位求反。试利用外部中断0编写实现这一功能的程序。,40,第五章 作业讲解 中断程序设计需考虑的问题: 一、 中断初始化设置 1.设置堆栈指针SP 设置适宜的堆栈深度。 (1) 深度要求不高且工作寄存器组13不用时, 可维持复位时状态:SP=07H,深度为 24B(20H2FH为位寻址区)。 (2) 要求有一定深度时,可设SP=60H或50H, 这时深度分别为32B和48B。,第五章 作业讲解 中断程序设计需考虑的问题: 2. 定义中断优先级 根据中断源的轻重缓急,划分高优先级和低优先级。 3. 定义外部中断触发方式 一般情况下,应定义边沿触发方式为宜。若外部中断必须采用电平触发方式时,应在硬件电路上和中断服务程序中采取撤除中断请求信号的措施。 4. 开放中断 由于AT89C51采用了二级中断控制方式,因此开放中断必须同时开放二级中断控制,即同时置位EA和需要开放中断的中断允许控制位。,二、中断服务主程序 1. 在中断服务入口地址设置一条跳转指令, 以便转移到中断服务程序的实际入口处 2.数据需要保护现场。通常是保护Acc、 PSW和DPTR等等特殊功能寄存器中的内容 3.中断源请求中断服务要求的操作,这是 中断服务程序的主体。 4.若是外部中断电平触发方式,应有中断标志撤除操作。若是串行收发中断,应 有对RI、TI清0指令。 5.恢复现场。与保护现场相对应,注意按“先进后出、后进先出”的原则操作。 6.中断返回,最后一条指令必须是RETI。,第五章 作业讲解 常用的主程序结构如下: ORG 0000H LJMP MAIN ORG 中断入口地址 LJMP INT ORG XXXXH MAIN:主 程 序 INT:中断服务程序,第五章 作业讲解 程序: ORG 0000H LJMP MAIN ORG 0013H ;外部中断1的入口地址 LJMP INTT0 ORG 1000H MAIN: SETB IT1 ;设置外部中断1的触发方式为跳沿触发 SETB EX1 ;允许外部中断1 SETB EA ;总中断开关位开放 HERE: SJMP HERE,INTT0:MOV A,P1 ORL A,#01H ;或指令置1 ANL A,#7FH ;与指令清零 XRL A,#3CH ; 异或指令取反 MOV C,Acc.1 MOV Acc.6,Acc.1 MOV Acc.1,C RETI END,第六章作业 1.在AT89S51串行口的工作方式1中,定时器T1的定时常数直接影响波特率。若晶振频率是11.0592MHz,波特率为2400B/s。请问定时初值(常数)是多少?试编写在AT89S51串行口的发送程序,要求以工作方式1将存放在外部数据存储器中地址为0010H至0030H的单元中的的数据一一发送出去。 解:串行通讯中定时器以工作方式2工作,定时常数与波特率、晶振频率和SMOD(0或1)相关 计算公式(7-3),取SMOD=0,则 2400=(1/32)*11.0592*106/(12(256-X) X=244=F4H,1.串行发送(方式1,2,3)步骤 (1)设置SCON(工作模式和发送状态) (2)设置PCON (3)(方式1和3)设置TMOD(T1工作方式2) 设置TH1,THL1初值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 参加干部综合素质能力提升培训班学习体会
- 2025年经济师职称考试经济基础模拟试题及答案解析(全解)
- 毛笔字横的写法课件
- 2025年伦理审查与科研管理考试题及答案
- 有害生物防治员考试试题及答案
- 湖北省荆门市2024-2025学年高二下学期6月期末质量检测物理试卷(含答案)
- 2025年人文经济试题及答案
- 2025年急救物品试题及答案
- 1.5 有理数的大小 导学案(含答案)数学青岛版(2024)七年级上册
- 车辆违法行为课件
- 学校总结模板(含成绩分析表格)
- 父母借用子女名义购房协议书
- 2024至2030年DC/DC转换器项目投资价值分析报告
- 湖南省长沙市师大附中博才实验中学2024-2025学年九年级上学期开学考试语文试题
- 电网劳务分包投标方案(技术方案)
- 第三课 我国的经济发展(课件)
- 人教部编版三年级道德与法治上册全册教案(全册)
- 2024年临时工劳动合同范本
- 加油站居间合同协议书范本2024版
- 中考强化训练河北省保定市中考数学五年真题汇总 卷(Ⅲ)(含答案详解)
- DLT802.7-2023电力电缆导管技术条件第7部分非开挖用塑料电缆导管
评论
0/150
提交评论