




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、A的内容。(1)MOVA,R0;(A)=34H(2)MOVA,R0;(A)=A5H(3)MOVA,34H;(A)=A5H(4)MOVA,#34H;(A)=34H3-12.1设(R0)=32H,(A)=48H,片内RAM中(32H)=60H,3-10.己知(A)=7AH,(R0)=34H,第三章作业参考答案(34H)=A5H,请写出分别执行下面各条指令后累加器上述各单元内容的变化。(40H)=61H。请指出在执行下列程序段后MOVA,R0MOVR0,40HMOV40H,AMOVR0,#40H(A)=(32H)=60H32H)=61H(40H)=(A)=60H(R0)=40H即:执行完程序段后,(
2、R0)=40H,(A)=60H,片内RAM中,(32H)=61H,(40H)=60H3-13已知(A)=83H,(R0)=47H,(47H)=34H。请写出执行完下列程序段后A的内容。ANLA,47HORL47H,AXRLA,R0;(A)=83HA34H=00H;(47H)=34HV00H=34H;(A)=00H34H=34HSWAPA;(A)=43H答:执行完程序段后,(A)=43HMOVSP,#30H;(SP)=30HMOV30H,#55HMOV40H,#66HPUSH30H;(SP)=31H,堆栈区中(31H)=55HPUSH40H;(SP)=32H,堆栈区中(32H)=66HPOP30
3、H;先将堆栈区中32H单元的内容送入30H;SP值减1,即:(SP)=31HPOP40H;先将堆栈区中31H单元的内容送入40H;SP值减1,即:(SP)=30H最终,(SP)=30H,内部RAM中,(30H)=66H,(40H)=55H.3-1414.说明下段程序执行过程中,SP的内容及堆栈中内容的改变过程。单元,使(30H)单元,使(40H)=66H,=55H,再使再使3-15编程实现两个16位二进制数的减法。设被减数放在40H、41H单元中,减数放在50H、51H单元,差仍存于被减数地址单元中,减数、被减数都是低地址单元存放低8位。解:CLCCMOVA,40HSUBBA,50HMOV40
4、H,AMOVA,41HSUBBA,51HMOV41H,A3-16.编写一BCD码拼字程序,将存放在40H、41H单元的两个一位十进制数的BCD码合并构成一个字节的压缩BCD码,并将结果保存在42H单元中(高地址单元的BCD码放在高4位)。分析:设(40H)=XYH,(41H)=WZH,则,合并结果为(42H)=ZYH,X,Y,W,Z取值09.解:MOVA,40HANLA,#0FHMOVB,AMOVA,41HANLA,#0FHSWAPAORLA,BMOV42H,A3-17.把片外数据存储器4020H单元中的数据读到累加器中,应用哪几条指令?解:方法1:MOVDPTR,#4020H方法2:MOVP
5、2,#40HMOVXA,DPTRMOVR0,#20HMOVXA,R03-18.试编写程序将外部RAM5000H单元内容传送至外部RAM6030H单元。解:MOVDPTR,#5000HMOVXA,DPTRMOVDPTR,#6030HMOVXDPTR,A3-20.试编写一段程序,将累加器A的高4位由P1口的高4位输出,P1口低4位保持不变。分析:设(A尸XYH,(P1)=WZH,则执行结果为:(P1)=XZH,解:ANLA,#0F0H;(A)=X0HANLP1,#0FH;(P1)=0ZHORLP1,A;(P1)=XZH21.试编写一段程序,将P1口的高5位置位,低3位不变。n项,ORLP1,#11
6、111000B或ORLP1,#0F8H25.使用位操作指令实现下列逻辑关系。P1.0=(10HVPl.1)A(ACC.0VCY)(2)P1.3=(ACC.2AP1.0:)®(ACC.1VP1.1)解:(1)ORLC,ACC.0MOVF0,C;令F0=ACC.0VCYMOVC,10H;注意此处的10H是一个位地址而非字节地址ORLC,P1.1;令CY=(10H)VPl.1ANLC,F0;令CY=(10H)VPl.1)A(ACC.0VCY)MOVP1.0,C(2)MOVC,ACC.2ANLC,P1.0MOV20H,C;令20H=(ACC.2AP1.0)MOVC,ACC.1ORLC,P1.
7、1;令CY=(ACC.1VP1.1)_;位指令中没有XRL指令,只能用但可利用“XYXYXY”来形成异或运算,MOV21H,C;令21H=(ACC.1VP1.1)ANLC,/20HMOVF0,CMOVC,20HANLC,/21HORLC,F0;令C=(ACC.2AP1.0)(ACC.1VP1.1)MOVP1.3,C26.试编程将内部RAM30H/-3FH单元中的内容全部清0(利用循环车t移指令)。解:MOVR0,#30HMOVR7,#10H;30H3FH共10H个数据LOOP:MOVR0,#00HINCR0DJNZR7,LOOP27.在程序存储器中有一个常数表,从2040H单元开始分别存放表格
8、的第0项、第1项第试编程查出表格第m项的内容。解:MOVMOVMOVCDPTR,#2040HA,#m1 h的子程序,晶振频率 12MHzA,A+DPTR第4章作业参考答案5.有两个4位十六进制数分另1J存放在片内RAM20H21H单元和30H31H单元内,请编程求它们的和,并将和存放到片内RAM40H41H单元。6.有一个16位二进制负数的原码存放在片内RAM50H、61H单元内,请编程求它的补码,并将它存放到片内RAM70H71H单元。6.MOVA,61H解:5.设20H、30H存放高字节CPLAMOVA,21HADDA,#1ADDA,31HMOV71H,A;低字节取反加1MOV41H,AM
9、OVA,60HMOVA,20HCPLAADDCA,30HADDCA,#00H;高字节取反加上进位位SETBACC.7;高字节的符号位1MOV40H,AMOV70H,AENDEND7.片内RAMWM有20个数据,首地址为40H,请编程将数据块传送到片外RAML50H为首地址的存储单元中。解:(编程1)(编程2)MOVR7,#20MOVR7,#20MOVR0,#40HMOVR0,#40HMOVR1,#50HMOVDPTR,#0050HMOVP2,#00HLOOP:MOVA,R0LOOP:MOVA,R0MOVXDPTR,AMOVXR1,AINCR0INCR0INCDPTRINCR1DJNZR7,LO
10、OPDJNZR7,LOOPENDEND8.片外RAMM放有20个数据,首地址为40H,请编程将数据块传送到片外RAML5000H为首地址的存储单元中,同时将片外RAM40H为首地址的20个存储单元中的内容全清零。解:MOVR7,#20MOVP2,#00HMOVR0,#40HMOVDPTR,#5000HLOOP:MOVXA,R0;从源区取数据MOVXDPTR,A;送入目的区CLRAMOVXR0,A;将源区当前单元内容清1INCR0INCDPTR;修改源区和目的区的地址DJNZR7,LOOPEND10.请分别编写延时1min、0解:设1min延时子程序、1h延时子程序的名字分别为DELAY1DEL
11、AY2DELAY1:MOVR7,#250DL1:MOVR6,#250需要较精确延时,则可修改DELAY1DL2:MOVR5,#240DELAY1:MOVR7,#250DL3:NOPDL1:MOVR6,#250NOPDL2:MOVR5,#239DJNZR5,DL3NOPDJNZR6,DL2DL3:NOPDJNZR7,DL1NOPRETDJNZR5,DL3;延时时间=250X250*(1+1+2)*240*1s=1minDJNZR6,DL2DELAY2:MOVR1,#60DJNZR7,DL1LOOP:ACALLDELAY1RETDJNZR1,LOOP;精确延时时间计算为RET1+(1+(1+1+4
12、*239+2)*250+2)*250+2*1us;通过调用1min延时子程序60次,达到1h延时。11.自变量X/f符号数,存放在片内RAMK30H单兀,函数Y存放在31H单兀。请编写满足如下关系的程序:X<95时,丫=1;95vXV105时,丫=2;X>105时,丫=3。解:MOVA,30HCJNEA,#96,NEXT1NEXT1:JNCNEXT2;X>95,则转至NEXT2MOV31H,#1;X<95则令Y=1SJMPDONENEXT2:CJNEA,#105,NEXT3NEXT3:JNCNEXT4;X>105,则转至NEXT4MOV31H,#2;95<X
13、<105时,则令Y=2SJMPDONENEXT4:MOV31H,#3;X>105寸,令Y=3DONE:SJMP$END13.编与双手节尢付号数加法子程序。解:设子程序的入口参数为:(R0)=被加数低字节地址指针,(R1)=加数低字节地址指针出口参数为:(R0)=和的高字节地址指针参考程序如下:ADD_SUB:MOVA,R0ADDA,R1MOVR0,AINCR0INCR1MOVA,R0ADDCA,R1MOVR0,AINCR0CLRAADDCA,#0MOVR0,ARET第六章作业参考答案1.(略)3 .当定时器/计数器工作于方式0时,晶振频率为12MHz,请计算最小定时时间、最大定时时
14、间、最小计数值和最大计数值。答:当fosc=12MHz时,T机=1八对于方式0,最小定时时间为1最大定时时间为8192Q最小计数值为1,最大计数值为8192。(补充说明,如果工作于方式1,则相应的最小定时时间、最大定时时间、最小计数值和最大计数值分别为1g536科,1,65536。)4 .(略)7.用方式0设计两个不同频率的方波,P1.0输出频率为200Hz,P1.1输出频率为100Hz,晶振频率12MHz。分析:该题编程可以有很多方案,比如可以设计两个定时器,让T0作2.5ms定时器,T1作5ms定时器,定时时间一到,分别对P1.0口和P1.1口电平改变一次;也可以只设计一个2.5ms的定时
15、器,让P1.1口每次定时时间到改变电平一次,P1.0口每两次定时时间到改变电平一次。又如,定时器既可以用中断方式工作,也可以用查询方式工作。大家可自定方案。参考方案1:设计两个定时器,让T0作2.5ms定时器,T1作5ms定时器,定时时间一到,分别对P1.0口和P1.1口电平改变一次。参考方案2:只用T0作2.5ms定时器,定时时间到,P1.0电平改变1次,1次。;参考方案1(中断方式)ORG0000HAJMPMAINORG000BHAJMPTIMER0ORG001BHAJMPTIMER1ORG0100HMAIN: SETBP1.0SETBP1.1MOVTMOD,#00HMOVTH0,#0B1
16、HMOVTL0,#1CHMOVTH1,#63HMOVTL1,#18HSETBEASETBET0SETBET1SETBTR0SETBTR1SJMP$TIMER0:MOVTH0,#0B1HMOVTL0,#1CHCPLP1.0RETITIMER1: MOVTH1,#63HMOVTL1,#18HCPLP1.1RETIEND每定时2次,P1.1电平改变;参考方案1 (查询方式)ORG0000HAJMPMAINORG0100HMAIN: SETBP1.0SETBP1.1MOVTMOD,#00HMOVTH0,#0B1HMOVTL0,#1CHMOVTH1,#63HMOVTL1,#18HSETBTR0SETBT
17、R1CHECK: JBCTF0,TIMER0JBCTF1,TIMER1SJMPCHECKTIMER0: MOVTH0,#0B1HMOVTL0,#1CHCPLP1.0SJMPCHECKTIMER1: MOVTH1,#63HMOVTL1,#18HCPLP1.1SJMPCHECKEND;参考方案2 (查询方式)ORG0000HAJMPMAINORG0100HMAIN:SETBP1.0SETBP1.1MOVR7,#2MOVTMOD,#00HMOVTH0,#0B1HMOVTL0,#1CHSETBTR0LP1:JBCTF0,LP2SJMPLP1LP2:MOVTH0,#0B1HMOVTL0,#1CHCPLP
18、1.0DJNZR7, EXITMOVR7,#2CPLP1.1EXIT:SJMPLP1END8.P1.0输出脉冲宽度调制(PWM)信号,即脉冲频率为2KHz、占空比为7:10的矩形波,晶振频率为12MHz。解:对P1.1取反时,由于高、低电平的时间不同,可选时间基准为0.05ms,高电平的软件计数为7,低电平的软彳计数为3。若采用定时器1工作于方式2,则定时初值X=256-50/1=CEH。;参考程序1(中断方式);参考程序2(查询方式)ORG0000HLJMPMAINORG0000HORG001BHMAIN:SETBP1.0LJMPTIMER1MOVR7,#7MAIN:SETBP1.0MOVT
19、MOD,#20HMOVR7,#7MOVTH1,#0CEHMOVTMOD,#20HMOVTL1,#0CEHMOVTH1,#0CEHSETBTR1MOVTL1,#0CEHTIMER1:JBCTF1,LP2SETBEASJMPTIMER1SETBET1LP2:DJNZR7,TIMER1SETBTR1CPLP1.0SJMP$JNBP1.0,L1TIMER1:DJNZR7,EXITMOVR7,#7CPLP1.0SJMPTIMER1JNBP1.0,L1L1:MOVR7,#3MOVR7,#7SJMPTIMER1SJMPEXITENDL1:MOVR7,#3EXIT:RETIEND;参考程序3(查询方式,T1工
20、作于方式1)ORG0000HMAIN:SETBP1.0MOVR7,#7MOVTMOD,#10HMOVTH1,#0FFHMOVTL1,#0CEHSETBTR1TIMER1:JBCTF1,LP2SJMPTIMER1LP2:MOVTH1,#0FFHMOVTL1,#0CEHDJNZR7,TIMER1CPLP1.0JNBP1.0,L1MOVR7,#7SJMPTIMER1L1:MOVR7,#3SJMPTIMER1END9.两只开关分别接入P3.0、P3.1,在开关信号4种不同的组合逻辑状态,使P1.0分别输出频率0.5kHz、P3.1P3.0P1.0输出方波频率000.5KHz011kHz102kHz11
21、4kHz1kHz、2kHz、4kHz的方波,晶振频率为12MHz。解:仍有多种设计方案。其中一种为:要求P1.0分别输出频率0.5kHz、1kHz、2kHz、4kHz的方波,需要的定时时间分别为:1ms、0.5ms、0.25ms、0.125ms。可设计一个0.125ms的定时器,作为基准时间,再加上软件计数器8、4、2、1即可。设定时器T0工作于方式1,查询方式工作,参考程序如下。;笏巧程序1ORG0000HMAIN:SETBP1.0CHECK:JBP3.1,NEXTJBP3.0,KHZ_1SJMPHZ_500NEXT:JNBP3.0,KHZ_2SJMPKHZ_4HZ_500:MOVR7,#8
22、SJMPTO_DLYKHZ_1:MOVR7,#4SJMPTO_DLYKHZ_2:MOVR7,#2SJMPTO_DLYKHZ_4:MOVR7,#1TO_DELAY:ACALLDELAYCPLP1.0SJMPCHECKDELAY:MOVTMOD,#01HMOVTH0,#0FFHMOVTL0,#83HSETBTR0LP:JBCTF0,LP1SJMPLPLP1:DJNZR7,LP2SJMPEXITLP2:MOVTH0,#0FFHMOVTL0,#83HSJMPLPEXIT:RETEND;经书程序3ORG0000HMAIN:SETBP1.0;笏巧程序2ORG0000HMAIN:SETBP1.0CHECK:MOVP3,#0FFHMOVA,P3ANLA,#03HTEST0:CJN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业空调对接方案(3篇)
- 健康检测干预方案(3篇)
- 寝室噪音处理方案(3篇)
- DB23-T3040-2021-落新妇品种分株繁殖技术规程-黑龙江省
- DB23-T3034-2021-东风菜露地栽培技术规程-黑龙江省
- DB23-T2992-2021-稻壳灰废弃物综合利用生产白炭黑用稻壳灰加工技术规范-黑龙江省
- DB23-T2886-2021-小黑杨嫁接更新技术规程-黑龙江省
- DB23-T2866-2021-金娃娃萱草栽培技术规程-黑龙江省
- 设计公司变现方案(3篇)
- 取消境内赛事管理制度
- 水利安全风险防控“六项机制”与安全生产培训
- 新农乳业设备作业指导书
- 国家开放大学《财务报表分析》形考作业1-4参考答案
- 幼儿园绘本故事:《这是我的》 课件
- 机械类毕业设计外文翻译
- 2022年淮南市人民医院医护人员招聘笔试模拟试题及答案解析
- 原子荧光分析(砷)原始记录
- 如何提升企业的生命力
- 设备技术保密协议
- T∕CAME 27-2021 医院物流传输系统设计与施工规范
- YY∕T 1849-2022 重组胶原蛋白
评论
0/150
提交评论