单片机答案Word文件下载.docx
- 文档编号:16715278
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:22
- 大小:26.45KB
单片机答案Word文件下载.docx
《单片机答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机答案Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
作为通用I/O口时,P0、P1、P2和P3都是准双向口。
P0可以作为地址/数据总线,此时是一个真正的双向口;
P2口可以作为地址线的高8位;
P3口是双功能口,每条口线还具有不同的第二功能。
另外,P0口的驱动能力为8个TTL负载,而其它口仅可驱动4个TTL负载。
4.答:
机器周期分别为2μs,1.085μs,1μs。
5.答:
复位后,PC内容为0000H,P0口~P3口内容为FFH,SP内容为07H,SBUF内容不定,IP、IE和PCON的有效位为0,其余的特殊功能寄存器的状态均为00H。
复位方法一种是上电复位,另一种是上电与按键均有效的复位。
6.答:
80C51的引脚为访问片内、片外程序存储器的选择端。
访问片内、片外数据存储器需要采用不同的指令加以区分。
7.答:
CY:
进位、借位标志。
有进位、借位时CY=1,否则CY=0;
AC:
辅助进位、借位标志(高半字节与低半字节间的进位或借位);
F0:
用户标志位,由用户自己定义;
RS1、RS0:
当前工作寄存器组选择位;
OV:
溢出标志位。
有溢出时OV=1,否则OV=0;
P:
奇偶标志位。
存于ACC中的运算结果有奇数个1时P=1,否则P=0。
8.答:
当前工作寄存器组的选择由特殊功能寄存器中的程序状态字寄存器PSW的RS1、RS0来决定。
9.答:
RST/VPD:
复位信号输入引脚/备用电源输入引脚;
ALE/:
地址锁存允许信号输出引脚/编程脉冲输入引脚;
/VPP:
内外存储器选择引脚/片内EPROM(或FlashROM)编程电压输入引脚;
:
外部程序存储器选通信号输出引脚。
10.答:
0000H:
单片机复位入口地址;
0003H:
外部中断0的中断服务程序入口地址;
000BH:
定时/计数器0溢出中断服务程序入口地址;
0013H:
外部中断1的中断服务程序入口地址;
001BH:
定时/计数器1溢出中断服务程序入口地址;
0023H:
串行口的中断服务程序入口地址。
章380C51的指令系统
1.答:
执行时间短。
1个机器周期指令有64条,2个机器周期指令有45条,而4个机器周期指令仅有2条(即乘法和除法指令);
指令编码字节少。
单字节的指令有49条,双字节的指令有45条,三字节的指令仅有17条;
位操作指令丰富。
这是80C51单片机面向控制特点的重要保证。
2.答:
80C51单片机的寻址方式有七种。
即:
寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。
这些寻址方式所对应的寄存器和存储空间如下表所示。
序号
寻址方式
寄存器或存储空间
1
寄存器寻址
寄存器R0~R7,A、AB、DPTR和C(布尔累加器)
2
直接寻址
片内RAM低128字节、SFR
3
寄存器间接寻址
片内RAM(@R0,@R1,SP)
片外RAM(@R0,@R1,@DPTR)
4
立即寻址
ROM
5
变址寻址
ROM(@A+DPTR,@A+PC)
6
相对寻址
ROM(PC当前值的+127~-128字节)
7
位寻址
可寻址位(内部RAM20H~2FH单元的位和部分SFR的位)
直接寻址和位寻址方式。
直接寻址、寄存器间接寻址和位寻址方式。
寄存器间接寻址。
立即寻址、变址寻址和相对寻址方式。
单片机指令系统中的布尔指令集、存储器中的位地址空间与CPU中的位操作构成了片内的布尔功能系统,它可对位(bit)变量进行布尔处理,如置位、清零、求补、测试转移及逻辑“与”、“或”等操作。
在实现位操作时,借用了程序状态标志器(PSW)中的进位标志Cy作为位操作的“累加器”。
8.寄存器间接寻址方式。
9.
(1)MOVA,#88H----------------74H,88H
(2)MOVR3,50H----------------ABH,50H
(3)MOVP1,#55H----------75H,90H,55H
(4)ADDA,@R1---------------------27H
(5)SETB12H----------------------D2H,12H
(1)MOVA,R0
MOVR1,A
(2)MOVR2,60H
(3)MOVDPTR,#1000H
MOVXA,@DPTR
MOV60H,A
(4)MOVDPTR,#1000H
MOVR2,A
(5)MOVDPTR,#1000H
MOVDPTR,#2000H
MOVX@DPTR,A
11.答:
(R1)=7FH
(A)=60H
(30H)=08H
(40H)=60H
12.答:
(1)(A)=2CH
(2)(40H)=0CH
(3)(A)=22H,(CY)=1,(AC)=1,(OV)=0
(4)(A)=8EH
(5)(20H)=0EH,P=1
(6)(A)=EFH,(20)=08H
13.答:
(A)=3BH,(R0)=40H,(40H)=00H,(41H)=3BH,(42H)=3BH。
14.答:
(1)SETBACC.0
(2)ANLA,#0FH
(3)ANLA,#87H
15.答:
MOV2FH,20H
MOV2EH,21H
MOV2DH,22H
16.答:
CLRCY
MOV30H,#7FH
MOV31H,#4DH
MOVR0,#31H
MOVA,@R0
SUBBA,#4E
MOV@R0,A;
保存低字节相减结果
DECR0
MOVA,@R0
SUBBA,#2BH
保存高字节相减结果
17.答:
MOVA,R2
ANLA,#0F0H
ORLR1,A
18.答:
MOVA,20H
MOVB,21H
MULAB
MOVR3,A
MOVR2,B
19.答:
(CY)=1,(P1)=10111011B,(P3)=00111100B
章480C51的汇编语言程序设计
汇编语言结构紧凑、灵活,汇编成的目标程序效率高,具有占存储空间少、运行速度快、实时性强等优点。
它是面向机器的语言,对于单片机硬件的操作直接、方便,有利于初学者对单片机结构的认知。
但它与高级语言相比移植性不好、编程复杂、对编程人员的基础要求高。
一、任务分析
首先,要对单片机应用系统的设计目标进行深入分析,明确系统设计任务:
功能要求和技术指标。
然后对系统的运行环境进行调研。
这是应用系统程序设计的基础和条件。
二、算法设计
经过任务分析和环境调研后,已经明确的功能要求和技术指标可以用数学方法(或模型)来描述,进而把一个实际的系统要求转化成由计算机进行处理的算法。
并对各种算法进行分析比较,并进行合理的优化。
三、流程描述
程序的总体构建。
先要确定程序结构和数据形式,资源分配和参数计算等。
然后根据程序运行的过程,规划程序执行的逻辑顺序,用图形符号将程序流程绘制在平面图上。
应用程序的功能通常可以分为若干部分,用流程图将具有一定功能的各部分有机地联系起来。
流程图可以分为总流程图和局部流程图。
总流程图侧重反映程序的逻辑结构和各程序模块之间的相互关系;
局部流程图反映程序模块的具体实施细节。
顺序程序:
无分支、无循环结构的程序,其执行流程是依指令在存储器中的存放顺序进行的;
分支程序:
可以改变程序的执行顺序;
循环程序:
按某种控制规律重复执行的程序,控制一部分指令重复执行若干次,以便用简短的程序完成大量的处理任务。
利用累加器或寄存器;
利用存储器;
利用堆栈。
伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令。
常用的伪指令包括:
ORG,功能是向汇编程序说明下面紧接的程序段或数据段存放的起始地址;
END,功能是结束汇编;
DB,功能是从标号指定的地址单元开始,在程序存储器中定义字节数据;
DW,功能是从标号指定的地址单元开始,在程序存储器中定义字数据空间;
EQU,功能是将表达式的值或特定的某个汇编符号定义为一个指定的符号名;
BIT,功能是将位地址赋给指定的符号名。
程序如下:
ORG0000H
MOVR0,#21H
MOVR1,#23H
MOVA,@R0
ADDA,@R1
MOV25H,A
DECR1
ADDCA,@R1
MOV24H,A
SJMP$
END
MOVDPTR,#1000H
MOVR0,#30H
MOVR7,#32
LOOP:
MOVXA,@DPTR
MOV@R0,A
INCR0
INCDPTR
DJNZR7,LOOP
RET
MOVA,R1
ADDA,R7
MOV61H,A
MOVA,R0
ADDCA,R6
SJMP$
END
延时时间:
2µ
s*{[1+((1+2*250+2)*246)+2]+2}=0.247486秒(含调用指令2个机器周期)
ORG0000H
BIGDATA2FH
ONEDATA2AH
TWODATA2BH
START:
MOVR7,#7;
比较次数
MOVR0,#30H
LOOP:
MOVA,@R0
MOVONE,A
MOVTWO,@R0
CLRC
SUBBA,@R0
JCNEXT;
ONE小,TWO大继续比下一对数
MOV@R0,ONE;
ONE大放后面(交换)
DECR0
MOV@R0,TWO;
TWO小放前面
INCR0;
NEXT:
DJNZR7,LOOP
MOVBIG,37H
单字节二进制数转换为压缩的BCD码仅需要2个字节;
在将压缩的BCD码拆分存于3个单元。
org0
MOV52H,#0
MOV51H,#0
MOV50H,#0
MOVA,#0FDh
LCALLDCDTH
SJMP$
DCDTH:
MOVR7,#8
MOVR0,A;
暂存于R0
CLRC
MOVA,R0
RLCA
MOVR0,A
MOVR1,#51H;
MOVA,@R1;
ADDCA,@R1;
DAA;
MOV@R1,A;
DECR1
MOVA,@R1
ADDCA,@R1
DAA
MOV@R1,A
INCR1;
50H已是结果,R1指向51H,51H单元需拆分
MOVA,#00H
XCHDA,@R1
MOV52H,A
MOVA,@R1
SWAPA
MOV@R1,A
RET
END
ORG0
MOVR1,#5BH
MOVA,R1
ANLA,#0F0H
SWAPA
ACALLASCII
MOVR3,A
ANLA,#0FH
MOVR4,A
ASCII:
PUSHACC
CLRC
SUBBA,#0AH
POPACC
JCLOOP
ADDA,#07H
ADDA,#30H
MOVR7,#10
MOVR0,#50H
MOVB,#10
CLRA
ADDCA,@R0
INCR0
DJNZR7,LOOP
DIVAB
MOV5AH,A
实现程序如下:
TEMPEQU30H
ORG0000H
JMPSTART
ORG0100H
MOVSP,#5FH
MOVP0,#8CH;
正序显示"
P"
MOVP3,#0FFH;
输入方式
CLRCY
NOKEY:
MOVA,P3
CPLA
JZNOKEY;
无键按下
MOVTEMP,P3;
有键按下
CALLD10ms
MOVA,P3
CJNEA,TEMP,NOKEY;
去抖动
MOVR2,#0;
键号计数器复位
MOVA,TEMP
LP:
RRCA
JNCDONE
INCR2
SJMPLP
DONE:
MOVA,R2
MOVDPTR,#CODE_P0
MOVCA,@A+DPTR
MOVP0,A
JMPNOKEY
D10ms:
MOVR5,#10;
10MS
D1ms:
MOVR4,#249
DL:
NOP
NOP
DJNZR4,DL
DJNZR5,D1ms
CODE_P0:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH
END
章580C51的中断系统及定时/计数器
5个中断源,分别为外中断和、T0和T1溢出中断、串口中断。
电平方式触发的外中断标志与引脚信号一致;
边沿方式触发的外中断响应中断后由硬件自动复位。
T0和T1,CPU响应中断时,由硬件自动复位。
RI和TI,由硬件置位。
必须由软件复位。
另外,所有能产生中断的标志位均可由软件置位或复位。
各中断入口地址:
―0003H,T0—000BH,—0013H,T1—001BH,RI和TI—0023H。
将3个中断信号经电阻线或,接。
LJMPMAIN
ORG00013H
LJMPZDFZ
ORG0040H
MAIN:
SETBEA
SETBEX1
0RG0200H
ZDFZ:
PUSHPSW
PUSHACC
JBP1.0,DV0
JBP1.1,DV1
JBP1.2,DV2
INRET:
POPACC
POPPSW
RETI
ORG2000H
DV0:
------------
JMPINRET
ORG2100H
DV1:
ORG2200H
DV2:
3答:
当IT0=0时,为电平触发方式。
电平触发方式时,CPU在每个机器周期的S5P2采样引脚电平,当采样到低电平时,置IE0=1向CPU请求中断;
采样到高电平时,将IE0清0。
在电平触发方式下,CPU响应中断时,不能自动清除IE0标志。
电平触发方式时,外部中断源的有效低电平必须保持到请求获得响应时为止,不然就会漏掉;
在中断服务结束之前,中断源的有效的低电平必须撤除,否则中断返回之后将再次产生中断。
该方式适合于外部中断输入为低电平,且在中断服务程序中能清除外部中断请求源的情况。
当IT0=1时,为边沿触发方式。
边沿触发方式时,CPU在每个机器周期的S5P2采样引脚电平,如果在连续的两个机器周期检测到引脚由高电平变为低电平,即第一个周期采样到=1,第二个周期采样到=0,则置IE0=1,产生中断请求。
在边沿触发方式下,CPU响应中断时,能由硬件自动清除IE0标志。
边沿触发方式时,在相继两次采样中,先采样到外部中断输入为高电平,下一个周期采样到为低电平,则在IE0或IE1中将锁存一个逻辑1。
若CPU暂时不能响应,中断申请标志也不会丢失,直到CPU响应此中断时才清0。
另外,为了保证下降沿能够被可靠地采样到,和引脚上的负脉冲宽度至少要保持一个机器周期(若晶振频率为12MHz,为1微秒)。
边沿触发方式适合于以负脉冲形式输入的外部中断请求。
定时/计数器实质是加1计数器。
不同点:
设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。
计数值乘以机器周期就是定时时间。
设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。
在每个机器周期的S5P2期间采样T0、T1引脚电平。
当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。
相同点:
它们的工作原理相同,它们都有4种工作方式,由TMOD中的M1M0设定,即
方式0:
13位计数器;
方式1:
16位计数器;
方式2:
具有自动重装初值功能的8位计数器;
方式3:
T0分为两个独立的8位计数器,T1停止工作。
5.答:
方式0位13位计数器,由TL0的低5位(高3位未用)和TH0的8位组成。
TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。
计数初值计算的公式为:
X=213-N
方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器。
计数个数与计数初值的关系为:
X=216-N
方式2为自动重装初值的8位计数方式。
TH0为8位初值寄存器。
当TL0计满溢出时,由硬件使TF0置1,向CPU发出中断请求,并将TH0中的计数初值自动送入TL0。
TL0从初值重新进行加1计数。
周而复始,直至TR0=0才会停止。
X=28-N
方式3只适用于定时/计数器T0,定时器T1处于方式3时相当于TR1=0,停止计数。
方式3时,T0分成为两个独立的8位计数器TL0和TH0,TL0使用T0的所有控制位。
当TL0计数溢出时,由硬件使TF0置1,向CPU发出中断请求。
而TH0固定为定时方式(不能进行外部计数),并且借用了T1的控制位TR1、TF1。
因此,TH0的启、停受TR1控制,TH0的溢出将置位TF1。
6答:
TMOD中GATE的值不同:
完全由TR1、TR0确定时GATE为0;
完全由、高低电平控制时GATE为1。
T0用作方式3时,T1可以工作在方式0、1和2。
T1的开启由TR1控制,即TR1=1时,T1开始工作;
TR1=0时或者定时/计数器工作在方式3时,T1停止工作。
采用定时20ms,然后再计数1、49次的方法实现。
a、T0工作在定时方式1时,控制字TMOD配置:
M1M0=01,GATE=0,C/=0,可取方式控制字为01H;
b、计算计数初值X:
晶振为12MHz,所以机器周期Tcy为1。
N=t/Tcy=20×
10-3/1×
10-6=20000
X=216-N=65536-20000=45536=4E20H
即应将4EH送入TH1中,20H送入TL1中。
c、实现程序如下:
AJMPMAIN;
跳转到主程序
ORG0030H
MAIN:
MOVTMOD,#01H;
设T1工作于方式2
MOVTH0,#4EH;
装入循环计数初值
MOVTL0,#20H;
首次计数值
LP0:
SETBP1.0
ACALLNT0
CLRP1.0
MOVR7,#49;
计数49次
LP1:
ACALLNT0
DJNZR7,LP1
AJMPLP0
NT0:
MOVTH0,#4EH
MOVTL0,#20H
SETBTR0
JNBTF0,$
CLRTR0
CLRTF0
采用T0实现
1/1000=1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 答案