单片机课后作业答案

上传人:206****923 文档编号:54848407 上传时间:2018-09-20 格式:PPT 页数:35 大小:421KB
返回 下载 相关 举报
单片机课后作业答案_第1页
第1页 / 共35页
单片机课后作业答案_第2页
第2页 / 共35页
单片机课后作业答案_第3页
第3页 / 共35页
单片机课后作业答案_第4页
第4页 / 共35页
单片机课后作业答案_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《单片机课后作业答案》由会员分享,可在线阅读,更多相关《单片机课后作业答案(35页珍藏版)》请在金锄头文库上搜索。

1、作业0:,1.试画出与.或.非三种位逻辑运算真值表,A&B、A|B、A。,2.试分别分析“按键电平复位电路”在上电和按下按键两种状况下,如何实现在RST引脚上产生高电平复位脉冲的?(只需要定性分析工作原理),3.假设某MCS-51单片机系统外接晶体为11.0592MHz, (1)试计算该单片机的状态周期、状态周期频率、机器周期、机器周期频率、地址锁存信号ALE的频率。 (2)已知乘法指令MUL AB需要4个机器周期,加法指令ADD A,Rn需要1个机器周期,试计算单片机执行上述两条指令分别需要多长时间?(1)状态周期:1 (11.0592MHz 2)=0.18uS频率: 11.0592MHz

2、2=5.5296MHz机器周期: 1 (11.0592MHz 12)=1.085uS频率: 11.0592MHz 12=0.9216MHzALE频率: 11.0592MHz 6=1.8432MHz (2)MUL:1.085*4=4.34uSADD:1.085uS,存在计算精度问题.,4.设(20H)=25H,(25H)=10H,P1=CAH 执行下列程序: MOV R0,#20H MOV A,R0 MOV R1,A MOV B,R1 MOV R1,P1 MOV P2,P1 执行结果为:A= 25H ; R1= 25 ;B= 10H ; (20H)= 25H ; (25H)= CAH ; P2=

3、 CAH ;,作业1:,(8)ADD A,#30H ; A=( AAH ),CY=( 0 )(9)ADDC A,30H ; A=( 20H ),CY=( 1 )(10)SUBB A,30H ; A=( D4H ),CY=( 1 ) (11)SUBB A,#30H ; A=( 49 ),CY=( 0 )2.假定A=85H,R0=20H,(20H)=0AFH,执行指令“ADD A,R0”后,累加器A的内容为( 34H ),CY的内容为( 1 ),AC的内容为( 1 )。,4.编写程序,将内部数据存储器30H35H单元的数据传送到外部数据存储器的2003H2008H单元.MOV R0,#30H ;指

4、针首地址MOV DPTR,#2003H ;指针首地址MOV R1,#06H ;字节个数LOOP: MOV A,R0 ;取数据MOVX DPTR,A ;保存数据INC R0 ;指针加1INC DPTR ;指针加1DJNZ R1,LOOP ;判断是否传送完SJMP $,5.编写程序,将片内RAM60H单元与61H单元的数据交换。MOV A,#60HMOV 60H,61HMOV 61H,A,6.如何将累加器A中的数据高4位保持不变,低4位位置1?ORL A,#0FH7.如何将寄存器R2中的数据奇数位清0,偶数位不变?MOV A,R2ANL A,#55HMOV R2,A,作业2:,4. 注释下列程序各

5、语句,并说明该程序功能。 MOV R0, #36H ; 立即数#36H送R0 MOV A, R0 ; 取36H单元中的数送累加器A ANL A, #0FH ; 累加器A中数与立即数#0FH相与 SWAP A ; 累加器A中的高低四位交换 MOV B, A ; 累加器A中数送寄存器B INC R0 ; R0加1 MOV A, R0 ; 取37H单元中的数送累加器A ANL A, #0FH ; 累加器A中数与立即数#0FH相与 ORL A, B ; 累加器A与寄存器B相或 INC R0 ; R0加1 MOVX R0, A ; 累加器A中的数写入38H单元 该段程序实现字节合并,将36H单元与37H

6、单元中的低4位合并成一个字节,结果存入38H单元中。,5.试编写一拆字子程序,将累加器A中的高、低四位分开,分别对应放到31H单元、30H单元的低四位中,并将31H单元、30H单元的高四位全部补0。,MOV R0,#30H ;设指针 MOV R2,A ;暂存 ANL A,#0FH ;高半字节清0 MOV R0,A ;保存数据低位 INC R0 MOV A,R2 SWAP A ; ANL A,#0FH MOV R0,A ;保存数据高位 RET,6.试编写一拼字子程序,将外部RAM中3001H单元、3000H单元的低四位组成一个新的字节,存储到内部数据存储器32H单元中。,MOV DPTR, #3

7、001H ;指针指向3001H单元 MOVX A, DPTR ;读取36H单元内的数据 ANL A, #0FH ;屏蔽高四位,保留低四位 SWAP A ;交换到高4位中 MOV B, A ;暂存到寄存器B中 DEC DPL ;指针指向3000H单元 MOVX A, DPTR ;读取3000H单元内的数据 ANL A, #0FH ;屏蔽高四位,保留低四位 ORL A, B ;与寄存器B中数据相或 MOV 32H, A ;新字节保存到32H单元中,作业3:,1.利用堆栈操作,将片内RAM 60H单元与61H单元的数据交换。,PUSH 60H PUSH 61H POP 60H POP 61H,MOV

