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

下载本文档

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

文档简介

1、单片机基础课后答案第一章 一、填空题 1 1110 0eh 10011100 01100100 2 4 3. 255 -51 4. 输入设备 5. 84 6. 630 * 8 * 1024 7. 位 字节 字 bit btype word 8. 1111 1111 00100100 11011011 9. 110 89 -115 -50 二、单选: dbcab bbcb 第二章一、填空 1 pc pc 2 反向器 晶振 两只电容 短 3 加电 手动 0000h 07h 第 0 00h 07h 4 6 2 1 12 5 dptr dph dpl 6 64kb 单选题 dccac ad 第三章一、

2、填空题: 1 1031 2 34h 1 1 1 3 略 4 1100h 5 2 6 30h 71h 0a5h 0a5h 75h 0a7h 0aah 0 1 ifh 1 1 0aah 0 1 20h 1 0 0d5h 1 1 49h 0 0 二、单选题 ccbdca 三、其它类型题 错 错 对 错 错 错 对 错 错 错 错 对 对 对 对 错 对 对 错 对 错 错 对 (三)其它类型题 3编写程序将ram20h23h 单元的高4 位写 1,低4 位写 0。 分析:就是把这四个单元写入f0h。用一个djnz 的循环。 org 0000h mov r0,#1fh ;r0 指向20h 单元 mov

3、 r5,#04h; 四个数 loop: inc r0 mov r0,#0f0h ; 写入 djnz r5,loop ; 循环 4 次 end 4把m 和m+1 单元存有两个bcd 数,将它们合并到m 单元中,编写程序完成。 (设m=30h, 高位在30h,低数在31h) org 0000h mov a,30h anl a,#0fh ;把它的高四位清零 swap a mov 30h ,a ;高低四位调一下,放回原处 mov a,31h anl a,#0fh orl a,30h ;合并起来 mov 30h,a end 5.将内部ram 中从data 单元开始的 10 个无符号数相加,其和送 sum

4、 单元多,假定相加结果小于255。编写程序完成。 (设data=30h, sun =50h) org 0000h mov r0,#2fh ; 指向前一个单元 mov r5,#0ah ;循环 10 次 clr a ;先加到 a 中 loop: inc r0 add a,r0 djnz r5,loop mov 50h,a end 6假定8 位二进制带符号数丰于r0 中,要求编写一个求补程序,所得补码入入r1 中。 org 0000h mov a,r0 cpl a ;按位取反 add a,#01h ;1 mov r1,a end 第四章一、填空题 1. 25h 40h 03h 22.914ms 3.

5、略 4(a ) =(30h) (a) (30h) (a) (30h) (a) (30h) 5. 32.87ms 编程题 1把长度为10h 的字符串从内部ram 的输入缓冲区inbuf 向位物外部ram 的输出缓冲区outbuf 传送,一直进行到遇见回车或整个字符串传送 完毕。试编程实现。 org 0030h mov r0,#inbuf mov r1,#outbuf mov r4,#10h loop:mov a,r0 ; 从内部 ram取数 cjne a,#0dh,ll ;是否为回车符 cr sjmp stop ;是转停止传送 ll: movx r1,a ;不是则传送到外部 ram inc r0

6、 inc r1 djnz r4,ll;沒传送完则循环 stop: sjmp $ 2、内部 ram从 list 单元开始存放一正数表,表中之数作无序排列,并以“-1”作结束标志。编程实现在表中找出最小数。 (3ah存放在运行程序时的最小的数) org 0030h mov r0,#list mov a,r0 ;取第一个正数 loop: inc r0 ;指向下一个正数 mov 3ah,r0 cjne a,3ah,chk ;前一个数与后一个数比较 chk: jc loop1 ;前一个数小,则转 mov a,r0 ;前一个数大,取后一个数 loop1: xch a,3ah cjne a,#0ffh,lo

7、op xch a,3ah ;取最小数 mov 3bh,a sjmp $ 3.内部ram的 x,y 单元中各存放一个带符号的数,试编程实现按如下条件进行的运算,并将结果存入 z 单元中。 若 x 为正奇数,z xy; 若 x 为正偶数,z xy; 若 x 为负奇数,z xy; 若 x 为负偶数,z xy。 分析:负数:第 7位为 1,正数:第 7 位为0 奇数:第 0位为 1,偶数:第 0 位为0 org 0000h mov a,20h clr c rl a jc fs ;移到负数处处理 rr a rr a ;第0 位移到 c 再判定一下是不是 1 jc zjs ;到正奇数处 mov a,20h

