内容发布更新时间 : 2024/12/23 14:13:36星期一 下面是文章的全部内容请认真阅读。
END
21.内部RAM的DATA1和DATA2单元开始存放着两个等长的数据块,数据块的长度在LEN单元中。请编程检查这两个数据块是否相等,若相等,将0FFH写入RESULT单元,否则将0写入RESULT单元。
MOV R0,#DATA1 MOV R3, LEN LOP: MOV A, @R0 CJNZ A,DATA2, LOP1 INC R0 INC DATA2 DJNZ R3,LOP MOV A,#0FFH MOV RESULT,A AJMP LOP2 LOP1:MOV A,#0 MOV RESULT, A LOP2: AJMP LOP2 END
22.有一输入设备,其端口地址为20H,要求在1秒钟时间内连续采样10次读取该端口数据,求其算术平均值,结果存放在内部RAM区20H单元。
MOV R0,#20H MOV R2,#0
17
MOV A,#0 MOV R4,#0
LOP : MOV R3,#0AH IN : ACALL DELAY
MOVX A, @R0 MOV R2 , A MOV A, R4 ADD A, R2 MOV R4, A DJNZ R3, IN MOV B,#0AH DIV AB MOV 20H,A AJMP LOP
DELAY: MOV R5,#64H 延时时间为0.1s的子程序: LOP1: MOV R7, #0FFH LOOP: NOP NOP DJNZ R7, LOOP
DJNZ R5,LOP1
RET
END
23.编写子程序,将内部RAM区以30H为起始地址的连续10个存储单元中的数据,
18
按照从小到大的顺序排序,排序结果仍存放在原数据区。
采用冒泡法排序: 冒泡排序法的基本算法是:N个数排序,从数据存放单元的一端(如起始单元)开始,将相邻二个数依次进行比较,如果相邻两个数的大小次序和排序要求一致,则不改变它们的存放次序,否则相互交换两数位置,使其符合排序要求,这样逐次比较,直至将最小(降序)或最大(升序)的数移至最后。然后,再将n-1个数继续比较,重复上面操作,直至比较完毕。
可采用双重循环实现冒泡法排序,外循环控制进行比较的次数,内循环实现依次比较交换数据。
程序如下:
ORG 0000H
BLOCK EQU 30H ;设BLOCK为30H单元 MOV R7, #9H ;设置外循环计数器 NEXT: MOV A, R7
MOV 80H, A
MOV R6, A ;设置外循环计数器 MOV R0, #30H ;设置数据指针 COMP: MOV A, @R0 MOV R2, A INC R0 CLR C
SUBB A, @R0 JC LESS
MOV A, R2 XCH A, @R0
DEC R0
MOV @R0, A INC R0
LESS: DJNZ R6,COMP ;(R6)-1不等于0,转COMP继续内循环
MOV R0,#30H
DEC 80H
MOV R6, 80h
DJNZ R7, COMP RET END
第4章习题答案
1.MCS-51系列单片机能提供几个中断源、几个中断优先级?各个中断源的优先级怎
19
样确定?在同一优先级中,各个中断源的优先顺序怎样确定?
答:MCS-51系列单片机能提供5个中断源,2个中断优先级。各个中断源的优先级是由特殊功能寄存器IP来确定,IP中和各个中断源对应位为1时,此中断源为高优先级,否则为低优先级。在同一优先级中,各个中断源的优先顺序是由自然优先级来确定的。 2.简述MCS-51系列单片机的中断响应过程。
答:MCS-51系列单片机的中断响应过程是按照以下顺序执行的:开中断-----中断请求------中断判断-------中断响应-------中断返回。
3.MCS-51系列单片机的外部中断有哪两种触发方式?如何设置?对外部中断源的中断请求信号有何要求?
答:MCS-51系列单片机的外部中断有电平触发和边沿触发两种方式。是由特殊功能寄存器TCON中IT0,IT1的状态确定的,如:IT0为1时外部中断0为边沿触发方式,当INT0外部引脚出现下降沿时向CPU提出中断请求, 否则为电平触发方式,当INT0外部引脚出现低电平时向CPU提出中断请求。
4.MCS-51单片机中断响应时间是否固定?为什么?
答:MCS-51单片机中断响应时间不固定,因为当中断源向CPU提出中断请求时,CPU正在执行的指令的指令周期是不一样的。
5.MCS-51单片机如果扩展6个中断源,可采用哪些方法?如何确定它们的优先级? 答:一般可采取中断加查询方式,软件先查询到的为高优先级,最后查询到的为低优先级。
6.当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?
答:当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,当新中断源中断级别比正在执行中断源的中断级别高时可响应新的中断请求,否则不能响应新的中断请求。
20