单片机mcs-51
习题3-8 已知(a)=7ah, (r0)=30h, (30h)=a5h, (psw)=80h, 写出分别执行下列各条指令后a和psw(cy,ac,f0,rs1,rs0,ov,-,p)的结果。
1) xch a, r0 (a)= 30h , psw)= 80h
2) xch a, 30h (a)= a5h , psw)= 80h
3) xch a, @r0 (a)= a5h , psw)= 80h 同(2)
4) xchd a, @r0 (a)= 75h , psw)= 81h
5) swap a (a)= a7h , psw)= 81h
6) add a, r0 (a)= aah , psw)= 04h 有溢出
7) add a, 30h (a)= 1fh , psw)= 81h
8) add a, #30h (a)= aah , psw)= 04h 同(6)
9) addc a, 30h (a)= 20h , psw)= c1h 有辅助进位
10) subb a, #30h (a)= 49h , psw)= 01h
习题3-11 已知(a)=83h, (r0)=17h, (17h)=34h,写出下列程序执行后a内容。
anl a, #17h (a)= 03h
orl 17h, aa)= 03h ,(17h)= 37h
xrl a, @r0 (a)= 34h
cpl aa)= cbh
习题3-13 分析下列程序执行后位地址00h、01h中的内容为何值?(p1)=?
clr cc)=0
mov a, #66h ;(a)= 66h
jc loop1 ;next line
cpl cc)= 1
setb 01h01h)=1
loop1:orl c, acc.0 ; c)= 1
jb acc.2, loop2 ;jump to loop2
clr 00h
loop2:mov p1, a ; p1)= 66h
位地址00h的内容不变, 位地址01h的内容为 1
习题4-6 阅读程序,说明功能。
1) mov r0, #50h
mov a, @r0
mov @r0, 60h
mov 60h, a
程序功能: 50h和60h单元内容交换。
2) clr c
mov a, r0
add a, r2
da amov r4, a
mov a, r1
addc a, r3
da amov r5, a
sjmp $
功能:4位bcd码加法,即 r1: r0 + r3: r2 r5: r4
3) mov a, #76h
mov r1, #00h
mov r0, #08h
loop1: rlc a
jnc loop2
inc r1
loop2: djnz r0,loop1
mov a, r1
sjmp $
功能:统计a中1的个数存入a中。
习题4-10 编程把内部ram 30h~3fh单元清零。
mov r0, #30h
mov r7, #
clr aloop:
mov @r0, a
inc r0
djnz r7, loop
sjmp $
习题4-11 内部ram 30h开始有若干无符号数,长度在2fh单元,找最小值送入30h
mov r0, #31h第2个数据的地址。
dec 2fh比较次数
loop:mov a , r0
cjne a , 30h, loop1
loop1:jnc nexta>=30h, 转到next
mov 30h, aa<30h, 传至30h单元
next:inc r0下一个数据的地址
djnz 2fh, loop ;检查比较次数
sjmp $
习题4-12 外部ram 2000h开始有100个无符号数,统计奇数和偶数的个数送入30h、31h
mov dptr, #2000h ; 数据起始地址。
mov r7, #100数据个数。
mov 30h, #0奇数数据的计数单元。
mov 31h, #0偶数数据的计数单元。
loop:movx a , dptr
rrc a或 anl a, #01h
jnc evenjz even
inc 30h
sjmp next
even:inc 31h
next: inc dptr ;下一个数据的地址
djnz r7, loop
sjmp $
习题4-13 将外部ram 1000h开始的100个数据传送到外部ram 2000h开始的连续单元。
mov dptr, #1000h数据起始地址。
mov r7, #100数据个数。
loop:movx a , dptr
push dph
mov dph, #20h
movx @dptr, a
pop dph
inc dptr下一个数据的地址
djnz r7, loop
sjmp $
习题6-6 已知fosc=6mhz,要求定时分别为0.1ms、1ms、10ms,t0分别工作在模式,定时器初值各是多少?
fosc=6mhz,一个机器周期为2us
定时0.1ms
模式0 100us=(213-x)×2
计数初值x= 213-50=8192 -50=8142
th0=8142/ 25 =feh,tl0=0eh
模式1 100us=(216-x)×2
计数初值x= 216-50=65536 -50=65486
th0=65486/ 28 =ffh,tl0=206=ceh
模式2 100us=(28-x)×2
计数初值x= 28-50=256 -50=206
th0=tl0=206=ceh
fosc=6mhz,一个机器周期为2us
定时1ms模式0 1000us=(213-x)×2
计数初值x= 213-500=8192 -500=7692
th0=7692/ 25 =240=f0h,tl0=12=0ch
模式1 1000us=(216-x)×2
计数初值x= 216-500=65536 -500=65036
th0=65036/ 28 =254=feh,tl0=12=0ch
模式2 1000us=(28-x)×2
计数个数500> 28,一次定时溢出无法实现。
可以定时0.1ms,软件计数10次。
fosc=6mhz,一个机器周期为2us
定时10ms
模式0 10000us=(213-x)×2
计数初值x= 213-5000=8192 -5000=3192
th0=3192/ 25 =99=63h,tl0=24=18h
模式1 10000us=(216-x)×2
计数初值x= 216-5000=65536 -5000=60536
th0=60536/ 28 =236=ech,tl0=120=78h
模式2 10000us=(28-x)×2
计数个数5000> 28,一次定时溢出无法实现。
可以定时0.1ms,软件计数100次。
习题6-10 已知fosc=6mhz,t0外部计数每计1000个脉冲使t1开始2ms定时,定时时间到t0又开始计数,反复循环。
t0计数1000个,模式1的计数初值为。
x= 216-1000=65536 -1000=64536
th0=64536/ 28 =252,tl0=24
t1定时2ms: 2000us=(216-x)×2
x= 216-1000=65536 -1000=64536
th1=64536/ 28 =252,tl1=24
确定tmod:0001 0101b=15h
程序设计:org 0000h
sjmp main
org 000bh
sjmp brt0
org 001bh
sjmp brt1
main:mov tmod, #15h
mov th0, #
mov tl0, #
setb tr0启动t0开始计数。
setb et0t0开中断。
setb et1t1开中断。
setb eacpu开中断。
sjmp $
brt0:
clr tr0t0停止计数
mov th1, #
mov tl1, #
setb tr1启动t1开始定时。
retibrt1:
clr tr1t1停止定时。
mov th0, #
mov tl0, #
setb tr0启动t0开始计数。
retiend
单片机作业答案
作业答案2 第2章 mcs 51单片机指令系统与汇编语言程序设计。4.假定累加器a中的内容为30h,执行指令1000h movc a,a pc后,把程序存储器 1031h 单元的内容送入累加器a中。6.指出下列指令中的源操作数的寻址方式。1 mov r0,30h立即寻址。2 mov a,30h直接寻...
答案单片机作业
作业一答案。1 简述cc2530的存储空间是如何映射的?答 cc2530物理存储器的两种主要存储介质 sram flash 虚拟存储空间的种类及地址范围如下 1 code 0x0 0xffff 64kb 2 data 0x00 0xff 节 3 xdata 0x0 0xffff 64kb 4 sfr...
单片机A作业答案
1.串行通信接收数据时通常采用 a a 接收中断或串行口中断接收数据 b 发送时检测是否有接收数据。c 周期性检测是否有接收数据d 实时检测接收标志位接收数据。2.下列哪一个事件是高速输出器 hso 的内部事件?b a 复位单片机 b 软件定时器 c 在管脚上输出高电平 d 在管脚上输出低电。3.0...