单片机原理及应用技术苏家建曹柏荣汪志锋课后习题参考答案.pdf

上传人:l*** 文档编号:71735321 上传时间:2023-02-05 格式:PDF 页数:15 大小:619.42KB
返回 下载 相关 举报
单片机原理及应用技术苏家建曹柏荣汪志锋课后习题参考答案.pdf_第1页
第1页 / 共15页
单片机原理及应用技术苏家建曹柏荣汪志锋课后习题参考答案.pdf_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《单片机原理及应用技术苏家建曹柏荣汪志锋课后习题参考答案.pdf》由会员分享,可在线阅读,更多相关《单片机原理及应用技术苏家建曹柏荣汪志锋课后习题参考答案.pdf(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、单片机原理及应用技术苏家建课后习题参考答案第三章第三章 MCS-51MCS-51 指令系统指令系统3-1 MCS-51 指令系统有哪几种寻址方式?按功能分类有哪几种指令?3-2 设 A=0FH,R0=30H,片内 RAM 的(30H)=0AH,(31H)=0BH,(32H)=0CH,下列程序段运行后的结果?MOV A,R0;A=0AHMOV R0,32H;(30H)=0CHMOV 32H,A;(32H)=0AHMOV R0,#31H;R0=31HMOV A,R0;A=(31H)=0BH3-3(1)R0 的内容传送到 R1MOV A,R0MOV R1,A(2)内部 RAM 20H 单元的内容传送

2、到 AMOV A,20H(3)外部 RAM 30H 单元的内容传送到 R0MOV R1,#30HMOVX A,R1MOV R0,A(4)外部 RAM 30H 单元的内容传送到内部 RAM 20H 单元MOV R1,#30HMOVX A,R1MOV 20H,A(5)外部 RAM 1000H 单元的内容传送到内部 RAM 20H 单元MOV DPTR,#1000HMOVX A,DPTRMOV 20H,A(6)程序存储器 ROM 2000H 单元的内容传送到 R1MOV DPTR,#2000HCLR AMOVC A,A+DPTRMOV R1,A(7)RAM 2000H 单元的内容传送到内部 RAM

3、20H 单元MOV DPTR,#2000HMOVX A,DPTRMOV 20H,A(8)RAM 2000H 单元的内容传送到外部 RAM 30H 单元MOV DPTR,#2000HMOVX A,DPTRMOV R0,#30HMOVX R0,A(9)RAM 2000H 单元的内容传送到外部 RAM 1000H 单元MOV DPTR,#2000HMOVX A,DPTRMOV DPTR,#1000HMOVX DPTR,A3-4 设内部 RAM 30H=5AH,5AH=40H,40H=00H,P1=7FH,下面程序执行后的结果如何?MOV R0,#30H;R0=30HMOV A,R0;A=(30H)=

4、5AHMOV R1,A;R1=5AHMOV R1,P1;(5AH)=7FHMOV A,P1;A=7FHMOV 40H,#20H;(40H)=20HMOV 30H,40H;(30H)=00H3-5 编程,将内部 RAM 20H-2FH 共 16 个连续单元清零ORG 0100HMOV R0,#20HMOV R2,#16LOOP:MOV R0,#00HINC R0DJNZ R2,LOOPEND3-6 编程,求出内部 RAM 20H 单元中的数据含“1”的个数,并将结果存入 21H 单元中。ORG 0100HMOV 21H,#0MOV R2,#8MOV A,20HCLR CLOOP:RLC AJC

5、COUNTDJNZ R2,LOOPSJMP STOPCOUNT:INC 21HDJNZ R2,LOOPSTOP:SJMP$END3-7 编程,找出内部 RAM 30H-50H 单元中出现 FFH 的次数,并将结果存入 51H 单元中。ORG 0100HMOV 51H,#0MOV R0,#30HMOV R2,#20HLOOP:MOV A,R0CJNE A,#0FFH,AGAININC 51HAGAIN:INC R0DJNZ R2,LOOPSJMP$END3-8 编程,计算2i,并将结果存入内部的 30H 单元10i0ORG 0100HMOV 30H,#0MOV 31H,#0;i 的初值MOV R

6、0,#30HMOV R2,#11MOV A,31HLOOP:INC 31HADD A,R0MOV R0,AMOV A,31HRL ADJNZ R2,LOOPSJMP$END3-9 已知片内 RAM(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H.说明下列指令源操作数的寻址方式,及指令执行的结果MOV A,40H;A=48H直接寻址MOV R0,A;R0=48H 寄存器寻址MOV P1,#0F0H;P1=0F0H 直接寻址MOV R0,30H;(48H)=38H寄存器间接寻址MOV DPTR,#3848H;DPTR=3848H 直接寻址MOV 40H,38H;(40

7、H)=(38H)=40H直接寻址MOV R0,30H;R0=(30H)=38H寄存器寻址MOV P0,R0;P0=38H直接寻址MOV 18H,#30H;(18H)=30H直接寻址MOV A,R0;A=(38H)=40H直接寻址MOV P2,P1;P2=0F0H 直接寻址3-10 设 R0=32H,A=48H,片内 RAM(32H)=80H,(40H)=08H.求指令运行的结果MOV A,R0;A=(32H)=80HMOV R0,40H;(32H)=(40H)=08HMOV 40H,A;(40H)=80HMOV R0,#35H;R0=35H3-11 设 A=83H,R0=17H,片内 RAM(