8、 orl a,21h mov 22h,a sjmp ok zjs: mov a,20h add a,21h mov 22h,a sjmp ok fs: mov a,20h clr c rr a jc fjs ;第0位是 1,移到正 奇数处理 mov a,20h xrl a,21h mov 22h,a sjmp ok fjs: mov a,20h anl a,21h mov 22h,a ok: end 4、把一个 8 位二进制数的各位用 ascii 码表示之(亦即为“0”的位用 30h 表示,为“1”的位用 31h 表示)。该数存放在内部 ram 中 byte 单元中。变换后得到的 8 个asc

9、ii 码存放在外部 ram以 buf 始的存储单元中去。 org 0030h mov r0,#byte mov dptr,#buf mov r5,#08h mov a,r0 loop: rlc a mov r7,a jc loop1 mov a,#30h sjmp loop2 loop1: mov a,#31h loop2: movx dptr,a mov a,r7 inc dptr djnz r5,loop 5.编程实现运算式c = a2 +b2 假定a、 b、 c 3 个数分别存放在内部ram的da、db、dc单元中,别有平方运算子程序调用。 (内部 ram的 da、db、dc 单元设为2

10、0h 21h 22h) org 0000h mov a,20h push acc ajmp sqr pop acc mov 22h,a mov a,21h push acc ajmp sqr pop acc add a,22h mov 22h,a end 6、比较两个ascii 码字符串是否相等。字符串的长度在内部 ram 41h 单元,第一个字符串的首地址为 42h,第二个字符串的首地址为 52h。如 果两个字符串相等,则置内部 ram 40h 单元为 00h;否则置 40h 单元为ff。 org 0030h mov r0,#42h mov r1,#52h mov r7,41h ;字符串长度

11、 loop: mov a,r0 mov 30h,r1 cjne a,30h,lk inc r0 inc r1 djnz r7,loop mov 40h ,#00h sjmp dd lk: mov 40h,#0ffh dd: sjmp dd 7.外部ram首址为 table 的数据表中,有 10 个字节的数据。编程将每个字节的最高位无条件地置“1”。 org 0030h mov dptr,#table mov r6,#10 loop:movx a,dptr setb e7h; e7h 就是累加器 a 的最高位(acc.7), 也可 : setb acc.7 movx dptr,a inc dpt

12、r djnz r6,loop 第五章一、填空题 1 各项任务 2 int0 t0 int1 t1 串口 3 pc pc rom 4 中断源 查询状态 5 1000000 1000000/65536 = 15.26 6 100 ms 7 111 101 8 t1 2 0ffh 001bh 二、单选题: dcaadcd 单片机基础 第五章 习题 课本 5。.1 设单片机的晶振频率为6mhz,使用定时器 1 以方式0 产生 500us 的等宽正方波连续脉冲,并由p1.0 输出。 分析:使用p1.0 输出脉冲,可由定时器产生一个250us 的定时,到了时间,就执行cpl p1.0 就可以了。所以问题转

13、化为产生定时。 解:(1) 计算定时器的初值: (2 13x ) t机 t定时 代入数据得:x 8067 由于方式0 的特点(高8 位,低 5 位),计算出th1,tl1 得th1 0fch tl1 03h (2 ) 计算出tmod 的初始值: tmod 00h (3) 编程实现: 方法一:使用查询法。程序不断地查询 tf1 的值。如定时器溢出(tf11),则cpl p1.0 所以: mov tmod ,#00h mov th1,#0fch mov tl1,#03h mov ie, #00h ;不用中断的方法,关掉 setb tr1 ;开启定时器 loop: jbc tf1,loop1 ajm

14、p loop loop1: mov th1,#0fch mov tl1,#03h cpl p1.0 ajmp loop 方法二:使用中断的方法。需确定寄存器:tmod 00h ie 88h tcon =40h (或 setb tr1) t1 的中断向量001bh 程序如下: org 0000h ajmp main org 001bh ajmp t1timer main: mov tmod,00h mov tcon,40h mov ie,#88h mov tcon ,#40h mov th1,#0fch mov tl1,#03h here :ajmp here t1_timer: mov th1

15、,#0fch mov tl1,#03h cpl p1.0 reti 注意:定时器定时或计数,不会影响cpu 的工作。 定时方式 1:与方式0 没有大的区别,只有定时器是 16 位的。所以 定时(2 x初值) t机 方式2:8 位初值自动赋值的定时/计数器 解法一样: (1) 计算t 的初始值 (2 ) tmod ? (2 ) 程序设计 方式三: t0: tl0 8 位,可作定时也可作计数,与方式 0,一样使用。 th0:8 位,只能作定时,借作 tr1 tf1 t1:没法中断,只能产生不断的脉冲,全波特率 可用方式 0,1,2。如要停止脉冲,要强制设方式3 第六章一、填空题 1、 8 16 13 2 2、 高电平 低电平 高阻 3、 256 数据

温馨提示

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

评论

0/150

提交评论