51单片机习题答案ppt课件_第1页
51单片机习题答案ppt课件_第2页
51单片机习题答案ppt课件_第3页
51单片机习题答案ppt课件_第4页
51单片机习题答案ppt课件_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

第四章指令系统习题 4 36 1 将R6的高4位和R7的高4位交换 R6 R7的低4位内容保持不变 MOVA R6 A A1A2ANLA 0F0H A A10MOVR3 A R3 A10MOVA R7 A B1B2ANLA 0FH A 0B2ORLA R3 A A1B2MOVR4 A R4 A1B2MOVA R7 A B1B2 第四章指令系统习题 ANLA 0F0H A B10MOVR5 A R5 B10MOVA R6 A A1A2ANLA 0FH A 0A2ORLA R5 A B1A2MOVR6 A R6 B1A2MOVA R4 A A1B2MOVR7 A R7 A1B2 第四章指令系统习题 2 两个无符号数分别存放在30H 31H 试求出它们的和并将结果存放在32H中 MOVA 30HADDA 31HMOV32H AHLT 3 将30H单元的内容循环左移两位 送外部RAM3000H中 MOVA 30HRLARLAMOVDPTR 3000HMOVX DPTR A 第四章指令系统习题 4 将程序存储器1000H的内容取出送外部RAM3000H单元 CLRAMOVDPTR 1000HMOVCA A DPTRMOVDPTR 3000HMOVX DPTR A 第四章指令系统习题 4 37 SP 20H A 67H 1FH 25H 20H 34HPUSHACCPUSH1FH 23H 34HPUSH20H 22H 25HSWAPA 21H 67HMOV1FH A 20H 34HRLA 1FH 25HMOV20H A SP 21HPOPDPL A ECHPOPDPH DPTR 2534HCLR01H 第五章MCS 51汇编语言程序设计 5 4设常数和数据标号的定义为ORG2000HDAT1 DB1 2 3 4 5DAT2 ABCD NEQU DAT2DAT3 DW1200H 2TAB DWDAT1 DAT3 1 画出上述数据或地址的存储形式 2 写出各标号的地址N 2009H 2005H 04H 第五章MCS 51汇编语言程序设计 第五章MCS 51汇编语言程序设计 5 5双字节加法 被加数放在片内RAM30H 高字节 和31H 低字节 单元中 加数放在片内RAM32H 高字节 和33H 低字节 单元中 运算结果存放在30H和31H单元中 进位存放在位寻址区的00H位 START PUSHA 将A内容进栈保护MOVR0 31H 地址指针MOVR1 33HCLR00H 00H位清零MOVA R0 低位字节数相加ADDA R1 第五章MCS 51汇编语言程序设计 MOV R0 ADECR0DECR1MOVA R0 高位字节数相加ADDCA R1MOV R0 AMOV00H CPOPA 第五章MCS 51汇编语言程序设计 5 6编写程序 找出片内RAM30H 5FH单元中无符号数的最大值 并存放在60H单元中 MOVR0 30HMOVB R0 B中存放最大值L0 INCR0MOVA R0CLRCSUBBA B Xi 1 XiJCL1 Xi 1Xi 则交换L1 CJNER0 5FH L0MOV60H BSJMP 第五章MCS 51汇编语言程序设计 5 7从片内RAM30H开始存放20个数 找出其中的最小数 MOVR0 30H 首地址MOVR2 20 20个数MOVB R0 B中存放最小值L0 INCR0MOVA R0CLRCSUBBA B Xi 1 XiJNCL1 Xi 1 XiMOVB R0 Xi 1 Xi 则交换L1 DJNZR2 L0SJMP 第五章MCS 51汇编语言程序设计 5 8编写程序 查找片内RAM31H 50H单元中是否有常数41H 若有则将51H单元置 1 若没有 则将51H单元清0 MOVR0 30H 首地址L0 INCR0CJNE R0 41H NEQEQ MOV51H 0FFH 51H单元置 1SJMPED1NEQ CJNER0 51H L0MOV51H 00HED1 HLT 第五章MCS 51汇编语言程序设计 5 9编写程序 将片内RAM40H 6FH单元中的无符号数按照从小到大的次序排列 结果仍放在原存储空间 MOVR2 2FH 个数LP1 MOVA R2MOVR3 AMOVR0 40H 地址指针指向首地址CLR00H 位地址位操作LP2 MOVA R0MOVB AINCR0CLRCMOVA R0 第五章MCS 51汇编语言程序设计 SUBBA B Xi 1 XiJNCLESS CY 0则转移到LESSMOVA B CY 1Xi 1XiJNB00H STOP 00H 0则转移DJNZR2 LP1STOP RET 第五章MCS 51汇编语言程序设计 5 10编写程序 统计片内RAM20H 5FH中出现55H的次数 并将统计结果送入60H单元 MOVR0 20H 地址指针指向首地址MOV60H 00H 清零L0 MOVA R0 取数CJNEA 55H L1 A 55H 则转到L1INC60H A 55H L1 INCR0 取下一个数CJNER0 60H L0 是否到末地址 HLT 第五章MCS 51汇编语言程序设计 5 11编程将片内RAM30H 7FH单元清零 方法1 控制循环体的执行次数BE1 MOVR0 30HMOVR7 50HLP1 MOV R0 00HINCR0DJNZR7 LP1RET方法2 判断循环体的结束条件BE2 MOVR0 2FHLP2 INCR0MOV R0 00HCJNER0 7FH LP2RET 第五章MCS 51汇编语言程序设计 5 12编程序 将片外RAM3000H 30FFH单元全部清零 MOVDPTR 3000HMOVR0 00HL1 MOVA 00HMOVX DPTR AINCDPTRDJNZR0 L1SJMP 第五章MCS 51汇编语言程序设计 5 13从片内RAMDATA1起 存放20H个数据 编写程序 将这20H个数据逐一移到片外RAMDATA2单元开始的存储空间 MOVR0 DATA1 地址指针指向首地址MOVR7 20H 循环次数MOVDPTR DATA2L1 MOVA R0MOVX DPTR AINCDPTRINCR0DJNZR7 L1SJMP 第五章MCS 51汇编语言程序设计 5 14将片外RAM8000H开始的20个字节数据传送到片外RAM8100H开始的地址单元中 MOVR0 00HMOVR1 00HMOVR2 20HL1 MOVP2 80H 地址指针指向8000HMOVXA R0 输入数据MOVP2 81H 地址指针指向8100HMOVX R1 A 输出数据INCR0INCR1DJNZR2 L1HLT 第五章MCS 51汇编语言程序设计 5 15编程统计累加器A中 1 的个数 MOVR2 07H 循环次数MOVR3 00H 存放 1 的个数LP1 RLCAJNCLP2 C 0INCR3 C 1LP2 DJNZR2 LP1HLT 第五章MCS 51汇编语言程序设计 5 16从片内30H开始 存放50个数据 编写程序 将其中正数 负数分别送入片外RAM5000H和5500H开始的单元 分别记下正数和负数的个数并送入片内RAM70H和71H单元 MOVR0 30H 片内RAM首地址MOVR1 00H 清零MOVR2 50 数据的个数MOVR3 00H R3存放正数个数清零MOVR4 00H R4存放负数个数清零T1 MOVA R0 取数INCR0 指针指向下一个单元CLRCSUBBA 00HJCT2 有借位 Xi0 第五章MCS 51汇编语言程序设计 MOVP2 50H 片外正数首地址MOVR1 R3 5000HDECR1MOVX R1 A 输出数据JMPT0 比较一个数结束T2 INCR4 Xi 0MOVR1 R4DECR1 片外负数首地址MOVP2 55H 5500HMOVX R1 A 输出数据T0 DJNZR2 T1MOV70H R3 正数的个数MOV71H R4 负数的个数HLT 第五章MCS 51汇编语言程序设计 5 19编写程序 将30H 34H单元中压缩的BCD码转换为ASCII码 并将结果存放在片内RAM60H 69H单元中 MOVR0 30HMOVR1 60HT1 MOVA R0MOVB AINCR0T2 ANLA 0FHADDA 30HMOV R1 AINCR1MOVA B 第五章MCS 51汇编语言程序设计 SWAPAANLA 0FHADDA 30HMOV R1 AINCR1CJNER0 35H T1HLT 第五章MCS 51汇编语言程序设计 5 20将片内RAM30H单元的内容转换成三位BCD码 并将结果存入片外RAM1000H开始的单元 解 将BCD码先放入31H 百位 32H 十位 33H 个位 单元中 方法一 先得到百位BD1 MOVA 30HMOVB 100DIVABMOV31H AMOVA B 第五章MCS 51汇编语言程序设计 MOVB 10DIVABMOV32H AMOV33H B方法二 先得到个位BD2 MOVA 30HMOVB 10DIVABMOV33H BMOVB 10DIVAB 第五章MCS 51汇编语言程序设计 MOV32H BMOV31H A将结果存入片外RAM1000H开始的单元MOVR0 30HMOVDPTR 1000HLP INCR0MOVA R0MOVX DPTR AINCDPTRCJNER0 33H LPRET 第七章定时器 计数器 7 14设MCS 51单片机晶振频率为12MHz 使用定时器1的工作方式1 在P1 0端输出周期为100ms的方波 使用中断方式设计程序 写出相应的是初始化程序和中断服务程序 分析 晶振频率fosc 12MHz 计数周期 1 s周期100ms的方波 中断周期T1 100ms 2 50ms初值N 65536 T1 12MHz 12 15536 3CB0HORG0000HAJMPMAINORG001BH T1的中断入口地址AJMPT1 INT T1的中断服务程序 第七章定时器 计数器 ORG0100HMAIN MOVSP 60H 设置堆栈MOVTMOD 10H 送模式字MOVTH1 3CH 初值的高8位MOVTL1 0B0H 初值的低8位SETBET1 ET1 1允许T1中断SETBEA 开中断 中断总允许SETBTR1 TR1 1启动T1工作HERE SJMPHERE 等待T1 INT MOVTH1 3CH 中断服务程序MOVTL1 0B0HCPLP1 0 P1 0取反形成方波RETIEND 第七章定时器 计数器 7 15对上题 在P1 0端输出周期为100ms方波的同时 还要在P1 1端输出周期为10s方波 写出相应的初始化程序和中断服务程序 分析 晶振频率fosc 12MHz 计数周期 1 s周期100ms方波 中断周期T1 100ms 2 50ms采用软件延时方法 在P1 1端输出周期为10s的方波 延时次数 5s 50ms 100ORG0000HAJMPMAINORG001BH T1的中断入口地址AJMPT1 INT T1的中断服务程序 第七章定时器 计数器 ORG0100HMAIN MOVSP 60H 设置堆栈MOVTMOD 10H 送模式字MOVTH1 3CH 送初值的高8位MOVTL1 0B0H 送初值的低8位MOVR2 100SETBET1 ET1 1允许T1中断SETBEA 开中断 中断总允许SETBTR1 TR1 1启动T1工作HERE SJMPHERE 等待COUNTT1 INT MOVTH1 3CH 中断服务程序MOVTL1 0B0H 第七章定时器 计数器 CPLP1 0 P1 0取反形成方波DJNZR2 LPMOVR2 100CPLP1 1 P1 1取反形成方波LP RETIEND 第七章定时器 计数器 7 16使用计数器0 记录T0引脚输入脉冲数 计满200个脉冲 则对内部RAM单元COUNT进行加1操作 使用中断方式设计程序 试写出中断初始化程序和中断服务程序 T CONSTEQU10000H 200ORG0000HAJMPMAINORG000BH T0的中断入口地址AJMPT0 INT T0的中断服务程

温馨提示

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

评论

0/150

提交评论