8、17H)=34H,求指令运行的结果ANL A,#17H;A=03HORL A,17H;(17H)=(37HXRL A,R0;A=37HCPL A;A=C8H3-12 编程实现片内 RAM 20H-2FH 与 30H-3FH 中数据的对换ORG 0100HMOV R0,#20HMOV R1,#40HMOV R2,#0FHLOOP:MOV A,R0MOV R1,AINC R0INC R1DJNZ R2,LOOPMOV R0,#30HMOV R1,#20HMOV R2,#0FHLOOP1:MOV A,R0MOV R1,AINC R0INC R1DJNZ R2,LOOP1MOV R0,#30HMOV

9、R1,#40HMOV R2,#0FHLOOP1:MOV A,R1MOV R0,AINC R0INC R1DJNZ R2,LOOP1SJMP$END3-13 A=34H,(30H)=4FH,ADD A,30H 执行后的结果A=83H,PSW=41H3-14 SP=25H,PC=2345H,(24H)=12H,(25H)=34H,(26)=56H,执行 RET 后 SP=?PC=?SP=23H,PC=3412H3-15 SP=25H,PC=2345H,标号LABEL所在的地址3456H,执行LCALL LABEL后SP=?PC=?,堆栈中的数据有何变化?SP=27H(26H)=48H(27H)=2

10、3HPC=3456H第四章第四章 程序设计基础程序设计基础4-1 片内 RAM 30H 单元开始存放着一组用补码表示的有符号数,数目存于 20H 单元。编程统计出正数,0,负数的数目,分别存到 21H,22H,23H 单元。ORG 0100HMOV 21H,#0MOV 22H,#0MOV 23H,#0MOV R0,#30HLOOP:MOV A,R0CJNE A,#0,PDINC 22HSJMP DONEPD:JB ACC.7,FUINC 21HSJMP DONEFU:INC 23HDONE:INC R0DJNZ 20H,LOOPSJMP$END4-2 片内 RAM 20H-2FH.凡是满足奇偶

11、校验的数据(1 的个数为偶数)的数转存到片外 8000H开始的数据区ORG 0100HMOV R0,#20HMOV DPTR,#8000HMOV R2,#0FHLOOP:MOV A,R0JB PSW.0,DONEMOVX DPTR,AINC DPTRDONE:INC R0DJNZ R2,LOOPSJMP$END4-3 编程,把外部 RAM 1000H-10FFH 的数据传送到 2000H 开始的区域ORG 0100HMOV R3,#10HMOV R4,#20HMOV DPL,#00HMOV R2,#0LOOP:MOV DPH,R3MOVX A,DPTRMOV DPH,R4MOVX DPTR,A

12、INC DPLDJNZ R2,LOOPSJMP$END4-4 片内 RAM 30H 单元开始存放着一组无符号数,其数目在 21H 单元中。编程将其中最小的数存入 21HORG 0100HMOV R0,#30HMOV R2,21HMOV A,30HLOOP:CJNE A,R0,PDSJMP DONEPD:JNC DONEMOV 22H,R0XCH A,22HDONE:INC R0DJNZ R2,LOOPMOV 21H,ASJMP$END4-5 编程实现片内 RAM 30H 单元开始的 16 个数按顺序颠倒过来ORG 0100HMOV R0,#30HMOV R1,#40HMOV R2,#0FHLO

