单片机课后作业答案.ppt_第1页
单片机课后作业答案.ppt_第2页
单片机课后作业答案.ppt_第3页
单片机课后作业答案.ppt_第4页
单片机课后作业答案.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

作业0 1 试画出与 或 非三种位逻辑运算真值表 A B A B A 2 试分别分析 按键电平复位电路 在上电和按下按键两种状况下 如何实现在RST引脚上产生高电平复位脉冲的 只需要定性分析工作原理 3 假设某MCS 51单片机系统外接晶体为11 0592MHz 1 试计算该单片机的状态周期 状态周期频率 机器周期 机器周期频率 地址锁存信号ALE的频率 2 已知乘法指令MULAB需要4个机器周期 加法指令ADDA Rn需要1个机器周期 试计算单片机执行上述两条指令分别需要多长时间 1 状态周期 1 11 0592MHz 2 0 18uS频率 11 0592MHz 2 5 5296MHz机器周期 1 11 0592MHz 12 1 085uS频率 11 0592MHz 12 0 9216MHzALE频率 11 0592MHz 6 1 8432MHz 2 MUL 1 085 4 4 34uSADD 1 085uS 存在计算精度问题 4 设 20H 25H 25H 10H P1 CAH执行下列程序 MOVR0 20HMOVA R0MOVR1 AMOVB R1MOV R1 P1MOVP2 P1执行结果为 A 25H R1 25 B 10H 20H 25H 25H CAH P2 CAH 作业1 8 ADDA 30H A AAH CY 0 9 ADDCA 30H A 20H CY 1 10 SUBBA 30H A D4H CY 1 11 SUBBA 30H A 49 CY 0 2 假定A 85H R0 20H 20H 0AFH 执行指令 ADDA R0 后 累加器A的内容为 34H CY的内容为 1 AC的内容为 1 4 编写程序 将内部数据存储器30H 35H单元的数据传送到外部数据存储器的2003H 2008H单元 MOVR0 30H 指针首地址MOVDPTR 2003H 指针首地址MOVR1 06H 字节个数LOOP MOVA R0 取数据MOVX DPTR A 保存数据INCR0 指针加1INCDPTR 指针加1DJNZR1 LOOP 判断是否传送完SJMP 5 编写程序 将片内RAM60H单元与61H单元的数据交换 MOVA 60HMOV60H 61HMOV61H A 6 如何将累加器A中的数据高4位保持不变 低4位位置1 ORLA 0FH7 如何将寄存器R2中的数据奇数位清0 偶数位不变 MOVA R2ANLA 55HMOVR2 A 作业2 4 注释下列程序各语句 并说明该程序功能 MOVR0 36H 立即数 36H送R0MOVA R0 取36H单元中的数送累加器AANLA 0FH 累加器A中数与立即数 0FH相与SWAPA 累加器A中的高低四位交换MOVB A 累加器A中数送寄存器BINCR0 R0加1MOVA R0 取37H单元中的数送累加器AANLA 0FH 累加器A中数与立即数 0FH相与ORLA B 累加器A与寄存器B相或INCR0 R0加1MOVX R0 A 累加器A中的数写入38H单元该段程序实现字节合并 将36H单元与37H单元中的低4位合并成一个字节 结果存入38H单元中 5 试编写一拆字子程序 将累加器A中的高 低四位分开 分别对应放到31H单元 30H单元的低四位中 并将31H单元 30H单元的高四位全部补0 MOVR0 30H 设指针MOVR2 A 暂存ANLA 0FH 高半字节清0MOV R0 A 保存数据低位INCR0MOVA R2SWAPA ANLA 0FHMOV R0 A 保存数据高位RET 6 试编写一拼字子程序 将外部RAM中3001H单元 3000H单元的低四位组成一个新的字节 存储到内部数据存储器32H单元中 MOVDPTR 3001H 指针指向3001H单元MOVXA DPTR 读取36H单元内的数据ANLA 0FH 屏蔽高四位 保留低四位SWAPA 交换到高4位中MOVB A 暂存到寄存器B中DECDPL 指针指向3000H单元MOVXA DPTR 读取3000H单元内的数据ANLA 0FH 屏蔽高四位 保留低四位ORLA B 与寄存器B中数据相或MOV32H A 新字节保存到32H单元中 作业3 1 利用堆栈操作 将片内RAM60H单元与61H单元的数据交换 PUSH60HPUSH61HPOP60HPOP61H MOVR0 40HMOVR1 50HMOVR2 04H 05H CLRCLOOP MOVA R0ADDCA R1INCR0INCR1DJNZR2 LOOPMOV20H 00HMOV00H CMOV54H 20HRET 2 假设有两个4字节的二进制数 分别存放在40H和50H为起始地址的连续单元中 低位放在低地址中 编写子程序 求这两个数的和 结果存放在以50H为起始地址的连续5个单元中 3 设变量x是无符号的数 并放在寄存器R2中 函数y与x有如下关系式 请编写子程序计算y 其结果存入寄存器R5中 CJNER2 128 NEQMOVR5 10H X 128SJMPOVERNEQ JCNEQ1MOVA R2 X 128SUBBA 100MOVR5 ASJMPOVERNEQ1 MOVA R2 X 128ADDA 5MOVR5 AOVER RET 4 手工编译下述程序段 12 地址机器码ORG0030HMOVTMOD 03HMOVTL1 83HMOVTH1 4CHSETBTR1SETBET1SETBEA ORG0200HD2S MOVR7 10D2S1 MOVR6 200D2S2 MOVR5 249D2S3 NOPNOPDJNZR5 D2S3NOPDJNZR6 D2S2DJNZR7 D2S1RET ORG0100HD200MS MOVR7 200D200MS1 MOVR6 250D200MS2 NOPNOPDJNZR6 D200MS2DJNZR7 D200MS1RET 6 利用第五题的延时子程序 编写一个主程序 要求在P1 0口上连续输出周期为2 2S的方波信号 其中高电平宽度为2S 低电平宽度为200mS 该题为下次实验内容 ORG0000HLJMP0030HORG0030HLOOP SETBP1 0LCALLD2SCLRP1 0LCALLD200MSSJMPLOOP 定时器作业 1已知单片机晶振频率为12MHz 采用查询方式编写程序 使用T0以工作方式1产生周期为40ms的等宽方波连续脉冲 并由P1 5口输出 ORG0000HLJMP0030HORG0030HMOVTMOD 01H T0工作方式1MOVTH0 0B1H T1定时250us初值MOVTL0 0E0HSETBTR0 打开定时器T1LP JNBTF0 判断T1是否溢出CLRTF0 清溢出标志位MOVTH0 0B1H 重新赋定时初值MOVTL0 0E0HCPLP1 5 P1 5口输出状态取反SJMPLP 2已知单片机晶振频率为12MHz 采用查询方式编写程序 使用T0以工作方式1产生周期为4s的等宽方波连续脉冲 并由P1 4口输出 ORG0000HLJMP0030HORG0030HMOVTMOD 01H T0工作方式1MOVTH0 3CH T0定时50ms初值MOVTL0 0B0HMOVR0 40 定时次数SETBTR0 启动定时器LP JNBTF0 判断T0是否溢出CLRTF0 清溢出标志MOVTH0 3CH 重赋初值MOVTH0 0B0HDJNZR0 LP 判断溢出次数是否达到40次CPLP1 4 P1 4口输出状态取反MOVR0 40 重置定时次数SJMPLP 3已知单片机晶振频率为12MHz 采用查询方式编写程序 使用T1以工作方式2产生周期为400us 占空比为50 的连续方波 并由P1 3口输出 ORG0000HLJMP0030HORG0030HMOVTMOD 20H T1工作方式2MOVTL1 38H C8H T0定时100ms初值MOVTH1 38H C8H 初值预置寄存器SETBTR1 启动定时器LP JNBTF1 判断T1是否溢出CLRTF1 清溢出标志CPLP1 3SJMPLP 4已知单片机晶振频率为11 0592MHz T1工作于方式2 为了让T1每秒溢出1200次 试计算T1的定时初值 如果要求每秒溢出2400次 4800次 9600次 T1的初值又该分别是多少 9600 X 160 A0H因此 TL1初值为A0H 4800 X 64 40H因此 TL1初值为40H 1200和2400需要软件级连 ORG0000HLJMPMAINORG000BHLJMP0100HORG0030HMAIN MOVSP 6FHMOVR0 20MOVTMOD 01HMOVTL0 0B0HMOVTH0 3CHSETBTR0SETBET0SETBEASJMP ORG0100HLOOP MOVTL0 0B0HMOVTH0 3CHDJNZR0 LOOPMOVR0 20CPLP1 0LOOP RETI 1 以定时器中断的方法 在P1 0口产生周期为2S的方波 方波占空比为50 设单片机的外接晶振频率为12MHz 要求写清楚注释 在PC出现跳变时必须在注释中说明 中断作业 2 如何设定外部中断源是采用边沿触发还是采用电平触发 这两种中断触发所产生的中断响应过程有何不同 3 MCS51单片机有几个中断源 各中断标志位是如何产生的 哪些标志位在响应中断服务程序是会自动清零 哪些需要软件清零 CPU响应中断请求时 中断服务程序的入口地址分别是多少 4 MCS51单片机的中断系统有几个优先级 如何设定 1 已知单片机晶体频率为12MHz SMOD为0 串口工作方式1 波特率为1200bps 1 试求定时器T1的初值 2 求实际波特率的误差率 串行接口作业 2 实际波特率 1 初值 波特率误差率 1201 92 1200 1201 92 0 16 2 假设8031单片机的晶振频率为6MHz SMOD 0 定时器T1初值为 0FDH 试计算串行工作方式1的波特率 波特率误差率 1201 92 1200 1200 0 17 3 按照例7 3中的程序 分别写出甲 乙两台计算机的程序流程图 或者将程序改由中断方式实现 例7 3设有甲 乙两台单片机 编出两台单片机间实现如下串行通讯功能的程序 要求串口工作方式1 波特率为9600bps 单片机外接晶振为11 0592MHz 甲方发送 将首址为2000H的32个字节的外部数据存储器数据块顺序向乙方发送 乙方接收 将接收的32个字节的数据 顺序存放在以首址为40H的内部数据存储器中 JNBTI 判断定时器是否溢出JNBRI 判断定时器是否溢出 发送程序ORG0000HLJMPMAINORG0023HLJMPSINTORG0030HMAIN MOVSCON 01000000BMOVPCON 00HMOVTMOD 20HMOVTH1 0FDHMOVTL1 0FDHSETBTR1SETBEASETBESMOVDPTR 2000HMOVR1 20HMOVXA DPTRSJMP SINT CLRTIINCDPTRDJNZR1 SINT1SINT2 RETISINT1 MOVXA DPTRMOVSBUF ASJMPSINT2 接收程序ORG0000HLJMPMAINORG0023HLJMPSINTORG0030HMAIN MOVSCON 01010000BMOVPCON 00HMOVTMOD 20HMOVTH1 0FDHMOVTL1 0FDHSETBTR1SETBEASETBESMOVR0 40HMOVR1 20HSJMP SINT CLRRIMOVA SBUFMOV R0 AINCR0DJNZR1 RETI 4 甲乙两台单片机相距约10米左右 拟采用串口方式1通讯 并用RS 232C电平进行双机通讯 已知两台单片机的晶体频率都是6MHz 约定通讯波特率为1200bps 1 编制两机各自的程序 实现把甲机内部存储器53H 67H内的数据传送到乙机的相应片内存储器中 2 画出两台单片机通讯接口的连接图 发送程序ORG0000HLJMPMAIN 转主程序ORG0030HMAIN MOVSCON 01000000B 置串行口工作方式1 禁止接收MOVPCON 00H SMOD 0 能否用CLRSMODMOVTMOD 20H 定时器1为工作方式2MOVTH1 0F3H 产生9600波特率的时间常数MOVTL1 0F3HSETBTR1 启动定时器1MOVR0 53H 首地址MOVR1 21 0EH 传送字节数初值LOOP MOVA R0 取一个字节待发送MOVSBUF A 启动串行口发送命令JNBTI 等待当前字节发送完CLRTI 软件清标志位INCR0 地址指针加1DJNZR1 LOOP 判断是否发送完毕SJMP 接收程序ORG0000HLJMPMAIN 转主程序ORG0030HMAIN MOVSCON 01010000B 置串行口工作方式1 允许接收MOVPCON 00H SMOD 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论