.
MOV PSW.0, C ;P→C CPL C
MOV TB8 ,C
MOV SBUF ,A ;发送第一个数据 RETI
ERROR:……
15、某异步通信接口,其帧格式由1个起始位(0),7个数据位,1个奇偶校验位和1个停止位(1)组成。当该接口每分钟传送1800个字符时,试计算出传送波特率。 解:该异步通信接口的帧格式为10b/字符,当该接口每分钟传送1800个字符时: 波特率=(10b/字符)×(1800字符/60s)=300b/s
16、串行口工作在方式1和方式3时,其波特率与fosc、定时器T1工作模式2的初值及SMOD位的关系如何?设fosc=6MHz,现利用定时器T1模式2产生的波特率为110b/s。试计算定时器初值。 解:关系如下:
当波特率为110b/s,fosc=6MHz,令SMOD=0,有:
17、设计一个单片机的双机通信系统,并编写通信程序。将甲机内部RAM 40H--4FH存储区中去。 参考教材例题7-12
1.微处理器,RAM,ROM,以及I/O口,定时器,构成的微型计算机称为单片机。 2.指令寄存器(IR)保存当前正在执行的一条指令;指令译码器(ID)对操作码进行译码。
3.程序计数器(PC)指示出将要执行的下一条指令地址,由两个8位计数器PCH及PCL组成。 4.80C31片内没有程序存储器,80C51内部设有4KB的掩膜ROM程序存储器,87C51是将80C51片内的ROM换成EPROM,89C51则换成4KB的闪存FLASHROM,51增强型的程序存储器容量是普通型的2倍。 5.89C51的组成:一个8位的80C51的微处理器,片内256字节数据存储器RAM/SFR用来存放可以读/写的数据,片内4KB程序存储器FLASHROM用存放程序、数据、表格,4个8位并行I/O端口P0-P3,两个16位的定时器/计数器,5个中断源、两个中断个优先级的中断控制系统, 一个全双工UART的串行口I/O口,片内振荡器和时钟产生电路,休闲方式和掉电方式。
6.89C51片内程序存储器容量为4KB,地址从0000-0FFFH开始,存放程序和表格常数,片外最多可扩展64KBROM地址1000-FFFFH,片内外统一编址。单片机的内部存储空间分为数据存储器和程序存储器。
7.内部数据存储器:共256字节单元,包括低128个单元和高128个单元。低128字节又分成3个区域:工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)存放中间结果,数据暂存及数据缓冲。高128字节是供给特殊功能寄存器(SFR)使用的,因此称之为特殊功能寄存器区(80H~FFH),访问它只能用直接寻址。 内部程序存储器:在8031片内无程序存储器,8051片内具有4KB掩模ROM,8751片内具有4KBEPROM。
8. 引脚是片内外程序存储器的选择信号。当 端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051/8751/80C51)或1FFFH
.
25
.
(对于8052)时,将自动转向访问外部程序存储器。当 端保持低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。由于8031片内没有程序存储器,所以在使用8031时, 引脚必须接低电平。
9.RST复位信号输入端,高电平有效。保持两个机器周期(24个时钟振荡周期)的高电平有效,完成复位,复位后,CPU和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除SP=07H,P0~P3口为FFH外,其余寄存器均为0。
ALE/ :ALE输出正脉冲,频率为振荡周期的1/6,CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号,看芯片好坏可以用示波器看ALE端是否有脉冲信号输出。PSEN程序存储允许输出信号端,也可以检查芯片好坏,有效即能读出片外ROM的指令,引脚信号RD/WR有效时可读/写片外RAM或片外I/O接口。
10.P0作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁存器写“1”;作为普通I/O口使用或低8位地址/数据总线使用。 P1口有上拉电阻,对FLASHROM编程和校验是P1接收低八位地址;只用作普通I/O口使用。
P2口比P1口多了一个转换控制开关;作为普通I/O口使用或高8位地址线使用时访问外部程序存储器和16位地址的外部数据存储器。 P3口比P1口增加了与非门和缓冲器;具有准双向I/O功能和第二功能。P0,P1,P2,P3准双向口。上述4个端口在作为输入口使用时,应注意必须先向端口写“1”。 11.普林斯顿结构:一个地址对应唯一的存储单元,用同类访问指令。哈佛结构:程序存储器和数据存储器分开的结构。CPU访问片内外ROM用MOVC,访问片外RAM用MOVX,访问片内RAM用MOV. 12.
RS1 RS0 当前寄片内RAM地址 存器组 0 0 第0组工00H~07H 作寄存器 0 1 第1组工08H~0FH 作寄存器 1 0 第2组工10H~17H 作寄存器 1 1 第3组工18H~1FH 作寄存器 SP总是初始化到内部RAM地址07H,堆栈的操作;PUSH、POP。DPTR是数据指针寄存器,是一个16位寄存器,用来存放16位存储器的地址,以便对64KB片外RAM作间接寻址。DPTR由高位字节DPH和低位字节DPL组成。 13.指令周期:执行一条指令所需要的时间。
机器周期:CPU完成一个基本操作所需要的时间,6个状态周期和12个振荡周
.
26
.
期。当晶振频率为12MHz时,一个机器周期为1μs;当晶振频率为6MHz时,一个机器周期为2μs,复位时间超过4μs。
14.复位操作有:电自动,按键手动,看门狗。
15.空闲方式是CPU停止工作而RAM,定时器/计数器,串行口及中断系统都工作。掉电一切功能都暂停,保存RAM中内容。退出空闲方式;硬件将PCON.0清0,硬件复位。当CPU执行PCON.1为1,系统进入掉电方式。推出掉电只有硬件复位。 16.保留的存储单元 存储单元 保留目的 0000H~0002H 复位后初始化引导程序地址 0003H~000AH 外部中断0 000BH~0012H 定时器0溢出中断 0013H~001AH 外部中断1 001BH~0022H 定时器1溢出中断 0023H~002AH 串行端口中断 002BH 定时器2中断 17.单片机的寻址方式:寄存器寻址,直接寻址,立即数寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址。 18.AJMP和SJMP的区别有:
(1) 跳转范围不同。 AJMP addr1 ;短跳转范围:2KB 。SJMP rel ;相对跳转范围:-128~+127 (2) 指令长度不同。(3) 指令构成不同。AJMP、LJMP后跟的是绝对地址,而SJMP后跟的是相对地址。 不能用AJMP指令代替程序中的SJMP指令,因为如果改变的话,程序跳转到的新PC值指向的地址会不同,导致程序出现错误。
19.在89c51片内RAM中30H)=38H,38H=40H,40H=48H,48H=90H。情分析下面各是什么指令,说明源操作数的寻址方式以及按顺序执行每条指令后的结果? MOV A,40H ;直接寻址 (40H)→A MOV R0,A ;寄存器寻址 (A)→R0 MOV P1,#0F0H ;立即数寻址 0F0→P1 MOV @R0,30H ;直接寻址 (30H) →(R0) MOV DPTR,#3848H ;立即数寻址 3848H→DPTR MOV 40H,38H ;直接寻址 (38H) →40H MOV R0,30H ;直接寻址 (30H) →R0 MOV P0,R0 ;寄存器寻址 ( R0 )→P0 MOV 18H,#30H ;立即数寻址 30H→18H MOV A,@R0 ;寄存器间接寻址 ((R0)) →A MOV P2,P1 ;直接寻址 (P1)→P2 最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H注意:→左边是内容,右边是单元
20.已知R3和R4中存放有一个16位的二进制数,高位在R3中,地位在R4中,
.
27
.
请编程将其求补,并存回原处。 MOV A,R3 ;取该数高8位→A ANL A,#80H ;取出该数符号判断 JZ L1 ;是正数,转L1
MOV A,R4 ;是负数,将该数低8位→A CPL A ;低8位取反 ADD A,#01H ;加1
MOV R4,A ;低8位取反加1后→R4 MOV A,R3 ;将该数高8位→A CPL A ;高8位取反
ADDC A,#00H ;加上低8位加1时可能产生的进位 MOV R3,A ;高8位取反加1后→R3 L1: RET
21.已知30H和31H中村有一个16位的二进制数,高位在前,低位在后,请编程将他们乘以2,在存回原单元中。 CLR C ;清进位位C
MOV A,31H ;取该数低8位→A RLC A ;带进位位左移1位 MOV 31H,A ;结果存回31H MOV A,30H ;取该数高8位→A RLC A ;带进位位左移1位 MOV 30H,A ;结果存回30H
22.假设允许片内定时器/计数器中断,禁止其他中断。设置IE值。用字节操作指令: MOV IE #8AH 或MOV A8H,#A8H 用位操作指令:SETB ET0 SETB ET1 SETB EA
23.设89 C51的片外中断为高优先级,片内为低优先级,设置IP值。 用字节操作指令:MOV IP,#05H或MOV 0B8H,#05H 用位操作指令:SETB PX0 SETB PX1 CLR PS CLR PT0 CLE PT1
24.89C51单片机内有两个16位定时器/计数器,即T0,T1.
. 28