

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及应用技术苏家建课后习题参考答案 第三章 MCS-51 指令系统3-1 MCS-51 指令系统有哪几种寻址方式?按功能分类有哪几种指令?3-2 设 A=0FH,R0=30H,片内 RAM 的(30H) =OAH, (31H) =OBH, (32H) =OCH,下列 程序段运行后的结果?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 单元的内容传送到内部 R
3、AM 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
4、;A=(30H)=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
5、CLOOP: RLC AJC 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 $ENDi03-8 编程,计算2i,并将结果存入内部的 30H 单元10ORG 0100HMOV 30H,#0MOV
6、 31H,#0 ; i 的初值MOV R0,#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
7、;DPTR=3848H 直接寻址MOV 40H,38H ;(40H)=(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)=80
8、HMOV R0,#35H; R0= 35H3-11 设 A=83H,R0=17H,片内 RAM (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:
9、MOV A,R0MOV R1,AINC R0INC R1DJNZ R2,LOOP1MOV R0,#30HMOV 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 所在的地址 345
10、6H,执行 LCALL LABEL 后 SP=PC=,堆栈中的数据有何变化?SP=27H (26H)=48H(27H)=23HPC=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 ,FUINC 21HSJMP DONEFU:INC 23HDONE:
11、INC R0DJNZ 20H,LOOPSJMP $END4-2 片内 RAM 20H-2FH. 凡是满足奇偶校验的数据( 1 的个数为偶数)的数转存到片外8000H 开始的数据区ORG 0100HMOV R0,#20HMOV DPTR,#8000HMOV R2,#0FHLOOP: MOV A,R0JB ,DONEMOVX DPTR,AINC DPTRDONE: INC R0DJNZ R2,LOOPSJMP $END4-3 编程,把外部 RAM 1000H-10FFH 的数据传送到 2000H 开始的区域ORG 0100HMOV R3,#10HMOV R4,#20HMOV DPL,#00HMOV
12、 R2,#0LOOP:MOV DPH,R3MOVX A,DPTRMOV DPH,R4MOVX DPTR,AINC 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 单元开始
13、的 16 个数按顺序颠倒过来ORG 0100HMOV R0,#30HMOV R1,#40HMOV R2,#0FHLOOP: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 存放
14、找到的 16 个数中的最小值MOV 23H,#0 ;存放最小数值的地址放到 23HLOOP: CJNE A,R0,PDSJMP DONEPD:JNC DONEMOV 22H, R0MOV 23H,R0XCH A,22HDONE: INC R0DJNZ R2,LOOPMOV R0,23HMOV R0,#0FFHSJMP $END4-7 编程实现=ORG 0100HMOV C,ANL C,/MOV 20H,CMOV C,ANL C,/ORL C,20HANL C,MOV ,CEND4-8 编程统计片内 RAM 30H 单元开始的 16 个数,有多少数大于 40,小于 80,将结果存 入 40H单元
15、中ORG 0100HMOV R0,#30HMOV 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人工加载方式 126人工加载26人工加载方式 22
16、8自动加载28自动加载(常 用于串口通信 波特率发生 器)方式 328TH0、 TL0 被分成两个相互独立的8位计 数器;TL0 既 可做定时器也 可做计数器;TH0 可做内部定时器。人工 加载初值8 位计数,无 中断产生,自 动加载初值,用于不需要中 断的场合6-2 已知单片机系统时钟频率 fosc=12MHz,若要求定时值分别为、1ms、10ms,定时器 TO 工作在方式 0,方式 1 和方式 3 时,定时器对应的初值各为多少?定时时间工作方式 0 初 值 工作方式 1初 值 工作方式2初 值 工作方式3初 值FC1CHFF9CH9CH9CH1msE018HFC18H10msD8F0H6-
17、3 定时器/计数器 T0 已预置为 156,工作于方式 2 计数,现 T0 引脚上输入周期为 1ms 的脉冲,问:(1) 此时 T0 的实际用途是?(2) 在什么情况下,T0 溢出?答:(1)计数器(2)T0 可记录 100 个外部脉冲,即从开始启动工作,经过 100ms 开始溢出。6-4设系统时钟为6MHz, 利用T0和产生连续矩形波, 高电平宽度为 50us,低电平宽度 为 300uso解:因为系统时钟为 6MHz,则一个计数脉冲为 2us 若 T0 工作于方式 1,则输出高电平 T0 需记录 25 个脉冲,计数初值为 216-25=FFE7H,则输出低电平 T0 需记录 150 个脉 冲
18、,计数初值为216-150=FF6AH,编程如下ORG 0000HLJMP MAINORG 000BHLJMP T00ORG 0100HMAIN:MOV SP,#60HMOV TMOD,#01HMOV TH0,#0FFHMOV TL0,#0E7HSETB EASETB ET0SETBSETB TR0SJMP $T00:JNB ,QFMOV TH0,#FFHMOV TL0,#0E7HSJMP DONEQF: MOV TH0,#0FFHMOV TL0,#6AHDONE:CPLRETIEND6-5 利用定时器来测量单次正脉冲宽度,采用何种方式可获得最大量程?设f0sc=6MHz ,求允许测量的最大脉
19、冲宽度是多少?答:定时器方式 1,最大脉冲宽度为 2us*216=6-6 试编制一程序,其功能为:当引脚的电平上跳时,对的输入脉冲进行计数;当引脚 的电平下跳时,停止计数,并将计数值写入R6 与 R7。解:接引脚,利用 TO 做计数器,工作于方式 1,初值为 0 (TO 未工作于中断方式)ORG 0000HLJMP MAIN;ORG 000BHORG 0100HMAIN:MOV SP,#60HMOV R6,#0MOV R7,#0MOV TMOD,#05HMOV TH0,#0MOV TL0,#0LOOP:JNB ,LOOPSETB TR0LOOP1:JB ,LOOP1CLR TR0MOV R6,
20、TH0MOV R7,TL0SJMP $END6-7 试用中断技术设计一发光二极管 LED 闪烁电路,闪烁周期为 2s,要求亮 1s 再暗 1s。 解:设接 1 发光二极管,低电平点亮;利用定时器 TO,工作于定时器方式 2,设系统频 率为fosc=12MHz,则一个定时脉冲为 1us 每次中断定时 250us 则需要 4000 个中断实现 1s 的定时利用 R6,R7 做软件计数器,初值分别为 40, 100;定时初值 28-250=06HORG 0000HLJMP MAINORG 000BHLJMP T00ORG 0100HMAIN:MOV SP,#60HMOV TMOD,#02HMOV T
21、H0,#06HMOV TL0,#06HMOV R6,#40MOV R7,#100CLRSETB EASETB ET0SETB TR0SJMP $T00:DJNZ R6,DONEMOV R6,#40DJNZ R7,DONEMOV R7,#100DONE:CPLRETIEND6-8 试用中断方法设计秒、分脉冲发生器,即由 8031 的每秒产生一个机器周期的正 脉冲,由每分钟产生一个机器周期的正脉冲。解:设系统时钟频率为 12MHz,则一个计数脉冲为 1us,利用 TO 做定时器记录 50ms, 计数初值为 216-50000=3CB0H,利用 R6,R7 为软件计数器,初值为 20,60,分别实现
22、 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; ,均输出低电平CLRSETB EASETB ET0SETB TR0 ;中断允许,开始定时SJMP $TOO: DJNZ R6,DONE ; R6-1= 0,定时 1 秒时间至 U SETB;输出 1us 的高电平CLR;继续输出低电平MOV R6,#20DJNZ
23、R7,DONE ; R7-仁 0,定时 1 分钟时间到 SETB ;输出 1us 的高电平CLR ;继续输出低电平MOV R7,#60DONE: MOV TH0,#3CHMOV TL0,#0B0HRETIEND第七章串口工作方式 0关于 I0 接口的扩展7-1 利用 74LS164 并行输出 8 只发光二极管,将二极管从左至右点亮,时间间隔1S 左右,并循环往复,画出电路原理图,编程实现。 (P109)ORG 0100HMOV SCON,#00HMOV A,#80HLOOP:MOV SBUF,AACALL DEL1SRR ASJMP LOOP7-4 利用 MCS-51 系列单片机的串行接口设计
24、键盘输入电路 (P111)第九章 模拟量输入输出接口技术9-1 在一个 fosc 为 12MHz 的 8031 单片机系统中,接有一片 DAC0832,它的地址为7FFFH,输出电压为 0-5V,请画出有关逻辑框图并编写程序,使其运行后能在示波器上 显示锯齿波(设示波器 X 方向扫描频率为 50us/格,丫方向扫描频率为 1V/格)。答:ORG 0000HLJMP MAINORG 0100HMAIN:MOV SP,#60HMOV DPTR,#7FFFHLOOP:MOV A,#00HLOOP1:MOVX DPTR,A ;2INC A;1CJNE A,#0,LOOP1;2SJMP LOOPEND输
25、出波形为周期是 255us 幅值为 5V 的锯齿波.9-2 在 fosc=12MHz 的系统中,接有 ADC0809,地址为 7FF8H-7FFFH,试画出逻辑框图 并编写 ADC0809 的初始化程序和定时取样通道 2 的程序(假设取样频率为 1ms 一次,每 次取样 4个数据,存于 8031 单片机内部 RAM70h-73h 中)。答:连接 0809 的 START 端ORG 0000HLJMP MAINORG 0100HMAIN:MOV SP,#60HMOV DPTR,#7FFAHMOV 70H,#0MOV 71H,#0MOV 72H,#0MOV 73H,#0MOV R2,#4MOV R
26、0,#70HLOOP:ACALL DEL_1msLOOP1: SETBNOPNOPNOPCLRMOVX A,DPTRMOV R0,AACALL DEL_100usINC R0DJNZ R2,L OOP1MOV R0,#70HMOV R2,#4SJMP LOOPDEL_1ms:MOV R7,#5;1DEL2:MOV R6,#100;1DEL1:DJNZ R6,DEL1 ;2DJNZ R7,DEL2 ;2RETDEL_100us: MOV R5,#5;1DEL21:MOV R4,#10;1DEL11:DJNZ R4QEL11 ;2DJNZ R5QEL21 ;2RETEND9-3 DAC 0832
27、与 8031 单片机连接时有哪些控制信号?其作用是什么?P201答:CS,WR1,WR2,XFEROCS,WR1两个引脚,使数据线上的数据送入输入寄存器;当CPU 发出控制信号WR2,XFER时,把输入寄存器中的数据送给 DAC 寄存器,并随即由 D/A转换器进行转换,变成模拟信号输出。9-4 已知 DAC 0832 的地址为 7FFFH,输出电压为 0-5V,编写产生矩形波的转换程序, 其波形占空比为 1: 4,高电平电压为,低电平电压为。答:ORG 0000HLJMP MAINORG 0100HMAIN:MOV SP,#60HMOV DPTR,#7FFFHMOV R2,#3LOOP:MOV
28、 A,#7FHMOVX DPTR,A ;2ACALL DELMOV A,#40HMOVX DPTR,ADELL: ACALL DELDJNZ R2,DELLMOV R2,#3SJMP LOOPDEL:MOV R7,#10;若主频为 12MHz,则波形周期为 400usDEL2:MOV R6,#20DEL1:DJNZ R6,DEL1DJNZ R7,DEL2RETEND9-5 已知 ADC 0809 的地址为 7FF8H-7FFFH。编写每隔 100ms 轮流采集一次 8 个通道数据 的程序,共取样 10 次,其取样值存入片外 RAM 从 3000H 开始的存储单元中(设 fosc=6MHz)答:连接 0809 的 START
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心理健康调查问卷汇报
- 湖南省水平考试数学试卷
- 鹤壁高三数学试卷
- 红河州中考二模数学试卷
- 《网络综合布线》教案 项目5任务2 施工前准备
- 镁合金深加工项目可行性研究报告立项申请报告范文
- 中国电磁传感器行业市场深度评估及投资策略咨询报告
- 健康科普教育课件
- 连云港逆变器项目申请报告
- 基于 AI 的精准营销创新商业计划书
- 直流屏培训课件
- 培训课件 -BBF品牌建设模型-
- 新的患者护理模式个性化医疗关怀培训课件
- 安徽省蚌埠二十六中学2022-2023学年七年级上学期入学考试语文试题(学生版)
- 员工身心健康情况排查表
- 基于STC89C52的智能烟雾检测报警系统论文
- 《防暑降温-知识培训》
- wh-ta16ne东芝遥控器说明书
- GB/T 42567.1-2023工业过程测量变送器试验的参比条件和程序第1部分:所有类型变送器的通用程序
- 2023年成都市成华区数学六年级第二学期期末教学质量检测模拟试题含解析
- QC提高土工格栅加筋挡土墙施工质量中铁
评论
0/150
提交评论