单片机习题解答教材

上传人:我** 文档编号:114984165 上传时间:2019-11-12 格式:PPT 页数:19 大小:147.50KB
返回 下载 相关 举报
单片机习题解答教材_第1页
第1页 / 共19页
单片机习题解答教材_第2页
第2页 / 共19页
单片机习题解答教材_第3页
第3页 / 共19页
单片机习题解答教材_第4页
第4页 / 共19页
单片机习题解答教材_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《单片机习题解答教材》由会员分享,可在线阅读,更多相关《单片机习题解答教材(19页珍藏版)》请在金锄头文库上搜索。

1、10.3 判断下列说法是否正确。 (1)DPTR可以分为2个8位的寄存器使用,但PC不行。( 对 ) (2)片内RAM的位寻址区,只能供位寻址使用,不能供字节寻址使用。 (3)为使8051单片机的准双向I/O口工作在输入方式,必须将它预先设置为1。 ( 对 ) (4)在8051单片机中,一个机器周期等于1s。 (5)串行通信帧发送时,指令把TB8位的状态送入发送SBUF中。 (6)特殊功能寄存器IE,与定时器/计数器的控制无关。 (7)同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。 (8)8051单片机的CPU是由RAM和EPROM组成的。 (9)串行口方式1的波特率是可变的,通过定

2、时器/计数器T1的溢出率设定。 ( 对 ) (10)在8051的中断请求中,需外加电路实现中断请求撤销的是外部串行中断。,10.10 系统复位后执行下述指令,试问T0的定时时间为多长? MOV TH0, #06H MOV TL0, #00H SETB TR0,答: 系统复位后,TMOD=00H,此时T0工作为方式0、定时器初值为:TH0=06H,TL0=00H, 因为采用方式0工作,丢掉TL0的高3位,则THL0中的二进制数为:0,0000,110 0,0000即变为00C0H,则有: T0的定时时间为: (213-C0H)*Tcy = (8192-192)*Tcy = 8000*Tcy S。

3、,10.12 若单片机系统的晶振频率为11.0592MHz,串行口工作于方式1,波特率为4800b/s,请写出T1作为波特率发生器的方式控制字和计数初值。,答:串行口工作于方式1,晶振频率为11.0592MHz, 由教材P.256的公式计算,或由表10.8查阅可知,TH1=FAH。即: 方式控制字 :TMOD=20H, 计数初值:TH1=TL1=FAH (SMOD=0); 。 或: TH1=TL1=F4H (SMOD=1)。,11.7 已知:40H单元中有一个正数X,试写出对X求补的程序。,答:对一个8位带符号二进制机器数的求补可以定义为“求反加1”。相应程序为: MOV A,40H CPL

4、A INC A MOV 40H,A,亦可: CLR A CLR C SUBB A,40H MOV 40H,A,11.8 试编程将A中的高四位送入P2口的高四位,P2口低四位不变。,MOV R0,A ANL A,#0F0H ANL P2,#0FH ORL P2,A MOV A,R0,11.14 编写程序实现十进制减法,计算65-32,ORG 0100H CLR C MOV A,9AH SUBB A , #32H ADD A , #65H DA A CPL C,11.15 试编写程序,将内部RAM以BK为起始地址的10个单元中的数据求和,并将结果送入SUM单元。设和不大于255,MOV R0,#B

5、K MOV R7,#0AH CLR A LOOP:ADD A,R0 INC R0 DJNZ R7,LOOP MOV SUM,A SJMP $,12.2 已知一个补码形式的16位二进制数(低8位在NUM单元,高8位在NUM+1单元),试编程求出该16位二进制数的绝对值,并存放在原单元中。,MOV A,NUM+1 JNB ACC.7,DONE MOV R0,#NUM MOV A,R0 CPL A ADD A,#01H MOV R0,A INC R0 MOV A,R0 CPL A ADDC A,#00H MOV R0 A DONE:SJMP $,12.7 已知片内RAM 20H和30H为起始地址的存

6、储区中分别有8字节无符号被减数和减数(低字节在前,高字节在后)。编写子程序完成减法运算,并把差放入以20H为起始地址的存储单元中,BUBTR: MOV R0,#20H ;被减数起始地址送R0 MOV R1,#30H ;减数起始地址送R1 MOV R2,#08H ;字长送R2 CLR C LOOP:MOV A,R0 ;被减数送A SUBB A,R1 ;相减,形成Cy MOV R0,A ;存差 INC R0 ;修改被减数地址指针 INC R1 ;修改减数地址指针 DJNZ R2,LOOP ;若未完,则转LOOP RET,12.8 片内RAM 20H单元开始存放着8个无符号数,编写子程序找出其中的最