13、OP:MOV A,R0MOV R1,AINC R0INC R1DJNZ R2,LOOPMOV R2,#0FHMOV R0,#40HMOV R1,#3FHLOOP1:MOV A,R0MOV R1,AINC R0DEC R1DJNZ R2,LOOP1SJMP$END4-6 编程实现片内 RAM 30H 单元开始的 16 个数,存有最小数值的所在单元的内容改为0FFHORG 0100HMOV R0,#30HMOV R2,#16MOV A,30HMOV 22H,#0;22H 存放找到的 16 个数中的最小值MOV 23H,#0;存放最小数值的地址放到 23HLOOP:CJNE A,R0,PDSJMP

14、DONEPD:JNC DONEMOV 22H,R0MOV 23H,R0XCH A,22HDONE:INC R0DJNZ R2,LOOPMOV R0,23HMOV R0,#0FFHSJMP$END4-7 编程实现 P1.7=P1.6(P1.5P1.4)ORG 0100HMOV C,P1.5ANL C,/P1.4MOV 20H,CMOV C,P1.4ANL C,/P1.5ORL C,20HANL C,P1.6MOV P1.7,CEND4-8 编程统计片内 RAM 30H 单元开始的 16 个数,有多少数大于 40,小于 80,将结果存入40H 单元中ORG 0100HMOV R0,#30HMOV

15、R2,#16MOV 40H,#0LOOP:MOV A,R0CJNE A,#40,PDSJMP DONEPD:JNC PD2SJMP DONEPD2:CJNE A,#80,PD3SJMP DONEPD3:JC COUNTSJMP DONECOUNT:INC 40HDONE:INC R0DJNZ R2,LOOPSJMP$END第六章第六章 中断系统中断系统6-1 定时器 T0 和 T1 各有几种工作方式?请简述。答:四种。T0T1工作方式最大计数模值初值加载方式最大计数模值初值加载方式方式 0213人工加载213人工加载方式 1216人工加载216人工加载28自动加载28自动加载(常用于串口通信方

16、式 2波 特 率 发 生器)28TH0、TL0 被8 位计数,无分成两个相互中断产生,自独立的 8 位计动加载初值,数器;TL0 既用于不需要中方式 3可做定时器也断的场合可做计数器;TH0 可做内部定时器。人工加载初值6-2 已知单片机系统时钟频率 fosc=12MHz,若要求定时值分别为 0.1ms、1ms、10ms,定时器 T0 工作在方式 0,方式 1 和方式 3 时,定时器对应的初值各为多少?定时时间工作方式 0 初工作方式 1 初工作方式 2 初工作方式 3 初值值值值0.1msFC1CHFF9CH9CH9CH1msE018HFC18H10msD8F0H6-3 定时器/计数器 T0

17、 已预置为 156,工作于方式 2 计数,现 T0 引脚上输入周期为 1ms 的脉冲,问:(1)此时 T0 的实际用途是?(2)在什么情况下,T0 溢出?答:(1)计数器(2)T0 可记录 100 个外部脉冲,即从开始启动工作,经过 100ms开始溢出。6-4 设系统时钟为 6MHz,利用 T0 和 P1.0 产生连续矩形波,高电平宽度为 50us,低电平宽度为 300us。解:因为系统时钟为 6MHz,则一个计数脉冲为 2us,若 T0 工作于方式 1,则 P1.0 输出高电平 T0 需记录 25 个脉冲,计数初值为 216-25=FFE7H,则 P1.0 输出低电平 T0 需记录 150个

18、脉冲,计数初值为 216-150=FF6AH,编程如下ORG 0000HLJMP MAINORG 000BHLJMP T00ORG 0100HMAIN:MOV SP,#60HMOV TMOD,#01HMOV TH0,#0FFHMOV TL0,#0E7HSETB EASETB ET0SETB P1.0SETB TR0SJMP$T00:JNB P1.0,QFMOV TH0,#FFHMOV TL0,#0E7HSJMP DONEQF:MOV TH0,#0FFHMOV TL0,#6AHDONE:CPL P1.0RETIEND6-5 利用定时器来测量单次正脉冲宽度,采用何种方式可获得最大量程?设 f0sc

19、=6MHz,求允许测量的最大脉冲宽度是多少?答:定时器方式 1,最大脉冲宽度为 2us*216=131.072ms6-6 试编制一程序,其功能为:当 P1.2 引脚的电平上跳时,对 P1.1 的输入脉冲进行计数;当 P1.2 引脚的电平下跳时,停止计数,并将计数值写入 R6 与 R7。解:P1.1 接P3.4 引脚,利用 T0做计数器,工作于方式 1,初值为 0(T0未工作于中断方式)ORG 0000HLJMP MAIN;ORG 000BHORG 0100HMAIN:MOV SP,#60HMOV R6,#0MOV R7,#0MOV TMOD,#05HMOV TH0,#0MOV TL0,#0LO

