单片机复习试题。
一、 填空。
单片机的寻址方式有_7___种。(立即寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址)
2、单片机中的三条总线分别是__数据总线___地址总线___控制总线___
3、十进制-55的反码是___c8h___补码是___c9h___
4、mcs-51中调用子程序指令有___lcall___和___acall___
5、常用的循环指令有___djnz___和__sjmp $_
内部数据存储器的地址范围是 00h-7fh ,位地址空间的字节地址范围是20h-2fh,对应的位地址范围是00h—7fh ,外部数据存储器的最大可扩展容量是64kb
二、程序解释题(10分)
4×4矩阵键盘:p1端口,p1.0—p1.3按顺序接行,p1.4—p1.7按顺序接列,写出下列指令的含义。p96
bb: mov p1,#00001111b; p1.0—p1.3输出1,p1.4—p1.7输出0,作为输入位。
key_1: mov a,p1;读键盘,检测有无键按下。
cjne a,#ofh,key_0;检测p1.0—p1.3是否全为1
sjmp key_1;p1.0—p1.3全为1,重检测键盘。
key_0: mov b,a;暂存扫描码。
mov p1,#11110000b;p1.0—p1.3输出0,p1.4—p1.7输出1,作为输入位。
mov a,p1;读键盘。
orl a,b;列码、行码合并为键编码。
二、 简答题(30分)
1、 求通用寄存器r4r5中的16位数,求其补码放回原单元。(负数补码=符号位不变,反码+1)
答: org 0000h
mov a,r4;高8位放入a
jb acc.7,cpll ;如为负数转cpll(jb是位转移指令,bit=1,则转移)
sjmp $
cpll:mov a,r5; 低8位放入a
cpl a ;低8位取反。
add a,#1; 低8位取反后加1
mov r5,a;低8位放回原单元。
mov a,r4;高8位送a
cpl a; 高8位取反。
addc a,#0;加低8位的进位。
orl a,#80h ;恢复负号。
mov r4,a;高8位放回原单元。
sjmp $
end2、 8××51单片机中断控制寄存器tcon的各个标志位的含义。p103 、p113
答:(1)tf1,tf0,ie1,ie0分别为中断源t1,t0,int1,int0(上面有一横)的中断请求标志,若中断源有中断请求,该中断标志置1,无中断请求,该中断标志置0.
2)it0和it1,为外中断int1,int0(上面有一横)中断触发方式选择,若下降沿触发则it相应位置1;若选低电平触发,it相应位置0。
3)tr1和tr0为定时器t1和t0工作启动和停止的控制位,与中断无关。
3、 8××51单片机程序状态字psw的各个标志位的含义。p21
答:cy:进、借位标志。反映运算中最高位有无进、借位情况。加法为进位,减法为借位。有进、借位时,cy=1;无进、借位时,cy=0.
ac:辅助进、借位标志。反映加减运算中高半字节与低半字节间的进、借位情况。d3位和d4位之间有进、借位时,ac=1,无进、借位时,ac=0。
f0:用户标志位。可由用户设定其含义。
rs1,rs0:工作寄存器组选择位。rs1rs0取值为00-11,分别选工作寄存器组0-3组。
ov:溢出标志位。补码运算结果有溢出,ov=1,无溢出,ov=0。ov的状态由补码运算中的最高位进位的异或结果决定。
p:奇/偶标志位。反映对累加器a操作后,a中“1”个数的奇偶。a中奇数个“1”,p=1;a中偶数个“1”,p=0.
三、 编程题(30分)
1、 利用定时器t0,t1设计一个发光二极管亮一秒灭一秒的程序,其中t0为定时方式,t1为计数方式,p1以共阳方式接发光二极管。(15分)
解:采用t0产生100ms脉冲,即p1.0每50ms取反一次作为t1的计数脉冲,t1对该下降沿计数,因此,t1记10个脉冲正好1000ms。
机器周期 mc=12/f=1us
应计脉冲个数 50ms/1us=50*10^3/1=50000=c350h
求补 (c350h)补=10000h-c350h=3cb0h
计数初值x=2^8-10=f6h
电路接法:p1接发光二极管,p0.0接t1
org 0000h
main: clr p1
setb p0.0
mov tmod,#61h;(1100001)t0为定时方式,t1为计数方式,t0为16位方式,t1为8位自动装入计数初值方式。
mov th1,#0f6h
mov tl1,#0f6h;8位工作方式,初值既要装入th0,也要装入thl0
setb tr1;启动计数器t1
loop1: cpl p1;p1口取反。
loop2: mov th0,#3ch;16位方式,计数初值分高低位放入。
mov tl0,#0b0h;计数初值低位。
setb tro;启动计时器t0
loop3: jbc tf0,loop4;当计时器溢出标志位为1时跳转到loop4并清标志。
sjmp loop3;等待tf0置位(等待50ms)
loop4: cpl p0.0;p0.0取反。
jbc tf1,loop1;当计数器溢出标志位为1时跳转到loop1并清标志。
ajmp loop2;重新对t0装入初值。
end2、 设计一个外中断程序,主程序为a1,分别间隔显示发光二极管,外中断0程序为b1,分别循环全亮与全灭,外中断1程序为c1,亮四个发光二极管,维持一秒钟,其中p1以共阳方式接发光二极管。(15分)
解:org 0000h
sjmp a1 ;跳主程序
org 0003h;外部t0中断入口。
sjmp b1 ;跳中断0服务程序。
org 0013h;外部中断t1中断入口。
sjmp c1 ;跳中断1服务程序。
org 0030h
a1:setb it0 ;外部t0方式为下降沿触发。
setb it1 ;外部t1方式为下降沿触发。
setb ex0 ;外部t0中断允许。
setb ex1 ;外部t1中断允许。
setb ea ;开总中断。
mov p1,#0ffh ;先关掉所有二极管。
mov a,#11111110b ;点亮第一个二极管。
mov p1,a;点亮第一个二极管。
aa: rl a ;左移一位。
rl a ;再左移一位;间隔点亮。
mov p1,a;点亮第三个二极管。
acall delay ;延时1s
sjmp aa ;循环点亮。
b1:mov p1,#0ffh;先把二极管全灭掉。
bb:mov a,p1 ;全灭。
cpl a ;取反。
mov p1,a ;全亮。
acall delay ;延时1s
sjmp bb ;循环本子程序,即循环全亮与全灭。
c1:mov p1,#0f0h ;低四位亮。
acall delay ;延时1s
reti中断返回,回到主程序。
delay: mov r7,#9 ;1个机器周期。
mov r0 ,#200 ;1个机器周期。
aa:m0v r1,#250 ;1个机器周期。
ba: djnz r7,$ 2*9=18个机器周期
djnz r1,ba ;2个机器周期内循环250*(18+2)=5000
djnz r0,aa ;2个机器周期。
ret2 t=(1+1+200*(1+5000+1+2)+2)*1us=1000804us=1.000804send
单片机试题
01 单片机是将微处理器 一定容量的 ram 和 rom 以及 i o 口 定时器等电路集成在一块芯片上而构成的微型计算机。2 单片机89c51片内集成了 4 kb的flash rom,共有 5 个中断源。3 两位十六进制数最多可以表示 256 个存储单元。c51是以下哪个公司的产品?c a int...
单片机试题
单片机1试题。一 填空题 每空1分,共10分 1.当使用8031单片机时,需要扩展外部程序存储器,此时ea应为。通常用作。3.若由程序设定rs1 rs0 10,则工作寄存器r0 r7的直接地址为。4.返回地址 或断点 是 的程序计数器的内容。5.处理器cpu是单片机的核心,它完成。6.单片机的工作过...
单片机试题
1 mcs 51 的无条件转移指令中,其转移范围最大的是 a ljmp b ajmp c sjmp d jmp 2 一3的补码是 a b 11111100 c 11111110 d 11111101 3 单片机应用程序一般存放在。a ram b rom c 寄存器 d cpu。4 单片机上电后或复位...