单片机试题

发布 2024-04-17 16:30:07 阅读 1324

单片机复习试题。

一、 填空。

单片机的寻址方式有_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 单片机上电后或复位...