单片机基础第三版课后习题答案_第1页
单片机基础第三版课后习题答案_第2页
单片机基础第三版课后习题答案_第3页
单片机基础第三版课后习题答案_第4页
单片机基础第三版课后习题答案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章:1. 填空1. 1110 0EH 10011100 011001002. 43. 255-514.输入设备5. 846. 630*8*10247.位btype字8. 1111 1111 00100100 110110119. 110 89 -115 -50二、单选:DBCAB BBCB第二章:1. 填空1. 个人电脑2.逆变晶振的两个电容短路3. 上电手册 0000H 07H No. 0 00H 07H4. 6 2 1 125. DPTR DPH DPL6. 64KB多项选择DCCAC A D第三章:1. 填空:1. 10312. 34小时 1 1 13.略4. 1100H5. 26.

2、 30H 71H0A5H0A5H75H0A7H0AAH 0 1中频 1 10AAH 0 120小时 1 00D5H 1 149小时 0 0 二、多选CCBDCA3.其他类型的问题对错错错错对还是错对错确切地错对对错对错错误或正确(3) 其他题型3 .编写一个程序,将1 写入 RAM20H - 23H单元的高 4 位,将0写入低4位。分析:就是将这四个单元写入F0H 。使用DJNZ循环。组织机构 0000HMOV R0,#1FH ;R0指向20H单位MOV R5,#04H;四个数字循环:INC R0MOV R0,#0F0H ;写DJNZ R5,循环;循环4次结尾 4 .将这两个BCD数分别存储在

3、m和m +1个单元中,合并成m个单元,完成编程。 (设置m=30H,高位30H ,低位31H)组织机构 0000HMOV A, 30HANL A, #0FH ;将其高四位清零交换一个移动 30H ,A ;调整高低四位放回原位MOV A, 31HANL A,#0FHORL A,30H ;结合MOV 30H,A结尾5.从部分 RAM 中的数据单元开始,将10 个无符号数相加,相加大于和单元,假设相加结果小于255 。完成编程。(设定数据=30H,太阳=50H) 组织机构 0000H移动 R0,#2FH ;指向上一个单元MOV R5, #0AH ;循环10次CLR 一个;先加A循环:INC R0添加

4、一个,R0DJNZ R5,循环MOV 50H,A结尾 6 .假设R0中有丰富的8位二进制有符号数,则需要编写补码程序,将得到的补码输入R1 。 组织机构 0000HMOV A, R0民事诉讼法;按位否定添加一个,#01H ; +1MOV R1,A结尾第四回:1. 填空1.25小时40小时03H2 . 2.914 毫秒3.略4 . ( A ) =(30H) (A) (30H) (A) (30H) (A) (30H)5. 32.87ms编程问题1、将长度为10H的字符串从内部RAM的输入缓冲区inbuf传输到外部RAM的输出缓冲区outbuf,直到遇到回车或整个字符串传输完毕。尝试编程。 ORG

5、0030H MOV R0,#inbuf MOV R1,#outbuf MOV R4,#10H 循环:MOV A,R0 ;从 RAM 中获取 CJNE A,#0DH,LL ;是否为回车符 CR SJMP 停止 ;是停止传输 LL: MOVX R1,A ;如果没有,转移到外部 RAM INC R0 INC R1 DJNZ R4,LL;如果未传输则循环 停止:SJMP $2、RAM存储一个从列表单元开始的正数表,表中的数字无序排列,结束标记为“-1”。编程实现在表中找到最小的数字。 (3AH是运行程序中存储的最小数字) ORG 0030H MO V R0,#list MOV A, R0 ;取第一个正

6、数 循环:INC R0 ; 指向下一个正数MOV 3AH, R0 CJNE A,3AH,CHK ;比较前一个数字和下一个数字 CHK:JC 循环 1 ;如果前一个数字很小,则转移到MOV A,R0 ;前一个数大,取后一个数LOOP1: XCH A,3AH CJ NE A,#0FFH,LOOP XCH A ,3AH ;取最低MOV 3BH,A SJMP$3. RAM 的 X 和 Y 单元中的每一个都存储有符号数。尝试按下列条件编程实现运算,并将结果存入 Z 单元。若 X 为正奇数,则 Z = X + Y;若 X 为正偶数,则 Z = XY;若 X 为负奇数,则 Z = XY;如果 X 是负偶数,

7、则 Z = XY。分析:负数:1在第7位,正数:0在第7位奇数:第 0 位为 1,偶数:第 0 位为 0组织机构 0000HMOV A, 20HCLR CRL一JC FS ;移动到负数进行处理RR ARR一个;第 0 次移到 C 再判断是否为 1JC ZJS ;为正奇数MOV A, 20H奥尔一,21HMOV 22H,ASJMP 确定ZJS:MOV A,20H添加 A,21 小时MOV 22H,ASJMP 确定FS:MOV A,20HCLR CRR AJC FJS ;位 0 为 1,移动到正奇数处理MOV A, 20H高铁 A,21HMOV 22H,ASJMP 确定FJS:MOV A,20H安

