单片机原理与应用设计1.【大题】控制引脚(1)RST —9号引脚 复位信号输入端,高电平有效(结合P27周期),再次引脚加上持续时间大于2个机器周期(24个时钟振荡周期)的高电平时,就可以对单片机完成复位操作。
(2)EA /Vpp (31引脚) EA 为外部程序存储器访问允许控制端。
【访问内ROM/RAM 用MOV 外ROM/RAM 用MOVX CPU 先访问片内】 2.程序状态寄存器PSWCyP—OVRS0RS1F0AcD7D6D5D4D3D2D1D0D0HPSW图2-3 PSW 的格式Cy (PSW.7)进位标志位 P (PSW.0)奇偶标志位表2.2 RS1、RS0与所选的四组工作寄存器区的对应关系 RS1 RS0 所选的四组寄存器0 0 0区(内部RAM 地址00H~07H ) 0 1 1区(内部RAM 地址08H~0FH ) 1 0 2区(内部RAM 地址10H~17H ) 1 13区(内部RAM 地址18H~1FH )3.程序存储器,ROM 4KB; 内部数据存储器,RAM 256B4.表2-3 5个中断源的中断入口地址中断源入口地址 外部中断0(0INT ) 0003H 定时器0(T0) 000BH 外部中断1(1INT ) 0013H 定时器1(T1) 001BH 串行口 0023H5.内部数据存储器地址为00H~1FH 的32个单元是4组通用工作寄存器区。
用户可以通过指令改变PSW 中的RS1、RS0这两位来切换当前的工作寄存器区。
用户RAM 区(堆栈、数据缓冲区)第0组工作寄存器区第1组工作寄存器区第2组工作寄存器区第3组工作寄存器区可位寻址区7FH 30H 2FH 20H 1FH 18H 17H 10H 0FH 08H 07H 00H图2-4 89C51片内RAM 的结构6.【大题】堆栈指针SP (先入先出)堆栈指针SP 的内容指示出堆栈顶部在内部RAM 块中的位置。
它可以指向内部RAM 00H~7FH 的任何单元。
单片机复位后,SP 中的内容为07H 。
7.89C51单片机共有4个双向的8位并行I/O 端口,分别记为P0、P1、P2和P3。
当P0口用作通用I/O 口时,由于需要在片外接上拉电阻,端口不存在高阻抗(悬浮)状态,因此为一个准双向口。
(高8位,P2口,只有P0接上拉电阻)。
P1口“读引脚”输入时,必须先向锁存器写1.。
(所有P1口均适用,暂时断开外设与内部连接)8.内部时钟方式(适用于整个系统,只有一块单片机)电路中的电容C1和C2的典型值通常选择为30pF 左右。
【图2-10 内部时钟方式的电路 P26】9.时钟周期(振荡周期),一个状态周期由两个时钟周期构成。
10.机器周期:89C51的一个机器周期包括12个时钟周期,分为6个状态:S1~S6。
每个状态又分为两拍:P1和P2。
11.以累加器为目的的操作数的指令 MOV A,Rn ;A Rn →)(,n=0~7 MOV A,@Ri ;A Ri →))((,i=0,1 MOV A,Direct ;A Direct →)( MOV A,#data ;A data →#12.堆栈操作指令(1)进栈指令—PUSH direct功能:首先将栈指针SP加1,然后把direct中的内容送到栈指针SP指示的内部RAM单元中。
(2)出栈指令—POP direct功能:将栈指针SP指示的栈顶(内部RAM单元)内容送入direct字节单元中,栈指针SP减1。
13.累加器A与外部数据存储器传送指令MOVX A,@DPTR ;A))((,读外部RAM/IODPTR→MOVX A,@Ri ;A(,读外部RAM/IORi→)MOVX @DPTR,A ;))A→,写外部RAM/IO(((DPTR)MOVX @Ri,A ;))A→,写外部RAM/IO(Ri)((14.MOVC A,@A+DPTR这条指令以DPTR作为基址寄存器,A的内容作为无符号数和DPTR的内容相加得到一个16位地址,把由该地址指定的程序存储器单元的内容送到累加器A。
15.乘法指令BAMUL→AB⨯AB;除法指令BDIV→商AB→,余数A(;)A/B16.逻辑与指令(作用清0)ANL A,Rn ;7∧n→AR(=A),~()nANL A,Direct ;A)((directA→∧)ANL A,#data ;A)∧#(A→dataANL A,@Ri ;1→∧iRi(=AA((~,)))ANL direct,A ;direct)((∧)direct→AANL direct,#data ;direct()∧#direct→data17.逻辑或操作指令(作用置1)【与1相或为1,与0相或不变】ORL A,Rn ;7→∨nRnAA(=),~)(ORL A,direct ;)directA→∨(A()()ORL A,#data ;A)∨#(A→dataORL A,@Ri ;1,0ARiA→∨i(=(()),)ORL direct,A ;direct)((direct→A∨)ORL direct,#data ;direct()datadirect→∨#18.无条件转移指令:AJMP addrll(跳转范围2K)相对转移指令:SJMP rel比较不相等转移指令:CJNE A,direct,relCJNE A,#data,relCJNE Rn,#data,relCJNE @Ri,#data,rel位变量修改指令:CLR C ;Cy位清“0”CLR bit ;bit位清“0”CPL C ;Cy位求反CPL bit ;bit位求反SETB C ;Cy位置“1”SETB bit ;bit位置“1”条件转移类指令:JB bit,rel ;如果直接寻址位=1,则转移JNB bit,rel ;如果直接寻址位=0,则转移JBC bit,rel ;如果直接寻址位=1,则转移,并直接寻址位清“0”(ORiGin)汇编起始地址命令DB(Define Byte)定义字节命令DW(Define Word)定义数据字命令20.【大题】循环结构的控制(1)初始化(2)作中断处理(3)修改指针(4)判断循环是否结束初始化处理部分修改控制变量循环结束?结束部分结束循环控制循环体NY图4-8 计数循环控制结构21.89C51中断系统共有5个中断请求源:(1)0INT——外部中断请求0(2)1INT——外部中断请求1(3)定时器/计数器T0计数溢出中断请求,中断请求标志为TF0(4)定时器/计数器T1计数溢出中断请求,中断请求标志位TF1(5)串行口中断请求,中断请求标志为发送中断TI或接收中断RI22.TCON为定时器/计数器的控制寄存器,字节地址为88H,可位寻址D7 D6 D5 D4 D3 D2 D1 D0 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 位地址8FH —8DH —8BH 8AH 89H 88H 图5-3 TCON中的断请求标志位23.【大题】功能:IT0—选择外部中断请求0为跳沿触发方式还是电平触发方式;IT0=0,为电平触发方式,加到引脚0INT上的外部中断请求输入信号为低电平有效;IT0=1, 为跳沿触发方式,加到引脚0INT上的外部中断请求输入信号电平从高到低的负跳变有效。
24.【大题】中断允许寄存器IEA9H ET0AAH EX1ABH ET1ACH ES————AFHEA 位地址IEA8HEX0D7D6D5D4D3D2D1D0A8H图5-5 中断允许寄存器IE 的格式【例5-1】若允许片内2个定时器/计数器中断,并禁止其他中断源的中断请求,请编写设置IE 的相应程序段。
● 用位操作指令来编写如下程序 CLR ES ;禁止串行口中断 CLR EX1 ;禁止外部中断1中断 CLR EX0 ;禁止外部中断0中断 SETB ET0 ;允许定时器/计数器T0中断 SETB ET1 ;允许定时器计数器T1中断 SETB EA ;总中断开关位开放 ● 用字节操作指令来编写 MOV IE,#8AH上述的两段程序对IE 的设置时相同的25.89C51的中断请求源有两个中断优先级,每一个中断请求源可由软件定为高优先级中断或低优先级中断。
26.【例5-2】设置IP 寄存器的初始值,使89C51的两个外中断请求为高优先级,其他中断请求为低优先级。
● 用位操作指令SETB PX0 ;设置两个外中断为高优先级 SETB PX1CLR PS ;设置串行口、两个定时器/计数器为低优先级中断 CLR PT0 CLR PT1 ● 用字节操作指令 MOV IP,#05H 参考图:B9H PT0BAH PX1BBH PT1BCH PS——————位地址IPB8HPX0D7D6D5D4D3D2D1D0B8H图5-7 中断优先级寄存器IP 的格式27.【大题】表5-2 中断入口地址表中断源 中断入口地址外部中断0 0003H 定时器/计数器T0 000BH 外部中断1 0013H 定时器/计数器T1 001BH 串行口中断0023H28.【大题】定时器/计数器中断请求的撤销定时器/计数器的中断请求被响应后,硬件会自动把中断请求标志位(TF0和TF1)清“0”,因此定时器/计数器中断请求是自动撤销的。
串行口中断请求的撤销: CLR TI ;清TI 标志位 CLR RI ;清RI 标志位 29.TMOD 格式 注*【C/T 改为T C /】M1C/TGATEM0M1C/TGATEM0D7D6D5D4D3D2D1D089H图 6-2 TMOD 格式TMODT1方式字段T0方式字段30.表6-1 M1、M0工作方式选择 M1 M0 工作方式0 0 方式0,为13位定时器/计数器 0 1 方式1,为16为定时器/计数器1 0 方式2,8位的常数自动重新装载的定时器/计数器11方式3,仅适用于T0,此时T0分成两个8位计数器,T1停止计数31.TR1、TR0——计数运行控制位32.定时器/计数器的四种工作方式【P99】●方式0 2^13●方式1 2^16●方式2 自动重装入方式2^8●方式3 只有T0有,T1没有方式3下,定时器/计数器T0分为两个独立的8位计数器TL0和TH0,TL0使用T0的状态控制位TC/、GATE、TR0、0INT,而TH0被固定为一个8位定时器。
(TL0既可定时也可计数,TH0只定时)33.【大题】方式1的应用:【例6-1 P103】34.【大题】【例6-2 P105】35.为了使LED显示器显示不同的符号或数字,要把不同段的发光二级管点亮,这样就要为LED显示器提供代码,因这些代码可使LED相应的段发光,从而显示不同字型,因此该代码称为段码(或称为字型码)。