20、OP:JNB P1.2,LOOPSETB TR0LOOP1:JB P1.2,LOOP1CLR TR0MOV R6,TH0MOV R7,TL0SJMP$END6-7 试用中断技术设计一发光二极管 LED 闪烁电路,闪烁周期为 2s,要求亮 1s,再暗 1s。解:设 P1.0 接 1 发光二极管,低电平点亮;利用定时器 T0,工作于定时器方式 2,设系统频率为 fosc=12MHz,则一个定时脉冲为 1us,每次中断定时 250us,则需要 4000 个中断实现 1s的定时利用 R6,R7 做软件计数器,初值分别为 40,100;定时初值 28-250=06HORG 0000HLJMP MAINO

21、RG 000BHLJMP T00ORG 0100HMAIN:MOV SP,#60HMOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HMOV R6,#40MOV R7,#100CLR P1.0SETB EASETB ET0SETB TR0SJMP$T00:DJNZ R6,DONEMOV R6,#40DJNZ R7,DONEMOV R7,#100DONE:CPL P1.0RETIEND6-8 试用中断方法设计秒、分脉冲发生器,即由 8031 的 P1.0 每秒产生一个机器周期的正脉冲,由 P1.1 每分钟产生一个机器周期的正脉冲。解:设系统时钟频率为 12MHz,则一个计数

22、脉冲为 1us,利用 T0 做定时器记录 50ms,计数初值为 216-50000=3CB0H,利用 R6,R7 为软件计数器,初值为 20,60,分别实现 1s和 1 分钟的定时ORG 0000HLJMP MAINORG 000BHLJMP T00ORG 0100HMAIN:MOV SP,#60HMOV TMOD,#01H;T0 定时器,工作方式 1MOV TH0,#3CHMOV TL0,#0B0H;装入 50ms 的初始值MOV R6,#20MOV R7,#60CLR P1.0;P1.0,P1.1 均输出低电平CLR P1.1SETB EASETB ET0SETB TR0;中断允许,开始定

23、时SJMP$T00:DJNZ R6,DONE;R6-1=0,定时 1 秒时间到SETB P1.0;P1.0 输出 1us 的高电平CLR P1.0;P1.0 继续输出低电平MOV R6,#20DJNZ R7,DONE;R7-1=0,定时 1 分钟时间到SETB P1.1;P1.1 输出 1us 的高电平CLR P1.1;P1.1 继续输出低电平MOV R7,#60DONE:MOV TH0,#3CHMOV TL0,#0B0HRETIEND第七章串口工作方式第七章串口工作方式 0 0关于关于 I0I0 接口的扩展接口的扩展7-1 利用 74LS164 并行输出 8 只发光二极管,将二极管从左至右点

24、亮,时间间隔 1S 左右,并循环往复,画出电路原理图,编程实现。(P109)ORG 0100HMOV SCON,#00HMOV A,#80HLOOP:MOV SBUF,AACALL DEL1SRR ASJMP LOOP7-4 利用 MCS-51 系列单片机的串行接口设计键盘输入电路(P111)第九章第九章 模拟量输入输出接口技术模拟量输入输出接口技术9-1 在一个 fosc 为 12MHz 的 8031 单片机系统中,接有一片 DAC0832,它的地址为7FFFH,输出电压为 0-5V,请画出有关逻辑框图并编写程序,使其运行后能在示波器上显示锯齿波(设示波器 X 方向扫描频率为 50us/格,

25、Y 方向扫描频率为 1V/格)。答:ORG 0000HLJMP MAINORG 0100HMAIN:MOV SP,#60HMOV DPTR,#7FFFHLOOP:MOV A,#00HLOOP1:MOVX DPTR,A;2INC A;1CJNE A,#0,LOOP1;2SJMP LOOPEND输出波形为周期是 255us,幅值为 5V 的锯齿波.9-2 在 fosc=12MHz 的系统中,接有 ADC0809,地址为 7FF8H-7FFFH,试画出逻辑框图并编写 ADC0809 的初始化程序和定时取样通道 2 的程序(假设取样频率为 1ms 一次,每次取样 4 个数据,存于 8031 单片机内部

