1.单片机硬件组成8位CPU 2.单片机的引脚功能。
ALE,EA,PSEN,RSTALE/PROG:地址锁存允许/片内EPROM编程脉冲① ALE功能:用来锁存P0口送出的低8位地址② PROG功能:对片内FLASH存储器编程时,此引脚输入编程脉冲。
EA/Vpp:①EA:外部程序存储器访问允许控制端。
接高电平:不超过0FFFH(4KB)单片机读取片内ROM(4KB)程序。
超过4KB 自动读取片外60KB(1000H-FFFFH)ROM程序。
接低电平:只读取外部ROM的内容,范围是0000H-FFFFH,4KB ROM不起作用②Vpp:对片内FLASH 进行编程时,Vpp引脚接入编程电压PSEN: 片外ROM选通信号,低电平有效RST复位信号输入端,高电平有效。
加上持续时间大于两个机器周期高电平可以使单片机复位。
3.单片机四个I/O区别P1,P2,P3都是8位准双向I/O口,具有内部上拉电阻,他们都可以当作通用的I/O输入,但都应先向端口输出锁存器写入1。
都可以驱动4个LS型TTL负载。
但P1口是专为用户使用的I/O口,P2可以作为普通的,P3作为通用的。
而P0口是8位漏极开路的双向I/O口,它要作为通用I/O使用必须加上拉电阻变成准双向口,也必须写入1,并且它可以驱动8个个LS型TTL负载。
4.单片机P3口的第二功能5.状态寄存器PSW格式及意义。
OV,P,寄存器选择。
PSW格式意义:PSW的不同位包含了程序运行状态的不同信息,其中4位保存当前指令执行后的状态,以供程序查询和判断。
OV(溢出标志位):当执行算术指令时,用来指示运算结果是否产生溢出。
如果结果产生溢出,OV=1;否则,OV=0P(奇偶标志位):该标志位表示指令执行完时,累加器A中1的个数是奇数还是偶数。
P=1,表示A中1的个数为奇数。
=0时相反。
RS1、RSO(4组工作寄存器区选择控制位1和位0):这两位用来选择片内RAM的4组工作寄存器区中的某一组为当前的工作寄存区。
(00H-7FH)6.PC指针的作用:用于存放下一条将要执行指令的地址。
当一条指令按PC所指向的地址从程序存储器中取出之后,PC的值会自动加1即指向下一条指令。
用户不可对它直接进行读写,因其是不可直接寻址的。
7.单片机的存储器结构:程序存储器,数据存储器,特殊功能寄存器,位寻址区。
单片机的存储器结构8.中断入口地址9.数据存储器的空间分配位寻址区的地址分配:地址为20H~2FH的16个单元字节,每个字节8位,一共128个位可进行位寻址,也可进行字节寻址。
这128位每位都有一个地址,从00H~7FH。
有地址,CPU就可以通过指令进行访问,即可以通过位操作指令对这些位进行置1、清0、取反等操作。
10.堆栈的概念,单片机堆栈初始化状态,生长方向,以及相关操作指令概念:在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循顺序存取和后进先出的原则,这个RAM区叫堆栈。
SP=07H为初始化状态,生长方向为向上生长型(即每向堆栈压入一个字节数据时,SP内容增加1)。
操作指令为数据压入堆栈(SP自动加1)和数据弹出堆栈(SP自动减1)11.主要的特殊功能寄存器:①堆栈指针SP②P0,P1,P2,P3口寄存器③ACC累加器④数据指针DPTR⑤寄存器B⑥看门狗定时器WDT12.机器周期,指令周期与指令时序。
MOVX等读写时序。
机器周期:CPU完成一个基本操作需要的时间称为机器周期。
一个周期完成一个基本操作,几个操作完成指令。
12个时钟周期(单片机基本时间单位)为一个机器周期,分为六个状态S1-S6(AT89C51) T=1/f(晶体频率)指令周期:执行一条指令所需的时间。
指令时序:按字节分为单,双,三字节指令。
执行指令可能用一个或多个机器周期。
按执行时间分,单字节为单机器周期,双,三字节为双机器周期,而单字节乘除为4机器周期。
MOVX读写时序:单字节双周期先在ROM读取指令,然后对外部RAM进行读或写操作。
第一次机器周期时,与其他指令一样,第一次读指令操作码有效,第二次无效。
第二周期时,对外部RAM访问,不产生读指令操作。
13.复位后单片机各个特殊功能寄存器的状态。
0000H:PC指针、数据指针DPTR 00H:累加器Acc、PSW、寄存器B、数据指针DPTR1低子节DP1L、DP1H、数据指针DPTR0低子节DP0L、DP0H 07H:堆栈指针SPXXX00000B:中断优先级控制寄存器IP 0XX00000B:中断允许控制寄存器IE14.DPTR的功能,DPH,DPL功能:是一个16位的特殊功能寄存器,存放16位地址,作为片外RAM寻址用的地址寄存器(间接寻址),故称数据指针,也可以将外部RAM中地址的内容传送到内部RAM的地址所指向的内容中。
高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。
DPH和DPL的地址分别为83H、82H。
15.单片机最小系统16.七种寻址方式17.循环顺序结构例: 50ms 延时子程序。
设晶振频率为12MHz ,则机器周期为1us 。
DEL: MOV R7,#200 ;1MCDEL1: MOV R6,#123 ;1MCNOP ;1MCDJNZ R6,$ ;2MCDJNZ R7,DEL1 ;2MCRET ;2MC延时时间:t=1+200[(1+1+2*123)+2]+2≈50000us=50ms18.分支判断类型例:设变量x 以补码形式存放在片内RAM 30H 单元中,变量y 与x 的关系是:编程根据x 的值求y 值并放回原单元。
ORG 0100HSTART:MOV A,30HJZ NEXT ;x=0,转移ANL A,#80H ;保留符号位JZ ED ;x>0,转移MOV A,#05H ;x<0,不转移ADD A,30HMOV 30H,ASJMP EDNEXT:MOV 30H,#20HED:SJMP $⎪⎩⎪⎨⎧<+=>=0,50,200,x x x H x xy ,1020,105,10x x y H x x x >⎧⎪==⎨⎪+<⎩19.中断源的概念。
单片机的中断源,中断入口地址概念:中断是指由于某种事件的发生,CPU暂停执行当前的程序,转而执行另一程序或事件,处理完毕后又返回执行原来中止的程序。
把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源中断源:①INT0:外部中断0,中断请求信号由INT0引脚输入,中断请求标志IEO,入口地址0030H,优先级第一②INT1:外部中断1,中断请求信号由INT1引脚输入,中断请求标志IE1,入口地址0013H优先级第三③定时器/计数器T0计数溢出发出的中断请求,中断请求标志TF0,入口地址000BH优先级第二④定时器/计数器T1计数溢出发出的中断请求,中断请求标志TF1,入口地址001BH优先级第四⑤串行口中断请求,中断请求标志为发送中断TI 或接收中断RI,入口地址为0023H优先级第第五20.中断的流程:主程序→断点→响应中断请求→中断服务程序→返回主程序→断点→继续执行主程序21.几个重要的寄存器TCON:定时器/计数器控制寄存器,字节地址88H,可位寻址SCON:串行口控制寄存器,字节地址98H ,可位寻址IE:片内中断允许寄存器,控制CPU各中断开放或屏蔽,字节地址A8H,可位寻址IP:中断优先级寄存器,字节地址B8H,可位寻址22.中断优先级的调整用位操作指令:CLR(禁止) SETB (允许)用字节操作指令:MOV I*,#**H23.中断的触发方式:电平触发方式,跳沿触发方式24.中断应用程序举例:通过外部中断1,在中断服务中将B寄存器里的内容左环移一位。
已知: (B)=01h,要求采用边沿触发,低优先级。
此例的实际意义:在INT1引脚接一个按钮开关到地,每按一下按钮就申请一次中断,中断服务则是:依次点亮八盏灯中的一盏。
ORG 0000H (P.134) INT:MOV A,B ;自B寄存器中取数 LJMP MAIN RL A ;左环移一次ORG 0013H ;中断矢量 MOV B,A ;存回B,备下次取用 LJMP INT (MOV P1,A) ;输出到P1口MAIN:SETB EA ;开总中断允许“开关” RETI ;中断返回SETB EX1 ;开分中断允许“开关”CLR PX1 ;0 优先级(也可不要此句)SETB IT1 ;边沿触发MOV B,#01H ;给 B 寄存器赋初值中断服务程序HERE:SJMP HERE ;原地等待中断申请25.MCS-51单片机P1.3为输出,P3.2为按键,每按一次按键,P1.3取反一次ORG 0000HSJMP STARTORG 0003H ;外部中断地址入口LJMP INT_0 ;转到真正的处理程序ORG 0030HSTART: SETB IT0 ;下降沿触发SETB EX0 ;开总外部中断0SETB EA ;开总中断LJMP $ ;跳转到本行INT_0: CPL P1.3 ;取反P1.3RETI ;中断返回END26.定时器T0,方式1初始化假设系统时钟频率采用6MHz,在P1.0引脚上输出一个周期为2ms的方波,如图所示基本思想:方波周期T0确定,T0每隔1ms计数溢出1次,即T0每隔1ms产生一次中断,CPU响应中断后,在中断服务子程序中对P1.0取反,如图6-13所示。
为此要做如下几步工作。
(1)计算计数初值X:机器周期 = 2μs = 2 ⨯ 10−6s设需要装入T0的初值为X,则有(216−X)⨯2⨯10−6=1⨯ 10−3,216−X=500,X=65036。
X化为十六进制数,即: 65036 = FE0CH 。
T0的初值为TH0 =FEH,TL0 = 0CH。
(2)初始化程序设计:采用定时器中断方式工作。
包括定时器初始化和中断系统初始化,主要是对寄存器IP、IE、TCON、TMOD的相应位进行正确的设置,并将计数初值送入定时器中。
(3)程序设计:中断服务子程序除了完成所要求的产生方波的工作之外,还要注意将计数初值重新装入定时器,为下一次产生中断做准备。
本例,主程序用一条转至自身的短跳转指令来代替。
ORG 0000H ;程序入口 IT0P:MOV TL0,#0CH;中断子程序,T0重装初值RESET: SJMP MAIN ;转主程序 MOV TH0,#0FEHORG 000BH ;T0中断入口 CPL P1.0 ;P1.0的状态取反LCALL IT0P;转T0中断处理程序IT0P RETIORG 0030H ;主程序入口 ENDMAIN: MOV TMOD,#01H;设置T0为方式1定时MOV TL0,#0CH ;T0初始化,装初值的低8位MOV TH0,#0FEH;装初值的高8位SETB ET0;允许T0中断程序说明:当单片机复位时,从程序入口 SETB EA;总中断允许0000H跳向主程序MAIN处执行。