8、乐 A,21 小时MOV 22H,A好的:结束4、用ASCII码表示一个8位二进制数的每一位(即“0”位用30H表示,“1”位用31H表示)。该数字以字节为单位存储在部分 RAM 中。转换后得到的 8 个 ASCII 码存放在外部 RAM 中以 buf 开头的存储单元中。 ORG 0030H MOV R0,#byte MOV DPTR,#buf MOV R5,#08H MOV A,R0 循环:RLC A MOV R7,A JC LOOP1 MOV A,#30H SJMP 循环 2 循环 1:移动 A,#31H LOOP2: MOVX DPTR,A MOV A,R7 INC DPTR DJNZ

9、R5,LOOP5.编程实现运算公式c = a 2 +b 2假设a、b、c三个数分别存放在RAM的DA、DB、DC单元中,没有平方操作子程序调用。( RAM的DA、DB、DC单元设置为20H 21H 22H ) 组织机构 0000HMOV A, 20H推加速AJMP SQR流行音乐节MOV 22H,AMOV A, 21H推加速AJMP SQR流行音乐节添加 A,22 小时MOV 22H,A结尾6.比较两个 ASCII 字符串是否相等。字符串的长度以RAM 41H为单位,第一个字符串的首地址为42H,第二个字符串的首地址为52H。如果两个字符串相等,则将部分RAM的40H单元设置为00H;否则,将

10、 40H 单位设置为 FF。 组织机构 0030H MOV R0,#42H MOV R1,#52H MOV R7,41H ;字符串长度 循环:MOV A,R0 MOV 30H, R1 CJNE A,30H,LK INC R0 INC R1 DJNZ R7,LOOP MOV 40H ,# 00H SJMP DD LK:移动 40H,#0FFH DD:SJMP DD7. 数据表中有 10 个字节的数据,以外部 RAM 的首地址为表。编程无条件地将每个字节的 MSB 设置为“1”。 组织机构 0030H 移动 DPTR,#table MOV R6,#10 循环:MOVX A,DPTR SETB E7

11、H ; E7H 为累加器 A(ACC.7)的最高位,或:SETB ACC.7 MOVX DPTR,A INC DPTR DJNZ R6,循环第五章1. 填空各种任务INT0 T0 INT1 T1 串口电脑 电脑 ROM中断源查询状态1000000 1000000/65536 = 15.26100 毫秒111 101T1 2 0FFH 001BH二、多选:DCAADCDMCU基础知识第5章练习教材5. .1 将单片机的晶振频率设置为6MHZ,使用定时器1在模式0下产生500us等宽的方波连续脉冲,通过P1.0输出。分析:利用P1.0输出脉冲,可以产生一个250us的定时器。当时间到时,可以执行

12、CPL P1.0。所以问题变成了生成时间。解决方法:(1)计算定时器的初值:(2 13 -X) * T机器= T时序代入数据得到:X = 8067由于模式0(高8位,低5位)的特性,计算TH1,TL1得到 TH1 = 0FCH TL1 = 03H计算 TMOD 的初始值:TMOD = 00H编程实现:方法一:使用查询法。程序不断查询TF1的值。如果定时器溢出(TF1=1),则 CPL P1.0所以: MOV TMOD ,#00HMOV TH1,#0FCHMOV TL1,#03H移动IE,#00H;没有中断方法,关闭SETB TR1 ;启动计时器循环:JBC TF1、LOOP1AJMP 循环LO

13、OP1: 移动 TH1,#0FCHMOV TL1,#03HCPL P1.0AJMP 循环方法二:使用中断法。待确定的寄存器:TMOD = 00HIE = 88H TCON = 40H(或 SETB TR1)T1 的中断向量 = 001BH程序如下:组织机构 0000HAJMP 主ORG 001BHAJMP T1定时器主:MOV TMOD,#00HMOV TCON,#40HMOV IE,#88HMOV TCON ,#40HMOV TH1,#0FCHMOV TL1,#03HAJMP在这里T1_TIMER: 移动 TH1,#0FCHMOV TL1,#03HCPL P1.0视网膜病变注意:定时器的计时或计数不会影响 CPU 的工作。定时模式1:与模式0没有太大区别,只是定时器是16位的。所以时间 = (2 x 初始值)T机模式 2:自动分配 8 位初始值的定时器/计数器解决方法是一样的:计算 T 的初始值 (2) TMOD = ?编程方法三:T0:TL0 8位,可用于计时或计数,使用方法与模式0相同。TH0: 8位,只能用于计时,借用为TR1 TF1T1:无中断,只能产生连续脉冲,-全波特率可用模式 0、1、2。如果要停止脉冲,必须强制设置模式 3第六章1. 填空1. 8 16 13 22、高电平、低电平、高阻3. 256 数据 4K

温馨提示

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

评论

0/150

提交评论