1、作业(1)1微处理器、微计算机、微处理机、CPU、单片机它们之间有何区别?答:微处理器、CPU、微处理机他们都是中央处理器,微计算机、单片机是一完整的计算机2除了单片机这一名称之外,单片机还可称为(微控制器)和( 嵌入式控制器)。3单片机与普通计算机的不同之处在于其将( CPU ) 、 ( I/0 ) 、和 ( 存储器 )三部分集成于一块芯片上。4.一个完整的微机系统由 (硬件 ) 和 ( 软件 ) 两大部分组成。5. 单片机根据其基本操作处理的位数可分为哪几种类型?答:4、8、16、32位6MCS-51系列单片机的基本型芯片分别为哪几种?它们的差别是什么?。答:三种,主要差别在于片内是否带有
2、程序存储器。8031片内不带有程序存储器,8051片内带有4K ROM ,8751片内带有4K EOROM程序存储器,78051系列单片机与80C51系列单片机的异同点是什么?。答:80C51系列单片机式与MCS-51系列相兼容的,这种兼容性体现在指令系统兼容,内核是相同的,但是片内功能部件可能有所不同。低功耗、宽工作电压范围(2.75.5V)8在家用电器中使用单片机应属于微计算机的 答:B(A )辅助设计应用(B)测量、控制应用(C)数值计算应用(D)数据处理应用9.单片机应用程序一般存放在( B ) a) RAM b)ROM c)寄存器 d)CPU10INTEL 8051 CPU 是( C
3、 )位的单片机 a) 16 b)4 c)8 d)准 16 118051与8751的区别是:答:C(A)内部数据存储单元数目的不同 (B)内部数据存储器的类型不同(C)内部程序存储器的类型不同 (D)内部的寄存器的数目不同作业(2)1.8051 单片机的内部硬件结构包括了那几大部分CPU 、 ROM 、 RAM 、定时/计数器、 SFR 、并行 I/O口、串行口、中断控制系统等2. 说明 MCS-51 单片机的引脚 的作用, 该引脚接高电平和接低电平时各有何EA种功能? =1 选通片内程序存储器, =0 选通片外程序存储器EA3. 内部 RAM 中,位地址为 30H 的位,该位所在字节的字节地址
4、为( 26H ) 。4若 A 中的内容为 63H,那么 PSW 中 P 标志位的值为( 0 ) 。5.要使 MCS-51 单片机从片内的地址 0000H 开始执行程序,那 管脚应接( 1 EA)6.片外要接一片 2764(8Kx8)存储器需要多少( 13 )根地址线。7用 8031 单片机,需将 引脚接( 低)电平,因为片内无(ROM )存储器。EA8.51 系列单片机的地址线有( 16 )条,数据线有( 8 ) 条。9片内 RAM 低 128 个单元划分为哪三个主要部分?各部分的主要功能是什么?字节地址为 00H1FH 的单元可以作为 4 组工作寄存器区 R0R7;字节地址为 20H2FH的
5、单元可以进行位寻址;307FH 单元作为堆栈及数据缓冲区。10.半导体存储器分成两大类( ROM )和( RAM ) ,其中 RAM 具有易失性,常用于存储临时性数据。11.MCS-51 系列单片机字长是( 8 )位,芯片有( 40 )根引脚,12.MCS-51 单片机片内共有( 128 )字节单元的 RAM。13单片机应用程序一般存放在( ROM ) 14CPU 主要的组成部部分为( A ) A、运算器、控制器 B、加法器、寄存器 C、运算器、寄存器 D、运算器、指令译码器 158051 单片机中既可位寻址又可字节寻址的单元是( A ) A、20H B、30H C、00H D、70H 16.
6、MCS- 8051 CPU 是( C )位的单片机 a) 16 b)4 c)8 d)准16 17.A)程序计数器 PC 不能为用户编程时直接使用,因为它没有地址。( 对 ) (B)内部 RAM 的位寻址区,只能供位寻址使用,而不能供字节寻址使用。( 错 )(C)8051 共有 18 个特殊功能寄存器,它们的位都是可用软件设置的,因此,是可以进行位寻址的。( 错 )(D)8051 单片机的 P0 口既可以做数据口线又可以做为地址口线 。 (对 )(E). 8051 内部有 4K 的程序存储器。 (对 )(F) CS-51 单片机共有两个时钟 XTAL1 和 XTAL2。 ( 错 ) (G) 工作
7、寄存器工作在 0 区,则 R2 所对应的内部数据存储器的地址是 03H 错(H). 8051 单片机的 P2 口只能用作通用 I/O 口。 (错 )(I) 程序存储器和数据存储器的作用不同,程序存储器一般用存放数据表格和程序,而数据存储器一般用来存放数据。 ( 对 )(J)某特殊功能寄存器的字节地址为 80H,它即能字节寻址,也能位寻址。对(K)内部 RAM 的位寻址区,既能位寻址,又可字节寻址。( 对 )(L)8031 与 8051 的区别在于内部是否有程序存储器。( 对 )(M) 当向堆栈压入一个字节的数据后, SP 中的内容减 1。 (错 )(N)程序计数器 PC 中装的内容是当前正在执
8、行指令的地址。 ( 错 )(O) 某特殊功能寄存器的字节地址为 80H,它即能字节寻址,也能位寻址。对1. MCS-51 单片机的时钟振荡周期与状态周期和机器周期之间有何关系?1 个机器周期=6 个状态周期=12 个时钟周期2 在 MCS-51 单片机中,如果采用 6MHz 晶振,一个机器周期为( 2 微秒) 。3.MCS-51 单片机采用 12MHz 的晶振,它的机器周期( 1 微秒 ) ,ALE 引脚输出正脉冲频率为( 2MHZ )4 在 MCS-51 单片机中,控制信号 ALE 是地址( 低八位 A0A7 )锁存信号。5.手中仅有一台示波器,可通过观察哪个引脚的状态,来大致判断MCS-5
9、1机正在工作? ALE管脚或PSEN*管脚6. MCS51 单片机的 P0P4 口均是 准双向 IO 口,其中的 P0 口和 P2 口除了可以进行数据的输入、输出外,通常还用来构建系统的( 地址) 和 (数据 ) ,7.P2 口通常用作地址( 高八位 A8A15 ) ,也可以作通用的 I/O 口使用。8. MCS-51 单片机中内部有(4 )个并行口, P0 口直接作输出口时,必须外接(上拉电阻 )。并行口作输入口时,必须先将口锁存器( 置 1 ) ,才能读入外设的状态。8.ALE 信号有效时表示( B )(A)从 ROM 中读取数据 (B 从 P0 口可靠送出地址的低八位(C)从 P0 口送
10、出数据 (D) 从 RAM 中读取数据9. 8051 单片机的并行 I/O 口读、改、写操作时是针对该口的( D )(A)引脚 (B)片选信号 (C)地址线 (D) 内部锁存器108051 单片机的( D )口的引脚,还具有外中断、串行通信等第二功能。A、P0 B、P1 C、P2 D、P311判断下列说法是否正确:(A)PC 的值是当前正在执行指令的地址(错)(B)在 MCS-51 中,为使准双向的 I/O 口工作在输入方式,必须保证它被事先预置为 1。(对)(C)PC 的值是当前正在执行指令的下一条指令的地址。(对)(D) PC 是一个不可寻址的特殊功能寄存器。(对)(E) 单片机的主频越高
11、,其运算速度越快。(对)(F)在 MCS-51 单片机中,一个机器周期等于 1S。(错)(G)特殊功能寄存器 SP 内装的是栈顶首地址单元的内容。(错)12判断以下有关 PC 和 DPTR 的结论是否正确?(A) DPTR 是可以访问的,而 PC 不能访问。(对)(B) 它们都是 16 位的寄存器。(对)(C) 它们都具有加“1”的功能。(错)(D) DPTR 可以分为 2 个 8 位的寄存器使用,但 PC 不能。(对)作业(4)1. 中断源。中断源 入口地址外部中断0 ( )INT00003H定时器0 (T0) 000BH外部中断1 ( )1I0013H定时器1 (T1) 001BH串行口
12、0023H2单片机运行出错或程序陷入死循环时,如何来摆脱困境?答:系统复位3MCS-51 单片机有( 5 )个中断源, ( 2 )级优先级中断。4 串行口方式 3 发送的第 9 位数据要事先写入(SCON)寄存器的 ( TB8 )位。551 单片机外部中断的触发方式分为( 电平 ) 和 ( 跳变 )。6.8051 有两个 16 位可编程定时/计数器,T0 和 T1。它们的定时的时间或计数的次数与( TH )、( TL )两个寄存器的初值有关。7若单片机的振荡频率为 12MHz,设定时器工作在方式 1 需要定时 1ms,则定时器初值应为 TH( FCH ) TL( 18H )。机器周期 TCY=
13、1us 计数脉冲的个数为 N= 1000/1=1000 定时器工作在方式 1是 16 位计数器装入的初值=2 16-1000=65536-1000=64536 =FC18H 所以 TH=FCH TL=18HTH=64536/256(商) TL=64536/256(余数) 十进制数转换成 16 进制数是用除 16 求余法 64536/16 商 4033 余数是 8 4033/16 商 252 余数是 1 252/16 商是15( F ) 余数是 12 ( C ),所以 64536 转换成 16 进制是 FC18H8串行口的方式 0 的波特率为 ( FOSC/12 )。9、(a)要进行多机通信,M
14、CS-51 串行接口的工作方式应为方式 1。 ( 错 )多机通信只能工作在方式 2、3(b)五个中断源中优先级最高的是外部中断 0,优先级最低的是串行口中断。( 错 )同级情况下是正确的10MCS-51 单片机定时器工作方式 0 是指的( C )工作方式。 A、8 位 B、8 位自动重装 C、13 位 D、16 位 11在进行串行通信时,若两机的发送与接收可以同时进行,则称为(D )A、半双工传送 B、单工传送 C、双工传送 D、全双工传送 12.8051 单片机的定时器 T1 用作定时方式时是( B ) 。A由内部时钟频率定时,一个时钟周期加 1 B由内部时钟频率定时,一个机器周期加 1C由
15、外部时钟频率定时,一个时钟周期加 1D由外部时钟频率定时,一个机器周期加 1定时是由内部脉冲计数,脉冲的频率为 FOSC/12 是一个机器周期,则选答案是B13.8051 单片机的定时器 T0 用作计数方式时是 ( C ) 。 A由内部时钟频率定时,一个时钟周期加 1 B由内部时钟频率定时,一个机器周期加 1 C由外部计数脉冲计数,下降沿加 1 D由外部计数脉冲计数,一个机器周期加 1 14.8051 单片机的定时器 T1 用作计数方式时计数脉冲是 ( A ) 。 A由 T1(P3.5)输入 B由内部时钟频率提供 C由 T0(P3.4 )输入 D由外部计数脉冲计数 15.用 8051 的定时器
16、 T1 作计数方式,用模式 2,则工作方式控制字为 ( A ) 。 A60H B02H C06H D20H 16.启动定时器 0 开始计数的指令是使 TCON 的 ( B ) 。 。 ATF0 位置 1 BTR0 位置 1 CTR0 位置 0 DTR1 位置 0 17.用 8051 的定时器,若用软件启动,应使 TOMD 中的 ( C ) 。 AGATE 位置 1 BC/T 位置 1 CGATE 位置 0 DC/T 位置0定时器的启动 GATE=1 启动信号是 外部管脚 INT0(1)*置 C 为 1MOV P0.4 , C ;把 P0.4 位置成 1(P0)=01110001=71H(a)6
17、1H (b) 75H (c) 71H (d) 17H五、指令分析题1.执行下列程序段后,(P1)=( 8BH ) 。 MOV P1, #5DH ;( P1)=0 1 0 1 1 1 0 1CPL P1.1 ; ( P1)=0 1 0 1 1 1 1 1 CPL P1.2 ; ( P1)=0 1 0 1 1 0 1 1CLR P1.6 ; ( P1)=0 0 0 1 1 0 1 1SETB P1.7 ; ( P1)=1 0 0 1 1 0 1 12.执行下列程序段后 MOV A,#0C5H ;(A)=1 1 0 0 0 1 0 1RL A ;(A)= 1 0 0 0 1 0 1 1(A)= (
18、8BH ),(CY)= ( 不变 ) 。RL A 是不带 C 的逻辑左移 不影响 C3.下列程序段执行后,(R0)= ( 7FH ),(7EH)= ( 00H ),(7FH)= ( 41H ) 。 MOV R0,#7EH ;(R0)= ( 7EH )MOV 7EH,#0FFH ;(7EH)= ( FFH )MOV 7FH, #40H ;(7FH)= ( 40H )1NC R0 ;(7EH)= ( 00H )1NC R0 ;(R0)= ( 7FH )1NC R0 ;(7FH)= ( 41H )4.已知(SP)=60H ,子程序 SUBTRN 的首地址为 0345H,现执行位于 0123H 的AC
19、ALL SUBTRN 双字节指令后,(PC)= (0345H ),(61H)=_ (25H )(62H)= (01H )5.假定(SP)=40H , (3FH)=30H, (40H)=60H 。执行下列指令:POP DPH (SP)=40H 把(40H)单元的内容送给 DPH=60H SP-1SP(SP)=3FHPOP DPL (SP)=3FH 把(3FH )单元的内容送给 DPL=30H SP-1SP(SP)=3EH后,DPTR 的内容为 (6030H) ,SP 的内容是( 3EH ) 。6.下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后,A 中的结果是什么,设(60H)=35H
20、, (A)=19H , (R0) =30H, (30H )=0FH 。 (1)MOV A,#48H ;寻址方式:(立即寻址 ) (A)= (48H )(2)ADD A,60H ;寻址方式:( 直接寻址 ) (A)= (4EH) (3)ANL A,R0 ;寻址方式:( 寄存器间接寻址 ) (A)= ( 09H) 7.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能? MOV R1,#30H ;(R1 )=(30H ) MOV A,#64H ;(A)=(64H )ADD A,#47H ;(A)=(ABH) , (CY)= ( 0 ) , (AC)= ( 0 ) DA A ;(A
21、)= ( 11H ) , (CY)= ( 1 ) , (AC )= ( 1 ) MOV R1,A ;(R1) =( 30H ) , (30H)=( 11 ) 答:把两个十进制数 64 和 47 相加后送到 30H 单元 8、分析下列程序的功能PUSH ACCPUSH BPOP ACCPOP B答:A 累加器和 B 寄存器内容互换9写出完成如下要求的指令,但是不能改变未涉及位的内容。(A)把 ACC.3, ACC.4,ACC.5 和 ACC.6 清“0” 。 答: ANL A,#87H (B)把累加器 A 的中间 4 位清“0” 。 答: ANL A,#0C3H (C)使 ACC.2 和 ACC
22、.3 置“1” 。 答: ORL A,#0CH10试编写一个程序,将内部 RAM 中 45H 单元的高 4 位清 0,低 4 位置 1。答: ANL 45H,0FHORL 45H,0FH作业(6)参考答案1试编写程序,查找在内部 RAM 的 20H40H 单元中出现“00H”这一数据的次数。并将查找到的结果存入 41H 单元。ORG 0100HSTART :MOV 41H,#00HMOV R0,#20HLOOP : MOV A,R0JNZ LOOP1INC 41HLOOP1:INC R0CJNE R0,#41H,LOOPRET2将单片机片内 RAM 区首址为 30H 的 10H 个字节的数据,
23、依次传送至片外首址为 40H 的 RAM 区域中ORG 0100H START : MOV R0,30HMOV R1,40HMOV R2,10HLOOP: MOV A,R0MOVX R1,AINC R0INC R1DJNZ R2,LOOPRET3用定时器采用中断方式编写程序,在P1.0输出周期为400s,占空比为1:3的矩形脉冲。设单片机主频为 12MHZ 机器周期为 1us,采用定时器 T0,为工作方式 1,高电平时间为 100us 计数脉冲个数 N=100/1=100,初值为X= 65536-100=65436 =FF9CH,低电平时间为 300us 计数脉冲个数N=300/1=300,初
24、值为 X= 65536-300=65236 =FED4H。 ORG 0000H AJMP start ORG 000BH LJMP TIMER_0 ;定时中断 0 入口 ORG 0030H start: SETB P1.0 ;P1.0 输出高电平MOV TMOD,#01H ;定时器 T0 工作于方式 1 MOV TH0,#0FFH ;产生 300us 定时 MOV TL0,#9CH SETB TR0 ;启动定时器,SETB ET0 ;开定时器 1 中断 SETB EA SJMP $ ORG 0100HTIMER_0: JB P1.0,LOOPMOV TH0,#0FFH;重新给定时 /计数器设初
25、值MOV TL0,#9CHSJMP, LOOP1LOOP: MOV TH0,#0FEH;重新给定时/计数器设初值MOV TL0,#0D4HLOOP1:CPL P1.0RETIEND作业(7)答案1某系统扩展的片外数据存储器如下图所示,存储器芯片选用 6116(2K8) 。请问采用的译码方式是什么?每个存储器芯片的地址范围分别是多少?(3 分)8 0 5 17 4 L S 3 7 3D 1D 8GA L EQ 1Q 86 1 1 6 ( 1 )A 0 - A 7 A 8 - A 1 0 C EO ED 0 - D 7 W E O E6 1 1 6 ( 2 )A 0 - A 7 A 8 - A 1
26、 0 C ED 0 - D 7 W E O EP 2 . 0 - P 2 . 2P 0 . 0 - P 0 . 7P 2 . 6P 2 . 7R DW R6 1 1 6 ( 3 )A 0 - A 7 A 8 - A 1 0 C ED 0 - D 7 W E O E3888P 2 . 5解:采用的是部分译码方式(或线译码方式) 。第一片 6116(1)的地址范围为: 110* *000 0000 0000 110* *111 1111 1111即:D800HDFFFH。第二片 6116(2)的地址范围为: 101* *000 0000 0000 101* *111 1111 1111即:B800
27、H BFFFH。 (1 分)第三片 6116(3)的地址范围为:011* *000 0000 0000 011* *111 1111 1111若“*”选用“1” ,即为:7800H 7FFFH。 2某系统需要扩展片外程序存储器,现有两片 2764(8K8)存储器芯片,要求的地址范围如下:第 1 片为 4000H5FFFH;第 2 片为 A000HBFFFH。试按要求分析电路(要求有简要的分析过程) ,并在右侧的元件布置图上完成该系统的扩展连接图。解:根据题意,两片 2764 地址范围均为 8K,所以地址译码为全译码,可采用 3-8译码器。将地址范围写为二进制,分别为0100 0000 0000
28、 0000 0101 1111 1111 11111010 0000 0000 0000 1011 1111 1111 1111第一片 2764(1)高 3 位地址译码为“010” ,所以应将 2764(1)的片选端接至 3-8译码器的 端;第二片 2764(2)高 3 位地址译码为“101 ”,应将 2764(2)的片选端Y2接至 3-8 译码器的 端。译码电路也可使用“与非门”或其他逻辑门电路实现。5完整的扩展电路如下:5 1 单 片 机P 2 . 4 P 2 . 0P 2 . 6P 2 . 7P 2 . 5P 0A L E GO EE AP S E N7 4 L S 3 7 38 85
29、55888 8A 0 A 72 7 6 4 ( 2 )C EA 8 A 1 2D 0 D 7O EA 0 A 72 7 6 4 ( 1 )C EA 8 A 1 2D 0 D 7O E7 4 L S 1 3 8CG 1+ 5 VBAG 2 AG 2 BY 2Y 53若 A 口每一位接一个按钮(PB0 PB7) ,B 口每一位接一个发光二极管(LD0LD7 ) 。现要求:当某个按钮按下时,相应位上的发光二极管点亮。请编写相应的程序。其中 8155 命令控制字定义如下:T M 2 P BP C 1P C 2I E AI E BT M 1 P AA 口 、 B 口中 断 允 许定 时 器工 作 方 式
30、8 1 5 5工 作 方 式A 口 、 B 口输 入 / 输 出 方 式 ,“ 1 ” 为 输 出8 0 3 1A L EP 2 . 0R DW R8 1 5 5A L EP 2 . 7P 0 . 0 - P 0 . 7 A D 0 - A D 7P A 0P B 0I O / MR DW RC EP B 7P B 1P A 7P A 1+ 5 V+ 5 VP B 0P B 2P B 1L D 0L D 1L D 7答: 8155 I/O 地址 0xxx xxx1 xxxx xA2A1A0高 8 位 X 取 1,低八位 X 取 0 ,控制口地址 7F00H, A 口地址 7F01H ,B 口地
31、址7F02H, C 口地址 7F03H 子程序如下ORG 0100HSTAR:MOV DPTR,#7F00H ;取控制口地址MOV A,#00000001B ;A 口输入 B 口输出MOVX DPTR,A ;给控制口写数字INC DPTR ;取 A 口地址MOVX A, DPTR ; 取 A 口数据(按键按下数据为0)INC DPTR ;取 B 口地址MOVX DPTR , A ; 送 B 口数据(输出低电平点灯)RET4根据下图写出 8155 各口地址及 RAM 区地址; 1.将单片机片内 RAM 区首址为 30H 的 10H 个字节的数据,依次传送至 8155 片内首址为 40H 的 RA
32、M 区域中 2设 8155 工作于方式 0 下,A 口设定为输入,B 口设定为输出。PA0 接按键 PB1,PA1 接按键 PB2,PB 口接一个 7 段数码管。当按键 PB1 按下时,要求数码管显示数字“1” ,当按键 PB2 按下时,要求数码管显示数字“2” ,请编写相应的程序。 (6 分)某单片机系统用 8155 扩展 I/O 口,原理图如下所示:8 0 3 1A L EP 2 . 0R DW R8 1 5 5A L EP 2 . 6R DW RP 0 . 0 P 0 . 7 A D 0 A D 7P A 0P B 0P A 1C EI O / MP B 1P B 2P B 6P B 7
33、P B 5P B 4P B 3P B 0P B 1+ 5 VahgfedcbG N D答: 8155 I/O 地址 x0xx xxx1 xxxx xA2A1A0高 8 位 X 取 1,低八位 X 取 0 ,控制口地址 BF00H, A 口地址 BF01H ,B 口地址BF02H, C 口地址 BF03H 子程序如下8155 RAM 地址 x0xx xxx0 0000 0000 x0xx xxx0 1111 1111 高 8 位中的“*”为1,则 8155 片内 RAM 地址范围为:BE00H BEFFH。(1) ORG 0100HSTAR1:MOV DPTR,BE40H ;传送数据表头指针MO
34、V R0,30H; 被传送数据表头指针MOV R7,10H ;传送数据的长度LOOP: MOV A,R0 ;取被传送数据MOVX DPTR,A ;发送到传送的地址INC DPTR ;传送数据表头指针加 1INC R0 ; 被传送数据表头指针加 1DJNZ R7,LOOP ;传送数据的长度减 1RET (2) ORG 0200HSTAR2: MOV DPTR,BF00H ;取控制口地址MOV A, 00000001B ;A 口输入 B 口输出MOVX DPTR,A ;给控制口写数字INC DPTR ;取 A 口地址MOVX A, DPTR ; 取 A 口数据(按键按下数据为0) INC DPTR
35、 ;取 B 口地址JB ACC.0,HERE1 ;判别 PB0 是否按下,值 0 键按下MOV A, 06H ;取 1 的显示段码MOVX DPTR,A ;给 B 口送 1 的段码值SJMP HERE2HERE1:JB ACC.1,HERE2;判别 PB1 是否按下,值 0 键按下MOV A, 5BH ;取 2 的显示段码MOVX DPTR,A ;给 B 口送 2 的段码值HERE2:RET四、图为 8 段共阴数码管,请写出如下数值的段码。 (11 分) _3FH _06H_ _5BH_ _4FH_ 五、简述行列式扫描键盘的工作原理。 (10 分)答案:1)首先判断有无键按下: 将列线全部置 0,读行线状态,若 P1.0P1.3 全为 1,则表明无键按下,若出现低电平即 0,则有键按下,记录下行号 i ;2) 其次,如有键按下,判断具体键号 方法如下:逐列为低,其它为高,再读行线状态,如出现哪一行为低,记录此时的列号 j , 则证明第 i 行第 j 列的按键被按下,至此完成键盘的行列式扫描。a b c d e f g hD0 D1 D2 D3 D4 D5 D6 D7 b a c d e f g h