当前位置:首页 > 单片机原理及应用技术苏家建曹柏荣汪志锋课后习题参考答案 (1)
第四章 程序设计基础
4-1片内RAM 30H单元开始存放着一组用补码表示的有符号数,数目存于20H单元。编程统计出正数,0,负数的数目,分别存到21H,22H,23H单元。 ORG 0100H MOV 21H,#0 MOV 22H,#0 MOV 23H,#0 MOV R0,#30H LOOP: MOV A,@R0 CJNE A,#0 ,PD INC 22H SJMP DONE PD:JB ,FU INC 21H SJMP DONE FU:INC 23H DONE: INC R0 DJNZ 20H,LOOP SJMP $ END
4-2 片内RAM 20H-2FH.凡是满足奇偶校验的数据(1的个数为偶数)的数转存到片外8000H开始的数据区 ORG 0100H MOV R0,#20H MOV DPTR,#8000H MOV R2,#0FH LOOP: MOV A,@R0 JB ,DONE MOVX @DPTR,A INC DPTR DONE: INC R0 DJNZ R2,LOOP SJMP $ END
4-3 编程,把外部 RAM 1000H-10FFH的数据传送到2000H开始的区域 ORG 0100H MOV R3,#10H MOV R4,#20H MOV DPL,#00H MOV R2,#0 LOOP:MOV DPH,R3 MOVX A,@DPTR MOV DPH,R4 MOVX @DPTR,A INC DPL DJNZ R2,LOOP
SJMP $ END
4-4片内RAM 30H单元开始存放着一组无符号数,其数目在21H单元中。编程将其中最小的数存入21H ORG 0100H MOV R0,#30H MOV R2,21H MOV A,30H
LOOP: CJNE A,@R0,PD SJMP DONE PD:JNC DONE MOV 22H,@R0 XCH A,22H DONE: INC R0 DJNZ R2,LOOP MOV 21H,A SJMP $ END
4-5 编程实现片内RAM 30H单元开始的16个数按顺序颠倒过来 ORG 0100H MOV R0,#30H MOV R1,#40H MOV R2,#0FH LOOP:MOV A,@R0 MOV @R1,A INC R0 INC R1 DJNZ R2,LOOP MOV R2,#0FH MOV R0,#40H MOV R1,#3FH LOOP1: MOV A,@R0 MOV @R1,A INC R0 DEC R1 DJNZ R2,LOOP1 SJMP $ END
4-6 编程实现片内RAM 30H单元开始的16个数,存有最小数值的所在单元的内容改为0FFH
ORG 0100H MOV R0,#30H MOV R2,#16 MOV A,30H MOV 22H,#0 ;22H存放找到的16个数中的最小值 MOV 23H,#0 ;存放最小数值的地址放到23H
LOOP: CJNE A,@R0,PD SJMP DONE PD:JNC DONE MOV 22H, @R0 MOV 23H,R0 XCH A,22H DONE: INC R0 DJNZ R2,LOOP MOV R0,23H MOV @R0,#0FFH SJMP $ END
4-7 编程实现=? ORG 0100H MOV C, ANL C,/ MOV 20H,C MOV C, ANL C,/ ORL C,20H ANL C, MOV ,C END
4-8编程统计片内RAM 30H单元开始的16个数,有多少数大于40,小于80,将结果存入40H单元中 ORG 0100H MOV R0,#30H MOV R2,#16 MOV 40H,#0 LOOP:MOV A,@R0 CJNE A,#40,PD SJMP DONE PD:JNC PD2 SJMP DONE
PD2:CJNE A,#80,PD3 SJMP DONE PD3:JC COUNT SJMP DONE COUNT:INC 40H DONE:INC R0 DJNZ R2,LOOP SJMP $ END
第六章 中断系统
6-1 定时器T0和T1各有几种工作方式?请简述。 答:四种。 工作方式 T0 T1 方式0 方式1 方式2 最大计数模值 213 216 28 初值加载方式 人工加载 人工加载 自动加载 最大计数模值 213 216 28 初值加载方式 人工加载 人工加载 自动加载(常用于串口通信波特率发生器) TH0、TL0被8位计数,无 分成两个相互中断产生,自独立的8位计动加载初值,数器;TL0既用于不需要中方式3 可做定时器也断的场合 可做计数器;TH0可做内部定时器。人工加载初值 6-2 已知单片机系统时钟频率fosc=12MHz,若要求定时值分别为、1ms、10ms,定时器T0工作在方式0,方式1和方式3时,定时器对应的初值各为多少? 定时时间 工作方式0初工作方式1初工作方式2初工作方式3初值 值 值 值 FC1CH FF9CH 9CH 9CH 1ms E018H FC18H 10ms D8F0H 6-3 定时器/计数器T0已预置为156,工作于方式2计数,现T0引脚上输入周期为1ms的脉冲,问:
(1)此时T0的实际用途是? (2)在什么情况下,T0溢出? 答:(1)计数器
(2)T0可记录100个外部脉冲,即从开始启动工作,经过100ms 开始溢出。
6-4 设系统时钟为6MHz,利用T0和产生连续矩形波,高电平宽度为50us,低电平宽度为300us。
解:因为系统时钟为6MHz,则一个计数脉冲为2us,若T0工作于方式1,则输出高电平T0需记录25个脉冲,计数初值为216-25=FFE7H,,则输出低电平T0需记录150个脉冲,计数初值为216-150=FF6AH,编程如下
ORG 0000H LJMP MAIN ORG 000BH LJMP T00 ORG 0100H MAIN:MOV SP,#60H MOV TMOD,#01H
MOV TH0,#0FFH MOV TL0,#0E7H SETB EA SETB ET0
28
共分享92篇相关文档