单片机复习资料(请勿外传)
一、概念题
1.8051单片机片内包括哪些存储器?各种存储器的编址范围是多少?
2、8051单片机有几个中断?各个中断名称和入口地址是什么?触发中断后,哪些中断能自动撤销、哪些中断要手工撤销?
3、什么是中断?单片机的中断能否进行嵌套?产生中断有什么条件? 4、单片机有哪几种工作模式?各种模式如何设置?
5、按键编程为什么要去抖?消除按键抖动的方法有哪些?
6、键盘类型有哪2种?单片机扩展行列键盘的查键方法有哪些? 7、什么叫波特率?如果波特率是10kbps是什么含义?
8、单片机有哪些并行总线?各总线使用了哪些端口、有多少根线? 9、串行口有几种方式?写出它们的帧格式?
10、常用的串行总线有哪些?各总线的电气特性是什么? 11、什么是堆栈?堆栈有什么功能作用?工作特点是什么?
12、8051单片机内部基本RAM有多少字节?编址范围是什么?这块地址分成几个部分,各部分编址范围是多少? 二、问题编程
(1) 将R5中的数据传送到以R0单元中的内容做地址的片内RAM单元中。 (2) 将片外RAM的3F2H单元中的数据传送到片内RAM的48H单元中。 (3) 将程序存储器0210H单元中的数据传送到片外RAM的1130H单元中
(4) 判断若21H.3=0,则将片内30H单元减1后返回;否则将30H单元加1后返回。
(1) 将R2中的数据传送到以R1单元中的内容做地址的片内RAM单元中。 (2) 将片外RAM的320H单元中的数据传送到片内RAM的43H单元中。 (3) 将程序存储器0320H单元中的数据传送到片外RAM的2130H单元中。 (4) 判断若片内40H单元等于180,则把40H单元加1后返回;否则把40H单元清0后返回。
(5)判断若片内45H单元不等于120,则把45H单元加1后返回;否则把45H单元清0后返回。
三、程序阅读题
(1) 假定(A)=6DH,(R0)=30H,(30H)=46H,执行完以下指令后,写出以下单元的内容:(A)=______,(30H)=_______,(R0)=_______。
ADD A,#30H ORL 30H,A XRL A,@R0 CPL A
(2) 以下指令汇编后,写出下面指定的四个单元的内容。
ORG 2000H TAB1 EQU 6520H TAB2 EQU 83H DB \"EB7\" DW TAB1,TAB2,31H,2233H
(2001H)=______,(2003H)=______,(2006H)=______,(2008H)=______
(3) 假设单片机片内RAM单元(45H)=5DH,(46H)=2AH,阅读下面一段程序,说明程序实现的功能,并指出程序运行到NOP指令的结果。 ADR EQU 45H BXC: MOV R0,#ADR MOV DPTR,#TAB MOV A,@R0 ANL A,#0FH MOVC A,@A+DPTR XCH A,@R0 SWAP A
ANL A,#0FH DEC A
MOVC A,@A+DPTR INC R0 XCH A,@R0 NOP TAB: DB \"ABCDEF01234567\"
(A)=_____, (45H)=______, (46H)=______,(R0)=______
(4) 假定(A)=3AH,(R1)=40H,(40H)=5DH,执行完以下指令后,写出以下单元的内容:(A)=_ _____,(40H)=_______,(R1)=_______。
ADD A,#40H ANL 40H,A XRL A,@R0 CPL A
(5) 以下指令汇编后,写出下面指定的四个单元的内容。
ORG 1000H TAB1 EQU 3627H TAB2 EQU 5AH DB \"3CB\" DW TAB1,TAB2,72H, 3344H
(1002H)=______,(1004H)=______,(1007H)=______,(1009H)=______ (6) 假设单片机片内RAM单元(35H)=2EH,(34H)=3CH,阅读下面一段程序,说明程序实现的功能,并指出程序运行到NOP指令的结果。 TMP EQU 35H BXC: MOV R1,#TMP MOV DPTR,#DATA MOV A,@R1 ANL A,#0FH MOVC A,@A+DPTR XCH A,@R1 SWAP A
ANL A,#0FH INC A
MOVC A,@A+DPTR DEC R1 XCH A,@R1 NOP DATA: DB \"9876543210FEDCBA\" (A)=______, (35H)=______, (34H)=______, (R1)=______
四、分析计算题
1、下面是单片机扩展1片存储器的地址连接译码关系图,请分析计算出这个储器的编址范围(•表示悬空,×表示任意)。
A15 • • 1 × × × × × A0 × × × × × × × ×
22、A/D转换器的主要技术指标有哪些?若一个3BCD码A/D转换器,其
3分辨率是多少?如果满量程是6V,其1LSB等于多少?
3、如果使用11根地址线,最大能编多少个地址?基本地址范围是多少?如果要编址9KB,至少需要多少根地址线?
4、定时器/计数器T1工作在方式0,其最大计数值是多少?若fosc=6MHz,则其最大定时值是多少?说明原理和计算方法。
五、程序设计题
1、已经在30H~3FH存放了一组单字节二进制数,编程找出其中的最大值,存放到40H单元。
2、用定时器/计数器T1的方式2编程实现500Hz的方波输出,要求采用中断方式编程fosc=3MHz。
3、用共阳数码管设计一个能显示二位数值的动态显示电路,并40H和41H单元分别存放了1个4bit二进制数,要求编程将这2个数相加后送数码显示。
4、已经在40H~4FH存放了一组单字节十六进制数,编程找出其中的最小值,存放到30H单元。
5、用共阴数码管设计一个能显示二位数值的静态显示电路,并30H和31H单元分别存放了1个非压缩BCD码数,要求编程将这2个数相加后送数码显示。
6、假设有4个二字节无符号十六进制数,要求把这3个数相加,结果存放在40H开始的单元。
7、用单片机P3口输出控制4个发光二极管逐个点亮(例如D1点亮0.5秒后,再点亮D2,依次类推),然后再逐个熄灭,如此反复亮、灭。要求:
(1)设计连接电路图;
(2)编程实现4个发光二极管逐个点亮。