8、 R0,#40HMOV R1,#50HMOV R2,#04H(05H)CLR C LOOP: MOV A,R0ADDC A,R1INC R0INC R1DJNZ R2,LOOPMOV 20H,#00HMOV 00H,CMOV 54H,20HRET,2.假设有两个4字节的二进制数,分别存放在40H和50H为起始地址的连续单元中(低位放在低地址中),编写子程序,求这两个数的和,结果存放在以50H为起始地址的连续5个单元中。,3.设变量x是无符号的数,并放在寄存器R2中,函数y与x有如下关系式:,请编写子程序计算y,其结果存入寄存器R5中。,CJNE R2,#128,NEQMOV R5,#10H ;

9、X=128SJMP OVER NEQ: JC NEQ1MOV A,R2 ;X128SUBB A,#100MOV R5,ASJMP OVER NEQ1: MOV A,R2 ;X128ADD A,#5MOV R5,A OVER: RET,4. 手工编译下述程序段 (12)地址 机器码 ORG 0030HMOV TMOD,#03HMOV TL1, #83HMOV TH1, #4CHSETB TR1SETB ET1SETB EA,ORG 0200H D2S: MOV R7,#10 D2S1:MOV R6,#200 D2S2:MOV R5,#249 D2S3:NOPNOPDJNZ R5,D2S3 NOP

10、 DJNZ R6,D2S2DJNZ R7,D2S1RET,ORG 0100H D200MS: MOV R7,#200 D200MS1:MOV R6,#250 D200MS2:NOPNOPDJNZ R6,D200MS2 DJNZ R7,D200MS1RET,6.利用第五题的延时子程序,编写一个主程序,要求在P1.0口上连续输出周期为2.2S的方波信号,其中高电平宽度为2S,低电平宽度为200mS。(该题为下次实验内容),ORG 0000HLJMP 0030HORG 0030H LOOP: SETB P1.0LCALL D2SCLR P1.0LCALL D200MS SJMP LOOP,定时器作业

11、:,1 已知单片机晶振频率为12MHz,采用查询方式编写程序,使用T0以工作方式1产生周期为40ms的等宽方波连续脉冲,并由P1.5口输出.,ORG 0000HLJMP 0030HORG 0030HMOV TMOD,#01H ;T0工作方式1MOV TH0,#0B1H ;T1定时250us初值MOV TL0,#0E0HSETB TR0 ;打开定时器T1 LP: JNB TF0, $ ;判断T1是否溢出CLR TF0 ;清溢出标志位MOV TH0,#0B1H ;重新赋定时初值MOV TL0,#0E0HCPL P1.5 ;P1.5口输出状态取反SJMP LP,2 已知单片机晶振频率为12MHz,采

12、用查询方式编写程序,使用T0以工作方式1产生周期为4s的等宽方波连续脉冲,并由P1.4口输出.,ORG 0000HLJMP 0030HORG 0030HMOV TMOD,#01H;T0工作方式1MOV TH0,#3CH ;T0定时50ms初值MOV TL0,#0B0HMOV R0,#40 ;定时次数SETB TR0 ;启动定时器 LP:JNB TF0,$ ;判断T0是否溢出CLR TF0 ;清溢出标志MOV TH0,#3CH ;重赋初值MOV TH0,#0B0H DJNZ R0,LP ;判断溢出次数是否达到40次CPL P1.4 ;P1.4口输出状态取反MOV R0,#40 ;重置定时次数SJ

13、MP LP,3 已知单片机晶振频率为12MHz,采用查询方式编写程序,使用T1以工作方式2产生周期为400us、占空比为50%的连续方波,并由P1.3口输出.,ORG 0000HLJMP 0030HORG 0030HMOV TMOD,#20H;T1工作方式2MOV TL1,#38H(C8H) ;T0定时100ms初值MOV TH1,#38H(C8H) ;初值预置寄存器SETB TR1 ;启动定时器 LP:JNB TF1,$ ;判断T1是否溢出CLR TF1 ;清溢出标志CPL P1.3SJMP LP,4 已知单片机晶振频率为11.0592MHz,T1工作于方式2,为了让T1每秒溢出1200次,

14、试计算T1的定时初值.如果要求每秒溢出2400次、4800次、9600次,T1的初值又该分别是多少?,9600:X=160=A0H因此,TL1初值为A0H,4800:X=64=40H因此,TL1初值为40H,1200和2400需要软件级连.,ORG 0000HLJMP MAIN ORG 000BHLJMP 0100H ORG 0030H MAIN: MOV SP, #6FH MOV R0, #20MOV TMOD,#01H MOV TL0,#0B0HMOV TH0,#3CHSETB TR0 SETB ET0SETB EASJMP $,ORG 0100H LOOP: MOV TL0,#0B0HMOV TH0,#3CHDJNZ R0, LOOPMOV R0, #20CPL P1.0 LOOP: RETI,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 其它小学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号