当前位置:首页 > 《单片机原理及应用》期末复习题1电子教案
CJNE A,# 4FH,BD SJMP L1
BD:MOV 80H,#0FFH L1: RET
2、外部RAM单元2000H的内容传送到内部RAM单元70H;
MOV DPTR,#2000H MOVX A,@DPTR MOV 70H, A
3、将32H单元中内容的第7位取反后送给50H。 MOV A,32H CPL ACC.7 MOV C,ACC.7 MOV 50H,C
4、若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H、42H单元中的内容各为多少?(5分) MOV A,50H ;(A)=40H MOV R0,A ;(R0)=40H MOV A,#00H ;(A)=0 MOV @R0,A ;(40H)=0 MOV A, #3BH ;(A)=3BH MOV 41H,A ;(41H)=3BH MOV 42H,41H ;(42H)=3BH
(A)= 3BH ; (R0)= 40H;
(40H)= 0; (41H)= 3BH;(42H)= 3BH
5、将外部数据存储器3000H开始100个存储单元的内容存入3070开始的存储单
元(9分)
MOV DPTR #3000H
MOV P2,#30H MOV R1,#70H
MOV R5,#100
L1: MOVX A, @DPTR MOVX@R1,A
INC R1 INC DPTR DJNZ R5, L1 RET
四、读程序填空
1. CLR C
MOV A, 4DH SUBB A,, 4EH MOV 30H, A MOV A, 7FH SUBB A, 2BH MOV 31H, A SJMP $
(1)该程序的功能是: 两个16位数的减法:(7F4DH)-(2B4EH),结果存入内部RAM的30H和31H单元,31H单元存差的高8位,30H单元存差的低8位
(2)若(4DH)=06H,(4EH)=05H,(7FH)=0AH,(2BH)=01H 则执行上述程序后(30H)= 01 H。(31H)= 09 H。
2. START: MOV R0 , #40H MOV R7, #04H MOV A, @R0 LOOP: INC R0
MOV 50H , @R0
CJNE A, 50H , NEXT NEXT: JNC BIE1 MOV A, 50H BIE1: DJNZ R7, LOOP MOV 30H, A RET
(1) 该程序的功能是: 求出40H—44H中最大的无符号数,并将最大数存入30H中
(2) 设(40H)=12H, (41H)=22H , (42H)= 6EH, (43H)=5AH , (44H)= 8AH,
填写程序执行后的结果,(30H)= 8A H。
3.已知(30H)=49H,(31H)=2BH,(32H)=0A3H,执行以下程序: MOV R7,# 4 RR0: MOV R6,# 3 CLR C
MOV R0,# 30H
RR1: MOV A,@R0 RRC A MOV @R0,A INC R0
DJNZ R6,RR1 DJNZ R7,RR0 RET
从该程序可看出这段程序的功能是: 将内RAM中30H~32H的内容 右移4位 执行后结果:(30H)= 04H ,(31H)= 92H ,(32H)= 0BAH 。
(3分)
4、 已知(A)=58H,(30H)=7FH,(P1)=EAH,执行下列程序: MOV SP,#40H PUSH A PUSH 30H MOV A,P1 MOV 30H,A POP 30H POP A 执行后结果:(SP)= 40H ,(A)= 58H ,(30H)= 7FH ,(41H)= 58H 。
五、根据题意,按要求答题。
1. AT98S51单片机P1口上接8只发光二极管(高电平亮,低电平灭),若晶振频率是12MHz,用定时/计数器T0以工作方式1工作,使8只发光二极管每1S单循环点亮。
(1) 计算定时初值,写出过程 (2) 根据相关注释,填写程序 (3)
答:(1)定时初值:
(216-X)×1μS = 50mS
X=216-50000 =15536
(2) MOV TMOD,#01H ;设T0工作方式
MOV DPTR,#15536 ;置定时初值50mS MOV TH0,DPH MOV TL0,DPL
MOV A,#01H ;置A初值 SETB TR0 ;允许定时
LOOP:MOV R7,#20 ;设定时次数 MOV P1,A ;从P1口输出
LOOP1: JNB TF0,$ ;判断定时50mS到没 CLR TF0 ;定时时间到,TF0清0 MOV TH0,DPH ;重新置定时初值50mS MOV TL0,DPL
DJNZ R7,LOOP1 ;判断定时次数到没 RL A ;输出左移
SJMP LOOP ;继续循环输出 END
2、根据给定存储类型和数据类型,声明下列变量:
(1)在片内RAM低128字节定义一个有符号整型变量val,初值为100;
(signed) int data val = 100;
(2)在ROM定义一个3元素的无符号字节数组num,数组内容分别为:12H,34H,56; unsigned char code num[3] = {0x12, 0x34, 56};
(3)在片外RAM定义一个指向无符号字节类型的指针变量p; unsigned char xdata *p;
6、简述矩阵式8行2列键盘的工作过程,其中P1口连接8根行线,P3.0和P3.1连接2根列线。
判断是否有键按下:先给列线P3.0和P3.1送低电平,然后读行线P1的值,判断P1是否为0xff;若P1为0xff则表示没有键按下,则返回重新判断是否有键按下;若P1不为0xff则表示有键按下,则延时10ms去抖动,再重新读行线P1口,再次判断是否有键按下。
若确实有键按下,则判断哪一个键按下:先给第一根列线P3.0送低电平,而P3.1送高电平,然后读行线P1,判断P1是否为0xff;若是则表示按下的键在这第一列;否则给第二列P3.1送低电平,而P3.0送高电平,然后读行线P1,判断P1是否为0xff,若是则表示按下的键在这第二列;找到按键所在列后,再根据读到的行线值中0的位置从而判断按键所在行线。 确定按键后,执行按键所对应的服务程序;然后等待键释放;按键释放通过给所有的列线P3.0和P3.1送低电平,然后读行线P1的值来进行判断;按键释放后再次延时去抖动,然后返回重新判断是否有键按下。
7、简述51单片机串行双机通信的过程,写明发送和接收时软硬件分别执行的操作。 先
数据发送时,在TI=0时,CPU将待发送数据送入SBUF,启动发送;数据由TXD引脚按位送出,发送时钟由T1控制,最先送出起始位(0),然后依次是8位数据位(低位在前),最后是停止位(1);一帧数据发送完毕后,硬件自动将TI置1,向CPU请求中断;CPU接收到请求信号后,需将TI清0,然后才能启动下一次发送。
数据接收时,允许接收位REN必须置1,接收器开始工作;当接收到起始位(0),启动接收;在波特率的控制下,把接收到的数据依次移入移位寄存器;当接收完一帧数据,将移位寄存器中的数据送入SBUF,同时硬件自动将RI置1,向CPU请求中断。CPU接收到请求信号后,需将RI清0,然后才能正常接收下一帧数据。
共分享92篇相关文档