7、大值送入片内RAM的30H单元,MOV R0,#20H ;数据区首地址送R0 MOV A,R0 ;取第一个数做基准数送A MOV R7,#07H ;比较次数送计数器R7 LOOP:INC R0 ;指向下一个单元 MOV 30H,R0 ;要比较的数暂存30H CJNE A,30H,CHK ;两数作比较 CHK:JNC LOOP1 ;A大,则转移 MOV A,R0 ;A小,则大数送A LOOP1:DJNZ R7,LOOP ;计数器减1,不为零,继续 MOV 30H,A ;比较完,存结果 RET,12.10 已知51系列单片机系统的晶振频率为6MHz,请编写程序,使用T0定时,在P1.0输出连续矩形

8、波,,ORG 0000H ;采用查询方式的程序 MAIN:MOV TMOD,#01H ;设置T0工作于模式1 SETB TR0 ;启动T0 WAIT0:SETB P1.0 MOV TH0,#0FFH ;T0计数初值(计数25,定时50us) MOV TL0,#0E7H WAIT1:JNB TF0,WAIT1 CLR TF0 CLR P1.0 MOV TH0,#0FFH ;T0计数初值(计数75,定时150us) MOV TL0,#0B5H WAIT2:JNB TF0,WAIT2 CLR TF0 SJMP WAIT0,ORG 0000H ;采用中断方式的程序 LJMP MAIN ;跳转至主程序

9、ORG 000BH ;T0中断向量地址 AJMP T0ISR ORG 0030H MAIN:MOV SP,#30H ;调整堆栈指针 MOV TMOD,#01H ;设置T0工作于模式1 MOV TH0,#0FFH ;T0定时初值(-25的补码) MOV TL0,#0E7H MOV IE,#82H ;打开全局中断和T0中断 SETB TR0 ;启动T0 SETB P1.0 SETB F0 ;“输出电平标志”置1(输出高电平) SJMP $ ;循环等待,ORG 0100H ;定时器T0中断服务程序 T0ISR: JNB F0,L1 MOV TH1,#0FFH ; T0计数初值(-75的补码) MOV

10、 TL1,#0B5H CLR P1.0 CLR F0 ;“输出电平标志”置1(输出低电平) SJMP L2 L1:MOV TH0,#0FFH ;T0定时初值(-25的补码) MOV TL0,#0E7H SETB P1.0 SETB F0 ;“输出电平标志”置1(输出高电平) L2:RETI END,12.11 编写中断初始化程序,将 设为高优先级中断、电平触发方式;T0溢出中断设为低优先级中断,串行口中断为高优先级中断,其余中断源设为禁止状态。,MOV IE,#96H SETB PX1 CLR IT1 CLR PT0 SETB PS,13.8 欲利用DAC 0832 和8031 组成的单片机应

11、用系统产生一个等腰三角形的波形,要求周期为1 秒、幅值为+5V,试画出DAC 0832 与8031 的接口电路,并编写相关的程序。(参考P339 例13.8),无关的地址线取1,则DAC0832对应的端口地址为7FFFH, 将A内容送DAC 0832即可启动转换。,利用图示电路,产生等腰三角波,因数字量00FFH对应的模拟量为0V5V,则每一步对应的模拟量为:,步,而等腰三角波的半周期为500ms,每一步上升的时间为:,MOV DPTR,#7FFFH ;指向0832 端口地址 MOV A,#00H ;第一个波形的起始值为0V LP1: MOVX DPTR,A ;输出前半周期 ACALL DEL

12、AY2 ;调2ms 延时子程序 INC A ;修改输出值,即幅值增加0.2V JNZ LP1 LP2: DEC A; 输出后半周期 MOVX DPTR,A ;输出数据到DAC 0832 ACALL DELAY2 ;调2ms 延时子程序 JNZ LP2 SJMP LP1,一、判断一个数(例如:累加器A)是否为零: (1)JZ ZERO (2) CJNE A , #00H , NZERO 二、判断一个数(例如:累加器A)是否为负数: (1) JB A7,NEG (2) CJNE A , #80H , NEXT NEXT:JNC NEG (3) RLC A (4) ANL A, #80H JC NE

13、G JNZ NEG,比较A,B中两个带符号数大小的子程序COMPAB 入口:两个要比较大小的带符号数分别送入A,B 出口:A-B后,若AB,则01HA; A=B,则00HA ; AB,则80HA COMPAB:CLR C SUBB A, B JZ L3 ;A=B,则转L3 JB OV,L0 ;若溢出则转L0 JB A.7,L1 ;未溢出,且结果为负数(AB)转L1 SJMP L2 ;未溢出, 且结果为正数(AB)转L2 L0: JB A.7,L2 ;溢出且结果为负数,(AB)转L2 L1:MOV A, #80H ;溢出且结果为正,置AB的标志 SJMP L3 L2:MOV A, #01H ; 置AB的标志 L3:RET,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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