1、单片机原理及应用作业答案作业答案0-1绪论1单片机是把组成微型计算机的各功能部件即(微处理器(CPU)、(存储器(ROM和RAM)、(总线)、(定时器/计数器)、(输入/输出接口(I/O口)及(中断系统)等部件集成在一块芯片上的微型计算机。2什么叫单片机?其主要特点有哪些?解:将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价
2、比高、应用广泛、易于产品化等。第1章 MCS-51单片机的结构与原理15. MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?解:MCS-51系列单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0P3)、一个输入驱动器和输入缓冲器。通常把4个端口称为P0P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总
3、线。MCS-51系列单片机数据总线为8位,地址总线为18位,对外可寻址空间为64KB。25. 开机复位后,CPU使用的是哪组工作寄存器(R0-Rn)?它们的地址是什么?CPU如何确定和改变当前工作寄存器组(R0-Rn)?解:开机复位后,CPU使用的是第组工作寄存器。它们的地址是00H07H。CPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。27. MCS-51单片机的时钟周期、机器周期、指令周期是如何定义的?当主频为12MHz的时候,一个机器周期是多长时间?执行一条最长的指令需要多长时间?解:时钟周期又称为振荡周期,由单片机内部振荡电路OSC产生,定义为OSC时钟
4、频率的倒数。时钟周期又称为节拍(用P表示)。时钟周期是时序中的最小单位。一个状态有两个节拍,机器周期定义为实现特定功能所需的时间。MCS-51的机器周期由12个时钟周期构成。执行一条指令所需要的时间称为指令周期,指令周期是时序中的最大单位。由于机器执行不同指令所需的时间不同,因此不同指令所包含的机器周期数也不尽相同。MCS-51的指令可能包括14个不等的机器周期。当MCS-51的主频为12MHz时,一个机器周期为1 s。执行一条指令需要的最长时间为4 s。第2章 MCS-51单片机指令系统与汇编语言程序设计4. 假定累加器A中的内容为30H,执行指令1000H:MOVC A,A+PC后,把程序
5、存储器( 1031H )单元的内容送入累加器A中。7. 指出下列各指令在程序存储器中所占的字节数(1)MOV DPTR,#1234H 3字节(2)MOVX A, DPTR 1字节(3)LJMP LOOP 3字节(4)MOV R0,A 1字节(5)AJMP LOOP 2字节(6)MOV A,30H 2字节(7)SJMP LOOP 2字节(8)MOV B,#30H 2字节15设堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,61H, 62H, 30H, 31H, DPTR及SP中的内容将有何变化?PUSH 30H PUSH 31H POP DPL
6、POP DPH MOV 30H, #00H MOV 31H, #0FFH 解:结果为: 61H、62H单元为堆栈单元,其内容已被弹出栈。 (30H)=00H (31H)=0FFH (DPTR)=2410H(SP)=60H17完成以下的数据传送过程(1)R1的内容传送到R0。(2)片外RAM 20H单元的内容送R0。(3)片外 RAM 20H单元的内容送片内RAM 20H单元。(4)片外RAM 1000H单元的内容送片内 RAM 20H单元。(5)ROM 2000H单元的内容送R0。(6)ROM 2000H单元的内容送片内RAM 20H单元。(7)ROM 2000H单元的内容送片外RAM 20H
7、单元。解:(1)R1的内容传送到R0 ; MOV A, R1 MOV R0, A(2)片外RAM 20H单元内容送R0 ; MOV R1, #20H MOVX A, R1 MOV R0, A(3)片外 RAM 20H单元的内容送片内RAM 20H单元; MOV R0, #20H MOVX A, R0 MOV 20H, A(4)片外RAM 1000H单元的内容送片内 RAM 20H 单元; MOV DPTR, #1000H MOVX A, DPTR MOV 20H, A(5)ROM 2000H单元的内容送R0单元; CLR A MOV DPTR, #2000H MOVC A, A+DPTR MO
8、V R0, A(6)ROM 2000H 单元的内容送片内RAM 20H单元; CLR A MOV DPTR, #2000H MOVC A, A+DPTRMOV 20H, A(7)ROM 2000H单元的内容送片外RAM 20H单元。 CLR A MOV DPTR, #2000H MOVC A, A+DPTR MOV R0, #20H MOVX R0, A19编程将片内RAM的40H60H单元中内容送到片外RAM以3000H开始的单元中。并将原片内RAM数据块区域全部清0。解: ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP, #60HMOV R7,#21H
9、MOV R1,#40H MOV DPTR,#3000H LOOP: MOV A,R1 MOVX DPTR,A MOV R1, #00H INC R1 INC DPTR DJNZ R7,LOOP SJMP $ END23设有100个有符号数,连续存放在片外RAM以2000H为首地址的存储区中,试编程统计其中正数、负数、零的个数。解: ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV R2,#100 MOV R3,#00H MOV R4,#00H MOV R5,#00H MOV DPTR,#2000HLOOP: MOVX A,DPTR CJNE A,#00H,NET1
10、INC R3 SJMP NET3NET1: JB ACC.7 NET2 INC R4 SJMP NET3NET2: INC R5NET3: INC DPTR DJNZ R2,LOOP SJMP $ END24试编一查找程序,从外部RAM首地址为2000H、长度为9FH的数据块中找出第一个ASCII码A,将其地址送到20A0H和20A1H单元中。解: ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP, #60HMOV DPTR,#2000H MOV R7,#9FHLP0: MOVX A,DPTR CJNE A, #41H, LP1 MOV R2,DPL MOV
11、R3,DPH MOV DPTR,#20A0H MOV A, R2 MOVX DPTR,A INC DPTR MOV A, R3 MOVX DPTR,A SJMP LP2LP1: INC DPTR DJNZ R7, LP0LP2: RET END27编程实现将片外RAM中2400H2450H单元中的数传送到2500H2550H单元中。 解: ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV R7,#51H MOV DPTR, #2400H LOOP: MOVX A,DPTR MOV DPH, #25H MOVX DPTR,A MOV DPH, #24H INC DPT
12、R DJNZ R7 ,LOOP SJMP $ END另一种方法:ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV 30H,#24H MOV 31H,#00H MOV 32H,#25H MOV 33H,#00H MOV R2,#51HLOOP: MOV DPH,30H MOV DPL,31H MOVX A,DPTR MOV DPH,32H MOV DPL,33H MOVX DPTR,A INC 31H INC 33H DJNZ R2,LOOP SJMP $ END第三章作业答案6. 设(TMOD)=0A5H,则定时器T0的状态是( 方式1计数),定时器T1的状态是(
13、方式2 定时)。27请写出为低电平触发的中断系统初始化程序。解:为低电平触发的中断系统初始化程序如下: ORG 0000H LJMP MAIN ORG 0013H LJMP INTN1 ORG 0100H MAIN: MOV SP,#60HSETB EA SETB EX1 ; 开中断 CLR PX1 ; 令为低优先级 CLR IT1 ; 令为电平触发 SJMP $ END 28说明MCS-51单片机响应中断后,中断服务的入口地址。 解:中断服务程序的入口地址如下表:中断源中断矢量外部中断0()0003H定时器T0中断000BH外部中断1()0013H定时器T1中断001BH串行口中断0023H
14、36使用一个定时器,如何通过软硬结合方法实现较长时间的定时?解: 设定好定时器的定时时间,采用中断方式用软件设置计数次数,进行溢出次数累计,从而得到较长的时间。37利用定时器输出周期为2 ms的方波, 设单片机晶振频率为 6 MHz。试编程实现之。解:选用定时器/计数器T0 作定时器, 工作在方式1,输出为P1.0 引脚, 2 ms 的方波可由 1 ms的高低电平相间隔而成, 因而只要每隔1 ms对 P1.0 取反一次即可得到这个方波。初值的计算如下:ST0=12/(6106)= 2106STC=M-T/T0=2161103/2106=65536500=65036=FE0CH当定时器/计数器采用方式0时,初值为:TC=M-T/T0=2131103/2106=8192500=7692=1E0CH,则真正的16位计数初值为:F00CH(高8位,低5位)程序如下: ORG 0000H LJMP START ORG 000BH LJMP T0INT ; T0中断入口 ORG 0030H START: MOV SP, #60H ; 初始化程序 MOV TL0, #0CH ; T0赋初值 MOV TH0, #0FEH MOV TMOD, #01H ; 定
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1