26、 RAM70h-73h 中)。答:P1.0 连接 0809 的 START 端ORG 0000HLJMP MAINORG 0100HMAIN:MOV SP,#60HMOV DPTR,#7FFAHMOV 70H,#0MOV 71H,#0MOV 72H,#0MOV 73H,#0MOV R2,#4MOV R0,#70HLOOP:ACALL DEL_1msLOOP1:SETB P1.0NOPNOPNOPCLR P1.0MOVX A,DPTRMOV R0,AACALL DEL_100usINC R0DJNZ R2,LOOP1MOV R0,#70HMOV R2,#4SJMP LOOPDEL_1ms:MOV

27、 R7,#5;1DEL2:MOV R6,#100;1DEL1:DJNZ R6,DEL1;2DJNZ R7,DEL2;2RETDEL_100us:MOV R5,#5;1DEL21:MOV R4,#10;1DEL11:DJNZ R4,DEL11;2DJNZ R5,DEL21;2RETEND9-3 DAC 0832 与 8031 单片机连接时有哪些控制信号?其作用是什么?P201答:CS,WR1,WR2,XFER。CS,WR1两个引脚,使数据线上的数据送入输入寄存器;当CPU 发出控制信号WR2,XFER时,把输入寄存器中的数据送给 DAC 寄存器,并随即由D/A 转换器进行转换,变成模拟信号输出。

28、9-4 已知 DAC 0832 的地址为 7FFFH,输出电压为 0-5V,编写产生矩形波的转换程序,其波形占空比为 1:4,高电平电压为 2.5V,低电平电压为 1.25V。答:ORG 0000HLJMP MAINORG 0100HMAIN:MOV SP,#60HMOV DPTR,#7FFFHMOV R2,#3LOOP:MOV A,#7FHMOVX DPTR,A;2ACALL DELMOV A,#40HMOVX DPTR,ADELL:ACALL DELDJNZ R2,DELLMOV R2,#3SJMP LOOPDEL:MOV R7,#10;若主频为 12MHz,则波形周期为 400usDEL

29、2:MOV R6,#20DEL1:DJNZ R6,DEL1DJNZ R7,DEL2RETEND9-5已知ADC 0809的地址为 7FF8H-7FFFH。编写每隔100ms轮流采集一次8个通道数据的程序,共取样 10 次,其取样值存入片外 RAM 从 3000H 开始的存储单元中(设 fosc=6MHz)答:P1.0 连接 0809 的 START 端,ORG 0000HLJMP MAINORG 0003HLJMP ZD0ORG 0100HMAIN:MOV SP,#60HMOV R7,#7FHMOV R6,#0F8H;放 0809 0 路地址MOV R4,#00HMOV R5,#30H;将采集

30、的数据放到片外 RAM 3000H 开始的地址MOV R2,#8;记录 8 路MOV R3,#10;记录 10 次MOV 20H,#10;记录延时LOOP:ACALL DEL_100msDJNZ 20H,LOOPMOV 20H,#10LOOP1:MOV DPH,R7MOV DPL,R6SETB P1.0NOPNOPNOPCLR P1.0MOVX A,DPTR;转换 0 路MOV R7,DPHMOV R6,DPLMOV DPH,R5MOV DPL,R4MOVX DPTR,AINC R6INC R4DJNZ R2,LOOP1MOV R2,#8MOV R7,#7FHMOV R6,#0F8HMOV R

31、4,#00HMOV R5,#30HDJNZ R3,LOOPDEL_10ms:MOV 21H,#50;1DEL2:MOV 22H,#50;1DEL1:DJNZ 22H,DEL1;2DJNZ 21H,DEL2;2RETEND9-6 根据图9.30MC14433的选通脉冲时序图回答什么是字位动态扫描BCD码输出方式及如何读取转换结果?第十章第十章10-1 消除键盘抖动的软件方法是什么?答:软件延时 10ms10-3 设计 5*5 的矩阵键盘并叙述其工作原理。10-4 设计一个两位 BCD 码拨盘输入电路,通过 P0 口输入,编写数据读入的程序。10-510-6 应用 74LS164 集成电路,设计 3 位 LED 数码管的静态显示电路,编写显示程序段解:利用 CPU 的串口接 164 的时钟和数据端,即 Rx 接数据口,Tx 接时钟端ORG 0000HLJMP MAINORG 0100HMAIN:MOV SP,#60HLOOP:MOV R0,#30HMOV R2,#3LOOP1:MOV A,R0MOV SBUF,ANOPNOPNOPINC R0DJNZ R2,LOOP1SJMP LOOPEND第九章 模拟量输入输出接口技术第十章 10-6

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

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com