5 片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中. 解 START: MOV R0,#40H ;数据块首地址送R0 MOV R7,#09H ;比较次数送R7
MOV A,@R0 ;取数送A LOOP: INC R0
MOV 30H,@R0 ;取数送30H
CJNE A,30H,NEHT ;(A)与(30H)相比 NEXT: JNC BIE1 (A)≥(30H)转BIR1 MOV A,30H ;(A)<(30H),大数送A
BIE1: DJNZ R7,LOOP ;比较次数减1,不为0,继续比较 MOV 50H,A ;比较结束,大数送50H RET
6 编一子程序,从串行接口接受一个字符.
解: START: MOV TMOD,#20H ;定时器T1工作于模式2 MOV TH1,#0E8H ;设置波特率为1 200b/s MOV TL1,#0E8H
SETB TR1 ;启动T1
MOV SCON,#50H ;串行接口工作于方式1,充许接收
L1: JNB RI,L1 ;等待接收数据,末接收到数据,继续等待 CLR RI ;接收到数据,清RI MOV A,SBUF ;接收到数据送A RET
7 利用调子程序的方法,进行两个无符号数相加。请编主程序及子程序。
解 用R0和R1作数据指针,R0指向第一个加数,并兼作“和”的指针,R1指向另一个加数,字节存放到R2中作计数初值。 主程序:
JAFA: MOV R0,#20H ;指向加数最低字节
MOV R1,#29H ;指向另一加数最低字节 MOV R2,#04H ;字节数作计数值 ACALL JASUB ;调用加法子程序 AJMP $ RTE
多字节加法子程序: JASUB: CLR C
JASUB1: MOV A,@R0 ;取出加数的一个字节(4B无符号数加数) ADDC A,@R1 ;加上另一数的一个字节 MOV @R0,A ;保存和数 INC R0 ;指向加数的高位 INC R1 ;指向另一加数的高位 DJNZ R2,JASUB1 ;全部加完了吗? RET
8 若图数据块是有符号数,求正数个数,编程并注释。
解 ORG 0030H
START: MOV 20H,#00H ;计正数个数计数器 MOV DPTR,#0000H ;
MOVX A,@DPTR ;数据块长度→10H MOV 10H,A
INC DPTR ;DPTR指向第一个数的地址 TWO: MOVX A,@DPTR ;取数→A
JB ACC.7,ONE ;是负数转ONE,准备取下一个数 INC 20H ;是正数,正数计数器加1 ONE: INC DPTR ;地址指针加1
DJNZ 10H,TW ;数据块长度减1不等于0,继续寻找 RET
9 编制一个循环闪烁灯的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。 解 P1.0 D0 Q0 8013 74LS240 P1.7
D7 Q7
5V
本程序的硬件连接如图所示。当P1.0输出高电平时,LED灯亮,否则不亮。 其程序如下:
MOV A,#01H ;灯亮初值
SHIFT: LCAIL 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 第四章 4-1填空
1.MCS-51的Po口作为输出端口时,每位能驱动 8 个SL型TTL负载.
2.MCS-51有 4个并行I\\O口,其中P0~P3是准双向口,所以由输出转输入时必须先写入\
3.设计8031系统时,_P0、P2 口不能用作一般I\\O口.
4.MCS-51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器__SCON _加以选择.
5.当使用慢速外设时,最佳的传输方式是 中 断 .
6.当定时器To工作在方式3 时,要占定时器T1的TR1和TF1_两个控制位.
7.MCS-51有 5 个中断源,有2 个中断优先级,优先级由软件填写特殊功能寄存器 IP 加以选择..
8.用串口扩并口时,串行接口工作方式应选为方式 0 .
9.在串行通信中,有数据传送方向单工、半双工、全双工三种方式. 10.外部中断 入口地址为_ 0013H
4-2判断
1.MCS-51的5个中断源优先级相同。 ( × )
2.要进行多机通信,MCS-51串行接口的工作方式应为方式1。 ( × ) 3.MCS-51上电复位时,SBUF=00H。 ( × )。
4.MCS-51有3个中断源,优先级由软件填写特殊功能寄存器IP加以选择.. ( × ) 5.用串口扩并口时,串行接口工作方式应选为方式1. ( × ) 6.外部中断INTO 入口地址为_0013H( × )
7.MCS-51外部中断0的入口地址是0003H。 (√ ).
8.TMOD中的GATE=1时,表示由两个信号控制定时器的启停。 ( √ )。 9.使用8751且 =1时,仍可外扩64KB的程序存储器。( × ) 10.PC存放的是当前执行的指令。( × )
11.MCS-51的特殊功能寄存器分布在60H~80H地址范围内。(× )
12.MCS-51有4个并行I\\O口,其中P0~P3是准双向口,所以由输出转输入时必须先写入\( × )
4-3选择
1.在中断服务程序中,至少应有一条( D )
(A)传送指令(B)转移指令(C)加法指法(D)中断返回指令
2.要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是( A )
(A)98H (B)84H (C)42 (D)22H 3.D MCS-51在响应中断时,下列哪种操作不会发生( D ).
(A)保护现场 (B)保护PC (C)找到中断入口 (D)保护PC转入中断入口 4.用MCS-51串行接口扩展并行I\\O口时,串行接口工作方式应选择( C ) (A)方式0 (B)方式1 (C)方式2 (D)方式3 5.MCS-51有中断源( A )
(A)5个 (B)2个 (C)3个 (D)6个 6.MCS-51响应中断时,下面哪一个条件不是必须的( ) (A)当前指令执行完毕 (B)中断是开放的确
(C)没有同级或高级中断服务须 (D)必须有RET1指令 7.使用定时器T1时,有几种工作模式( C )
(A)1种 (B)2种 (C)3种 (D)4种
8.计算机在使用中断方式与外界交换信息时,保护现场的工作方式应该是 ( B ) (A)由CPU自动完成 (B)在中断响应中完成
(C)应由中断服务程序完成 (D)在主程序中完成 9.下面哪一种传送方式适用于处理外部事件( C ) (A)DMA (B)无条件传递进 (C)中断 (D)条件传递
1、2、4章的编程
8225A控制字地址为300FH,请按:A口方式0输入,B口方式1输出,C口高位输出,C口低位输入,确定8225A控制字并编初始化程序. 解:控制字为 10010101=95H
初始化程序:MOV DPTR ,#300FH MOV A, #95H
MOVX @DPTR, A
编定一个软件延时1S和1min的子程序.设fosc=6Hz,则一个机器周期1μs。 解:(1)1S=2US*5*100000 5*100000=250*200*10 ORG 1000H
TIME: MOV R7, #10 T3: MOV R6, #200 T2: MOV R6, #250 T1: DJNZ R5, T1 DJNZ R6, T2 DJNZ R7, T3 RET
(2)1min=60,调用上面1s子程序60次 ORG 0030H MOV R0, #60 LOOP: LCALL TIME DJNZ R0, LOOP RET
请编制串行通信的数据发送程序,发送片内RAM50H~5FH的16B数据,串行接口设定为方式2,采用偶校验方式。设晶振频率为6MHz。 解:查询方式发送程序如下 MOV SCON, #8OH M OV PCON, #80H MOV R0, #50H MOV R7, #16H LOOP: MOV A,@R0 MOV C, P MOV TB8, C MOV SBUF, A JNB T1, $ CLR T1 INC R0
DJNZ R7, LOOP
相关推荐: