版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章常用(chn yn)术语 总线(zn xin)BUSDB、CB、AB(传输地址(dzh)信息,位数 与存数量有关:N跟-2N字节)。 输入输出接口(I/O)连接外设CPU的电路。 数据发送与接收每个寄存器有两个控制门: E高-接收数据,G高-发送数据。 计算机字长计算机并行处理二进制数字的 位数。位数越多,精确度越高。 微型计算机=CPU+半导体存储器+外设硬件;单片机=微机压缩在一块电路板上。字节Byte:8位二进制数;字Word:16位二进制。十进制数转换成二、十六进制数方法:(1) 整数部分: 除基取余法。分别用基数 R 不断 地去除 N 的整数, 直到商为零为止, 每次所得的余数
2、依次排列即为相应进制的数码。最 初得到的为最低有效数字, 最后得到的为最高有效数字。(2)小数部分: 乘基取整法。分 别用基数 R(R=2或16)不断地去乘N 的小数,直到积的小数部分为零(或直到所要求的 位数) 为止, 每次乘得的整数依次排列即为相应进制的数码。 最初得到的为最高有效 数字, 最后得到的为最低有效数字。 4、与运算1011B1001B=1001B;或运算:10101B+01101B=11101B;非运算:;异或运算:1010B0110B=1100B原码X原:正数的符号位(最高位)用0表示,负数用1来表示,数值部分用真值; 0的原码有两个;表示范围从-127+127. 反码X反
3、: 符号位不变,正数的数值部分反码=原码,负数的数值部分反码=原码取反。 补码X补:符号位不变,正数的数值部分补码=原码,负数的数值部分补码=反码+1. 补码的作用在于把减法转化为加法,如3-2为3原+-2补定点数小数点的位置是固定不变的数。可表示纯整数、纯小数和混合小数。特点是 表示的数的范围有限。一般用得少。浮点则多用。 浮点数小数点的位置不是固定不变的数。表示(biosh)的方法:纯小数2n=尾数(wish) 2阶码。 尾数(wish)带符号的定点小数; 阶码带符号的纯整数.第二章Part 1控制器 程序计数器PC(16位):用来存放下一条即将执行的指令的存储单元的地址。系统将自动将 P
4、C的内容送到指令寄存器中。开机或者复位,PC的内容清零,计算机自动从0000H地 址开始执行指令。执行指令时,CPU将自动修改PC,PC=PC+1。 指令寄存器IR(9):用来存放从存储器送来的即将执行的指令的地址。是一个9位寄存器。 指令译码器ID:对指令寄存器的指令进行译码,转变为逻辑电路所需的逻辑电信号。 堆栈指示器SP:存放特殊数据的8位专用的片内RAM存储器空间。又称堆栈指针。运算器 算数逻辑单元ALU:可以实现对8位二进制数据信息的算术运算和逻辑运算。 累加器ACC(A):8位寄存器,通过暂存器TMP2与ALU相连,在ALU进行运 算时用于提供操作数和存放中间(zhngjin)结果
5、。 寄存器B:与ACC配合(pih)使用,执行乘除法。乘法运算时,一般将被乘数存放在ACC中, 乘数(chn sh)(即第二个操作数)放在B中。将乘机的低位结果放在ACC中,高位结果放在B中; 除法运算时,将被除数放在ACC中,除数放在B中。商放在ACC中,余数放在B中。B 也可以作为普通寄存器使用。 程序状态寄存器PSWD7D6D5D4D3D2D1D0CACF0RS1RS0OVF1P C进位标志位:D7有进位或借位时C=1,否则C=0 AC辅助进位标志:D6有进位或借位时AC=1(包括半个字节进位),否则为0。用于BCD码运算。 FO、F1软件标志:用户定义。 RS1、RS0工作寄存器选择位
6、:选择四个工作寄存器组中的一组投入工作。 OV溢出标志:用于有符号数运算,超出-128+127时,OV=1.否则OV=0。 P奇偶标志:A中1的个数为奇数P=1,否则P=0。I/O接口:4个8位并行输入输出(I/O)接口,即P0, P1,P2和P3口,用来传送数据或地 址信号。它们是准双向输出输入口。P0和P2口除了可以传送数据,还可以在扩展存储 器系统时作为地址总线。4、串行接口:集成了一对可编程全双工串行通信接口。可以实现单片机的串行通信。5、定时/计数器:集成2个16位的可编程定时/计数器T0和T1。其主要部件是一个16位 加法计数器。计满了就清零,再重新计数。中断系统数据指针DPTR:
7、16位,访问片外ROM、 RAM和扩展I/O时用。振荡器:CS-51系列单片机内含一个高增益反相放大器,外接晶体和微调电容,便成为 自激振荡器。其功能是为系统提供时钟信号源。 Part 2MCS-51存储空间分程序存储器、片内数据存储器、片外数据存储器。 程序存储空间:片内片外为同意的地址(dzh)范围0000H0FFFFH,共有64KB存储单元 数据(shj)存储空间:片内地址为00H0FFH,256B;片外为0000HOFFFFH,64KB。 MCS-51单片机采用哈佛(Harvard)结构,把程序和数据存储器分开,各自独立,各有自己的寻址系统、控制信号和功能(gngnng)。因访问指令不
8、同,地址可以重叠。A-程序存储器以程序计数器PC为指针,运行时通过16根AB,可寻址范围为 片内片外 64KB(0000H0FFFFH)。 通过MOVC指令进行访问 编址规律:先片内、后片外,片内片外地址连续,二者一般不作重叠。 EA0,只访问片外程序存储器。 EA1,先访问片内程序存储器。当程序计数器PC0FFFH(51子系统)或PC1FFFH (52 子系统),再去访问片外程序存储器。 地址分配:片内4K(0000H0FFFH):对于小程序,片内的空间已经够用,可以存放2000 多条指令。对于大程序,需要扩展到片外:片外64K(0000HFFFFH); 复位:复位后PC里的内容为0000H
9、。0000H是程序启动地址,通常在该单元放一条绝对 跳转指令,跳向主程序的入口地址; 程序存储器有7个单元留作特殊用途。不能存放其他指令。第一单元为0000H。复位后程序执行起始地址(PC0000H)。另外6个对应于6个中断源(51子系列仅有5个),作为中断服务程序入口地址(在64K存储器中)7个单元相隔很近,放不下稍长程序代码。它们实际存放一条无条件转移(zhuny)指令,分别转移到用户程序真正起始地址或对应中断服务程序真正入口地址:主程序实际从0030H开始存放,复位后,通过跳转指令(zhlng)LJMP转移至0030H开始执行。B-数据(shj)存储器 片外数据存储器有64K,用MOVX
10、访问; 片内数据存储器有256字节的RAM(00H0FFH),用MOV访问。 低128B(00H7FH)供用户使用,分为三个区域: 工作寄存器(00H1FH)32单元分为4组每组8个单元,用R0R7表示,由PSW选择工作组(右图所示) 位寻址区(20H2FH)16个单元,每个单元8位,每一位都规定了一个地址,称为位地址 数据缓冲区(30H7FH)共80个单元,为用户RAM区,可以根据需要使用,只能做字节寻址。 高128B(80HFFH)作为特殊功能寄存器SFR区 ACCBPSW 数据指针DPTR,16位,高位字节用DPH、低位字节用DPL。既可以用作一个16位DPTR寄存器,也可以分DPHDP
11、L两个八位寄存器使用。 SP,系统复位时SP初始值07H,堆栈实际(shj)从08H开始。为避免工作寄存器区,最好将SP设为1FH或更大。 端口寄存器P0P3。 串行数据缓冲器SBUF:串行口对外链接的寄存器,用于存放(cnfng)欲发送和已接受的数据。 定时器/计数器T0和T1,16位,分别(fnbi)由两个八位寄存器组成,T0分TH0TL0,T1分TH1TL1。可以用指令对这四个8位寄存器寻址,不能对16位T0/T1寻址、 中断优先级控制寄存器IP 10IE 11TMOD/TCON 12SCON/PCON 13外部数据存储器Part 3振荡周期:振荡器输出脉冲频率对应的周期 T振=1/fs
12、oc时钟周期(状态周期):振荡器输出脉冲经二分频后成为内部时钟信号,用作于单片机内部各功能部件按序协调工作的控制信号 T时=T状=2/fosc机器周期:六个时钟周期构成一个机器周期 Tcy=T机=6T时指令周期:CPU执行一条指令的时间,以机器周期为计量单位,单周期指令、双周期CPU时序:以S1S6表示一个机器周期的6个T时,以P1 P2表示每个T时的两个节拍,则一个T机依次有S1P1、S1P2S6P1、S6P2 12个T振。除访问片外RAM时,ALE(地址锁存信号)脉冲每个Tcy的S1P2至S2P1及S4P2至S5P1期间发生一次。它包含有单字节、双字节指令。两者都在S1P2期间由CPU取指
13、令(读指令),PC自动加1;双字节指令在同一个T机的S4再读第二字节,PC+1PC,而单字节指令在S4也读操作码,因是单字节指令读后丢弃不用。PC不加1。两种指令在S6P2结束时都完成操作。若是单字节双周期指令在两个T机内读4次,后3次读后丢弃(diq)。Part 41、复位电路:MCS-51单片机的RST脚上出现10ms以上(yshng)高电平,持续时间大于两个机器周期,实现复位。有两种方式:上电复位、手动复位。(又称,加电复位、按复位按钮复位) 复位(f wi)后,SP07H,P0P3都为FFH,其余都为0 Part 5 单片机引脚与功能 AB总线(地址总线)由P0、P2组成16位DB总线
14、(数据总线)由P0分时复用8位CB总线(控制总线)有ALE、PSEN、RST、 EA、INT0、INT1、T0、T1、WR、RD等10根。第三章1.1指令系统概述CPU指令两种形式:二进制代码(机器语言指令)、助记符(汇编语言指令)。格式:机器指令-操作码(一个字节) 操作数(02个字节); 汇编指令-操作码 目的操作数 源操作数3种。操作数类型:#立即数、寄存器操作数、存储器操作数、位操作数(寄存器或存储单元中二进制数的某一位,只取“真”或“伪”两个值;可以对片内RAM中20H2FH单元中128位和地址为8的倍数的特殊功能寄存器中的各位进行操作)堆栈,SP寄存器。1.2指令(zhlng)符号
15、说明Ri(i=07)表示(biosh)工作寄存器中8个工作寄存器R0R7之一.Rj(j=01)表示工作(gngzu)寄存器中可作地址寄存器的R0或R1。direct代表8位内部数据存储器单元的地址或特殊功能寄存器地址.#data表示8位常数.#data16代表16位常数.addr16代表16位目的地址。addr11:表示11位目的地址。rel:相对地址,一般用标号表示,汇编程序自动计算rel的值bit:代表内部RAM或特殊功能寄存器中的直接寻址位。/bit取反。DPTR:16位地址寄存器(X):片内X单元或X寄存器中内容(X):X所指向存储单元中内容2.1寻址方式立即寻址方式(23字节)MOV
16、 A,#0A6H直接寻址方式 MOV A,38H 可访问片内RAM的低128字节(高不能用)和特殊功能寄存器SFR;SFR只能用直接寻址;寄存器寻址 MOV A,R1 该指令两个操作数均采用寄存器,涉及寄存器有A,B,R0R7。寄存器间接寻址 MOV A,R1 片内高128位只能用寄存器间接寻址方式;访问片内RAM的低128字节或片外RAM 中的256字节时,需要用工作寄存器组中的RO或R1作为间接地址寄存器;访问片外的64K数据存储器时,用DPTR。基寄存器加变址寄存器简介寻址 MOVC A,A+DPTR 基寄存器为DPTR或PC,变址寄存器为A。访问以基寄存器为基准的0255个单元。相对寻
17、址 目标地址=PC+rel=指令存储地址+指令的字节数+rel等价于JC TEST1 相对地址用标号标出,由汇编程序或人工计算出rel位寻址方式 MOV C ,0AH 该寻址方式用于访问内部RAM中位寻址区的128位和SFR中的93位。两个操作数均采用为寻址方式。3.1数据传递指令Part 1数据传输类指令数据传送类指令29条dataA directRiRj directMOV类指令(zhlng)(本笔记中Ri对应书上Rn,Rj对应书上Ri) 用于内部8位数据(shj)传递:除R之间不能传递,#data只能(zh nn)做源操作数,其余皆可以双向传递,而且direct可以传递给direct。
18、16位二进制数传递只有一条:MOV DPTR,#DATA16.执行之后 DPH=高八位,DPL=低八位。MOVC指令,2条 访问片外RAM 16位的传送指令,是查表指令,用于将程序存储器中的数据传送至A。 MOVC A,A+DPTR:DPTR可以等于任何值,寻址范围为64K MOVC A.A+PC:PC指向下一条指令,所以寻址范围为该指令以下256个单元MOVX类指令,4条 用于在累加器A与I/O口或外部扩展的RAM之间传送数据 1)MOVX A,DRTR 和 MOVX DPTR,A用于A与外部数据存储器或I/O口之间,地址16位 2)MOVX A,Rj 和 MOVX Rj,A用于两种情况:与
19、I/O口或外部扩展的RAM的地址空间由CPU的低8位确定;或者与I/O口或外部扩展的RAM的地址空间由16位线确定,此时16位地址号的低8位由Rj指示,高8位由P2口输出。 如MOV P2,#48H MOV R1,#60H = MOV DPTR, #4860H MOVX A,R1 MOVX A,DPTR 堆栈操作指令(操作数可以采用直接寻址或寄存器寻址如A,Ri,PSW等) 进栈指令PUSH direct :SP+1 出栈指令POP direct : SP-1交换指令XCH指令(zhlng),交换A和源操作数内容 XCH A,direct XCH A,Ri XCH A,RjXCHD和SWAP指
20、令(zhlng):半字节交换指令 XCHD A,Rj ;低半字节(z ji)交换,高半字节不变 SWAP A ;高四位第四位互相交换 Part 2算数运算类指令针对8位二进制数,包括无符号数、有符号数(补码)、压缩BCD码和非压缩BCD码;MCS-51单片机的ALU仅执行无符号二进制数的算术运算,借助进位标志,可进行多精度加减运算,也可以对压缩BCD码运算;借助溢出标志,可以对有符号数进行2的补码运算。不带进位位的加法 ADD A, Ri ADD A, Rj ADD A, direct ADD A, #data 带进位的加法指令,注意CLR C ADDC A, Ri ; AA+Ri+C ADD
21、C A, Rj ; AA+(Rj)+C ADDC A, direct ; AA+direct+C ADDC A, #data ; AA+#data+C 带借位的减法指令 SUBB A, Ri ;AA-C-Ri (i=07) SUBB A,Rj ;AA-C-(Rj)(j=01) SUBB A, direct ;AA-C-direct SUBB A, #data ;AA-C- #data 乘除 MUL AB ;乘积低八位放A,高八位放B DIV AB;A/B,商放A,余数放B 十进制调整指令 DA A;因为BCD码中10101111在十进制中没有对应项,当运算结果大于9时,会产生错误。DA指令就是
22、对BCD码十进制数加法运算结果作加6进行修正,调整为2位BCD码数。 只能用在对BCD码数进行ADD或ADDC操作后使用,减法不适用。有进位时C=1增、减量指令(zhlng)(仅影响P) INC 目的(md)操作数 ;A Ri Rj direct,注意INC对C无影响(yngxing),需要进位时不能使用 DEC 目的操作数 ; 同上 注意:所读入的端口内容来自端口的锁存器而不是端口的引脚。Part 3 逻辑运算类指令1、与或异或,8位与运算(可用于屏蔽某些信号,需要屏蔽用0,不需要用1) ANL A,源操作数;Ri direct Rj #data ANL direc,源操作数;A #data
23、或指令(可用于置位,需要需要置位与1或,不需置位与0或) ORL A,源操作数;Ri direct Rj #data ORL direc,源操作数;A #data异或指令(用于对目的操作数某些部位取反,需要取反与1异或,不需要与0异或) XRL A,源操作数;Ri direct Rj #data XRL direc,源操作数;A #data对累加器A的单操作数逻辑操作指令A的取反 CPL AA的清零 CLR AA的左循环移位指令 RL A;An+1An, A0A7 (A循环左移1次)A的右循环移位指令 RR A;AnAn+1, A7A0 (A循环右移1次)A的带进位左循环移位指令 RLC A;
24、CD7D0CA的带进位右循环移位指令 RRC A;CD7D0C 注:左移1相当于乘2,右移相当于除2Part 4 位操作类指令 内部RAM中20H2FH单元是位寻址区,该区的每一位都赋予了一个位地址,位地址为:00H7FH;P0、P1、P2、P3、TCON、SCON、IE、IP、PSW、A、B的每一位都有一个位地址;位地址00H7FH在内部RAM中,地址连续,位地址80HFFH在特殊功能寄存器中,地址不连续。位地址的表示方法:直接地址方式如50H等;点操作符方式如PSW.5;位名称方式如RS0,RS1,TR0,TR1等;用户定义名方式,伪指令bit,定义某个位地址的标号。格式: 符号 bit
25、位地址 FLG bit F0; 经定义,指令中用FLG代替F0。 AL bit P0.0; P0.0的位地址赋予给AL。位传送指令:要想传送位数据,只能通过C来完成。 MOV C,bit MOV bit,CCPL CCLR CSETB CCPL bitCLR bitSETB bitANL C,bitANL C, /bitORL C, /bitORL C,bitC的其他(qt)指令;取反;清零;置1; bit取反; bit 0(清零); bit 1(置1); C C bit(C和bit相与); CC /bit,“/”表示取反,但; 不改变原来bit中的值; CC /bit (位相或,bit值不变
26、); C C bit (C和bit相或)位条件(tiojin)转移指令 若条件(tiojin)满足则PC值改变,实现程序的转移。否则,顺序执行后面程序 位变量可以是C或内部RAM单元中可直接寻址的位。JC rel ;当C=1时, 转移到目标地址: PC+2+relPCJNC rel ;当C=0时, 转移到目标地址: PC+2+relPCJB bit, rel ;当bit=1时, 转移到目标地址: PC+3+relPCJNB bit, rel ;当bit=0时, 转移到目标地址: PC+3+relPCJBC bit, rel ;若bit1 则清bit=0,并转移到目标地址: PC+3+relPC
27、Part 5 控制转移类指令1、无条件转移指令AJMP addr11;绝对短跳转指令:该指令执行时,先把PC+2,然后把addr11送入PC低11位,高五位不变。可以实现2KB以内无条件转移。编程时,addr11用标号代替。LJMP addr16;长跳转指令:将PC=addr16。编程时,addr16用标号代替即可。SJMP rel;相对短跳转指令:目标地址=源地址+2+rel,偏移量用8位补码-128127,编程时用标号。JMP A+DPTR;间接跳转指令:PC=A+DPTR条件指令转移判别A JZ rel;A=0转移 JNZ rel;A0转移比较不相等则转移的指令 CJNE A, #dat
28、a, rel ; #data=A, PC=PC+3, C =0 ;A #data, PC=PC+3+rel, C =0 ; A后者, 0C; 否则(fuz), 1C。通过查询(chxn)C,可以判断大小。减一不为零则跳转 DJNZ Ri, rel DJNZ direct, rel将Ri(direct)中8位无符号数中的内容减1并送回Ri(direct)。若新的Ri(direct)不为0,则PC+2+rel形成新地址,送给PC,程序便转向指定的目标地址去执行。否则结束循环,顺序执行程序。调用和返回指令子程序调用指令 ACALL addr11;绝对调用指令:先将PC+2,然后将断点压入堆栈,再将a
29、ddr11送入PC低11位,高5位保持不变,实现2k内跳转。 LCALL addr16;长调用指令:先将PC+3,然后将断点送入堆栈,将addr16送入PC,实现64K随意跳转子程序返回指令 RET ;子程序返回指令:子程序最后一条指令,将堆栈顶端相邻两个单元(高8位先出来+低8位后出来)内容弹出至PC,SP-2,回到断点处 RETI;中断返回指令:中断程序最后一条指令,与RET功能相似。NOP空操作指令Part 6 伪指令(不产生目标代码)定位伪指令ORG ORG nn;nn为此指令后第一条指令或第一个数据的存放地址,多条ORG之间不重叠赋值伪指令EQU 字符串 EQU 常数值 CHECK
30、EQU 28H;使CHECK=28H ADD A CHECK;(A)+(28H)定义字节伪指令DB 标号:DB 字节常数或字符串 功能是将8位数据(或8位数据组)x1, x2, xn依次存放在从当前程序存储器地址开始的存储单元中。xi可以是8位数据、ASCII码(加)、表达式,也可以是括在单引号内的字符串。两个数据之间用逗号“,”分隔。 DATA: DB 2AH,30H,9DH ;将2AH等3个数据装入DATA开始的3个单元中。 定义字伪指令DW 标号:DW 字或字串 功能是将双字节数据或双字节数据组依次存放在从标号指定地址单元开始的存储单元中。其中,xi为16位数值常数,占两个存储单元,先存
31、高8位(存入低位地址单元中),后存低8位(存入高位地址单元中)。该伪指令经常(jngchng)用于定义一个地址表。ATA: DW 2AB6H,1E02H ;将2AB6H等2个数据装入DATA开始(kish)的4个单元中。 5、定义(dngy)位地址符号伪指令BIT 字符名称X BIT 位地址n 功能是用于定义某特定位的标号,将位地址n的值赋予字符名称x。程序中凡出现该字符名称x就代表该位地址。即用指令中的标号来代替项所指出的位。位地址n可以是绝对地址,也可以是符号地址。 P11 BIT P1.1 ;P1口位1地址91H赋给P11定义存储空间伪指令DS DS n 功能是从标号指定地址单元开始,预
32、留n个存储单元,汇编时不对这些存储单元赋值。标号可以用其他形式表示。n可以是数据,也可以是表达式。 ORG 1000H DATA: DS O7H ;从地址1000H开始保留7个单元汇编结束伪指令END 功能是放在汇编语言源程序的末尾,表明源程序的汇编到此结束,其后的任何内容不予理睬。 第四章Part 1概述格式标号:操作码 操作数 1,操作数2 ;注释 标号第一个字符必须是英文字母操作数有三种类型:立即数、寄存器操作数、存储器操作数;有五种合法表示形式:2B、10D、16H进制,工作寄存器或特殊功能寄存器,符号地址如ATM、LOOP1(在某处已定义),带加减算符的表达式如ATM+3(MOV A
33、,DTM+3),$(SJMP $;跳转到自身)汇编语言程序设计步骤:分析问题确定数学模型确定算法设计程序流程图安排寄存器和存储空间编制汇编语言源程序上机调试技巧模块化的程序设计方法(划分模块的原则):每个模块具有独立的功能,产生一个明确的结果;模块之间的控制偶合(指模块的进入和退出条件及方式)应尽量简单;模块之间的数据偶合(指信息交换的方式, 交换量的多少及频繁程度)应尽量少;模块长度适中。太长调试困难失去了其优越性;太短则模块连接又太复杂。编程技巧:尽量采用循环结构和子程序。可以大大减少程序的总容量,提高效率,节省空间;尽量少用无条件转移指令,使程序条理更清楚,减少错误;累加器是信息传递的枢
34、纽,在子程序中一般不必把累加器内容压入堆栈。Part 2程序设计(chn x sh j)要将书上的程序都看看!1、顺序程序设计(shj)2、分支(fnzh)程序设计具有两个或两个以上流向的程序,特点是程序中含有转移指令。分无条件转移和有条件转移,有条件转移分A判别转移、比较条件转移、减一条件转移和位控制条件转移等。3、循环程序设计步骤:初始化部分:设计循环计数器、建立地址指针、设计除变量等 循环体:反复循环的那部分 循环控制部分:修改指针、修改变量、进行判断决定继续循环或者结束 结束部分技巧:先处理后判断,还是先判断后处理 (RRCRLC) 循环次数已知,用计数器控制;未知,可以按问题的条件控
35、制循环,还有逻辑尺 单重循环或多重循环(不允许交叉,不允许从外部跳入循环内部) 查表程序设计(已知变量X,通过查找表格求该函数值。) MOVC A,A+DPTR(查表前保护DPTR:PUSH DPH;PUSH DPLPOP DPL;POP DPH) MOVC A,A+PC DB子程序设计(子程序调用ACALL/LCALL或中断调用)简化主程序 第一条语句有子程序名称标号 子程序以返回指令RET为结尾 在主程序中设置堆栈(若需调用子程序,必定使用堆栈,所以主程序要设置堆栈栈底,将栈底送至SP) 保护和恢复现场(保护现场是将主程序中需要保护的内容送到闲置的寄存器或堆栈,恢复现场是逆过程,一般在子程
36、序结尾部分完成)运算程序设计 n字节无符号加法;有符号单字节加法(两个加数扩展为一个字来表示,如果是负数则高八位为11111111B,正数为00000000H;高八位的和数的进位舍弃)第五章Part 1存储器的概述(i sh)存储器的性能指标:存储容量(cn ch rn lin)、存取时间、功耗、可靠性等;存储器用来存放程序和数据(shj)的,分为 普林斯顿结构CISC和哈佛结构RISC。存储容量是指其能存储的二进制数的位数。位bit表达一个二进制信息1/0;字节Byte,一字节由8bit组成,作为一个存储单元,计算机信息大多以字节形式存放;字Word,他的长度叫字长,2字节,计算机处理数据时
37、,一次存取、加工和传递的一组二进制数。 存储器的容量通常用“芯片单元数数据线位数”(即=字数字长=字节数X 2 X字长)表示。例如:某存储器芯片有8192个单元,数据线为8位,则容量为8192x8位,8192B,8KB(1024记为1K);存储器单元数与地址线有关:单元数=2地址线根数,所以容量M=2地址线根数B 综上M=2地址线根数 x 8位=2地址线根数B=2(地址线根数-10)KB 芯片前两位为程序,后23位为容量如27128,27程序,128=16K x 8B=16KB存储器分类 A.内存储器:简称内存,位于计算机主机内部,是计算机的主要存储器,所以,也称主存储器或主存。用来存放CPU
38、当前使用的或经常使用的程序和数据,CPU可以随时直接对主存进行访问(读/写),内存通常由半导体存储器组成。受CPU地址线所限,容量小但速度快。B.外存储器:也称辅助存储器,简称外存,通过专用设备与CPU相连,用于存放待运行的程序和数据。存储容量大速度慢,起扩充存储容量作用。半导体存储器(内存)的分类随机存取存储器RAM:RAM也称读写存储器,RAM中存放的信息当关闭电源时会全部丢失,只能用来存放暂时性的输入输出数据、中间运算结果、用户程序,也常用它来与外存交换信息或用作堆栈。通常人们所说的微机内存容量就是指RAM存储器的容量。动态DRAM(成本低、功耗小,但需要刷新电路,接口电路复杂一般不用)
39、静态SRAM(常用)6264RAM芯片 8K x 8静态RAM芯片(13根地址线,8根数据线,统一+5V电源)A0A12:13根地址线,与单片机地址总线低13位相连I0/O0I7/O7:8根双向数据线,与单片机数据总线相连WE:写信号,低电平允许数据总线上的数据写入选定的片内存储单元中,连单片机写信号OE:数据输出允许信号,内部单元数据总线供CPU读取,与CPU的读RD线连接CS和CS(教材(jioci)上是CE和CE):是片选信号线,CS=1,CS=0时,选中该芯片。Vcc、GNDB. 只读存储器ROM:ROM是一种当写入信息之后,就只能读出而不能改写的固定存储器(又称程序(chngx)存储
40、器)。断电后,ROM中所存信息仍保留不变,所以,ROM是非易失性存储器。因此,微机系统中常用ROM来存放固定的程序和数据,如监控程序、操作系统中的BI0S(基本输出输出系统)、BASIC解释程序或用户需要固化的程序。掩膜ROM由存储器生产厂家根据(gnj)用户要求进行编程,一经制作完成就不能更改其内容可编程PROM出厂时为空白存储器,用户用特殊方法写入程序和数据,只能写一次可擦除可编程EPROM 允许用户按规定的方法和设备多次编程修改典型芯片是27系列产品2764EPROM芯片 8k x 8用单一的+5V电源,所有的输入端和输出端都与TTL电路兼容。CS为片选信号,同6264连接法OE为输出允
41、许信号(注意与CPU的PSEN程序存储器选通信号线)PGM为编程脉冲输入(50ms宽负脉冲作用下程序写入选中单元)VPP为编程电压。正常工作(只读)时,VPP =VCC =+5V 。编程时,VPP =+2125V(高压),PGM端加入宽度为50ms的正/负脉冲(N沟道器件为正脉冲,P沟道器件为负脉)。A0A12为13根地址线D0D7为8位数据线。电可擦除可编程EEPROM 能以字节为单位进行擦除和改写,而不是像EPROM那样整体擦除,也不需要把芯片从用户系统中拨下来用编程器编程,在用户系统即可进行。2817 2K 8闪速存储器,也称闪存,属于EEPROM电改写电擦除,可实现大规模电擦除;可高速
42、编程;闪速存储器可重复使用28F040 512k x 8Part 2 存储器的地址编码方法 CPU与地址总线的连接问题。CPU如何寻找所需要的单元?找出哪个芯片片选(线选法,全译码法,部分译码法);找到该芯片指定的单元地址,又叫做字选。线选法 将存储器芯片的地址线与单片机地址总线(A0A15)低位依次连接,选用一根未连接的单片机地址总线作为存储器的片选信线,该线为1时选中该芯片,芯片CE低电平有效,故片选线上加一非门。 特点:连线简单、地址重叠(n个未使用的地址线,每个单元有2n个地址)、地址空间浪费(Ak作为片选线且其为高电平选中该芯片,在选择其他芯片时Ak只能(zh nn)为0而造成的浪费
43、)外设(I/O)端口的编址有两种方式:存储器映射法(和存储器统一编址,我们用)和I/O映射法(独立空间单独编址)一个端口用一个地址(dzh)线作为寻址线。全译码法 将剩余的所有地址线经译码电路(译码器)产生(chnshng)片选信号。 特点:避免了线选法的浪费地址空间和地址重叠部分译码法 由剩余部分地址线中的部分经译码电路产生片选信号。 特点:折中。Part 3 存储器与CPU的连接(芯片的速度要快于CPU)1、存储器与CPU的信号线连接地址线的连接:按前面介绍的方法片选和字选连接。数据总线的连接:根据数据量的大小来决定。通常是一个字节8位数据。如果扩展为一个字16位,则需要改变连接方式。控制
44、总线的连接:主要是指诸如写,读等这类信号线的连接。一般都是将CPU的写控制WR连接芯片的写允许WR端口,将CPU的读控制ED与芯片的读选通端口OE连接,程序存储器芯片的读选通信号OE则与CPU的PSEN相连!存储器系统设计中常用的接口电路地址锁存器:用来分配地址信号和数据信号给CPU74LS373锁存器具有8路(8D)的芯片。有1个使能端G、1个输出控制端OE、8个输入D,8个输出Q。该芯片又称透明的D型锁存器(这是指当使能端G=1时,输出Q将跟随输入D的变化)。当使能端G=0时,输出端Q与输入D断开,Q的数据保存。这就是锁存的作用。功能见右图总线缓冲器:用于地址总线和控制信号的缓冲它有2个使
45、能端GA和GB,分别控制2组输入A/B和输出端YA/YB并决定数据流向方向地址译码器:地址译码器的功能是对系统的高位地址进行译码,以译码后的输出作为存储芯片的片选信号。主要用于全译码法和部分译码法的译码输出。74LS138译码器有3个输入,因为23=8, 所以它有8个输出。另外,还有3个使能端,E1,E2,和E3 (或用G1,GA和GB表示),当E1=1,E2=E3=0时,才能进行译码输出 。CBA的值决定哪个口Y=0有效,其他都无效。74LS139译码器是双2-4译码器。每个译码器有2个输入BA决定哪个输出端为0有效,因为22=4, 所以它有4个输出。有1个使能端G,当G=0时,才能进行译码
46、输出 。Part 4 MCS-51单片机程序(chngx)存储器的扩展CPU的PESN提供外部(wib)程序存储器ROM的读信号控制RD;CPU的RD提供外部数据存储器RAM的读信号控制RD。扩展时常用的控制(kngzh)信号ALE:地址锁存选通信号(高电平有效)。连接锁存器的使能端G。PSEN :扩展程序存储器(外部ROM)读选通信号(低电平有效)。连接ROM输出允许端OE。CE:外程序存储器的选择信号,即片选信号(低电平有效)。RD和WR:扩展外部数据存储器(RAM)的读、写选通信号(低电平有效)。EA:内外程序存储器的选择。高电平为先内后外;低电平为只选外。内部无ROM区EA接地!由图所
47、示:数据总线DB是双向粗箭头;地址总线AB是又CPU流向外存的单箭头;其余都是无箭头细线。Part 5 单片机数据(shj)存储器的扩展访问(fngwn)程序存储器MOVC ROM访问(fngwn)数据存储器MOV RAM ; MOVC RAM控制线的连接RAM和ROM也不同。RAM的WR信号线与CPU的WR信号线连接;RAM的OE (数据输出允许)与CPU的RD(读)信号连接。对于ROM的OE线也是数据输出允许,它与CPU的PSEN(程序存储器选通)信号线连接。Part 6 程序存储器和数据存储器的综合扩展书上P148页的图!必考!【此处留白手绘】系统图画(thu)过程(线见上页)1、单片机
48、CPUP0.0P0.7输出低八位(b wi)地址信号,与锁存器输入D0D7相连P2.0P2.7输出剩余高位地址信号(xnho),可直接与外部RAM或ROM相连P2.0P2.7中剩余线可连接译码器输入,或者连接非门在连接片外RAM ROM的CE作为片选信号CPU内部无ROM,则EA接地,否则接高电ALE接锁存器的使能端GPSEN接片外ROM的OEWR接片外RAM和I/0端口的WR,RD接片外RAM和I/0端口的RD锁存器D0D7输入与CPU的P21.0P1.7连接输出Q0Q7与片外RAM ROM 的低8位地址线连接使能端G与CPU的ALE连接OE接地有效译码器3-8译码器G1接+5V,G2AG2
49、B接地,C(高位)BA(低位)接P2.0P2.7作为片选信号的地址总线,输出Y0Y7位片选信号2-4译码器 G接地有效,B高A低,输出Y0Y3片选信号I/0端口数据总线D0D7CE接片选信号WR接CPU的WROE接CPU的RD片外RAM: A0AX,D0D7,CE,OE,WR片外ROM: A0AX,D0D7,CE,OE各个存储器芯片地址空间求取:RAM&ROM:片选有效信号+自身00001111书P147I/O口:由编址所用AB决定,若对于I/O口剩余n根AB未用,那一共2n个地址第六章Part 1输入/输出及接口技术的概述I/O接口是位于系统CPU与外设间,用来协助完成数据传送和控制任务的逻
50、辑电路。 其功能:数据缓冲与锁存,各输入装置不能直接挂到CPU的数据线上;实现高速CPU与慢速外设的协调信息转换,实现CPU与外设之间的数据格式转换和匹配通信联络:协调CPU与外设之间的信息交换避免丢失。提供外设状态信息、CPU对外设的控制信号等。接口与端口的区别: 接口是指整个功能电路块。端口是指该电路的某个输入或输出端口。一个电路可以有多个输入输出端口。比如,地址端口,数据端口,状态端口以及控制端口等。I/O端口的编址方法(fngf):统一编址方法(寄存器映射编址)和独立编址方式(I/O端口映射编址)Part 2 CPU与外设之间交换信息的控制(kngzh)方式无条件传送(chun sn)
51、 在CPU与慢速变化的设备交换数据时,可以认为它们总是处于“就绪”状态,随时可以进行数据传送,这就是无条件传送,或称立即传送、同步传送。有条件传送/查询传送 CPU需要先了解情况,先查询外设的工作状态,然后根据情况决定是否传送数据。当外设可以交换信息的情况时(就绪)实现数据输入或输出。若未就绪,则等待并继续查其状态。对多个外设的情况,则CPU按一定顺序依次查询(轮询)。先查询的外设将优先进行数据交换。中断控制方式 CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序。直接存储器方式 外设通过DMA控制器向cpu提出
52、总线请求。cpu在当前总线周期结束后,响应DMA请求,把总线控制权下放给DMA控制器,实现外设和内存直接交换数据,不需要cpu干预。Part 3 中断技术概述 中断的发生是由CPU外部因素决定的,无法在程序中事先安排,调用中断服务子程序的过程是由硬件自动完成的。这不同于程序设计中的“调用子程序”!计算机系统中,用于实现中断功能的硬件和软件的集合,称为中断系统。中断的管理 可屏蔽中断,除了手中断源本身的屏蔽标志控制外,还有一个总的屏蔽标志控制。不可屏蔽中断直通CPU。 中断优先级:比较、中断嵌套、多级嵌套 中断矢量:存放中断服务程序入口的存储单元的地址 中断过程:中断申请后的三个过程,中断响应、
53、中断处理(保护和恢复现场,完成服务)、中断返回(回断点)Part 4 MCS-51单片机的中断系统及其应用1、51单片机中断系统结构中断允许(ynx)控制器IE(A8H):允许该中断源中断则该位置1,禁止中断则该位0 。D7D0中断请求标志及外部中断方式选择(xunz)控制寄存器TCON(88H)TR0、TR1 为定时器T0T1 工作启动和停止控制(kngzh)。与中断无关。触发(chf)清零 外部中断:IT1=0电平触发,CPU在每个周期的S5P2期间对INTI(P3.3)采样;IT1=1下降沿触发(硬件清零)。电平触发方式下,只要INT1为低电平,CPU响应中断后不会(b hu)由软件或硬
54、件清除IE1标志,所以在中断返回之前必须撤销INT1上的低电平,否则CPU有进入中断服务。IT0(P3.2)也是。 定时/计数器中断:计数溢出(回零)时,硬件置TF0=1,提出(t ch)中断;CPU响应中断后,硬件自动清TF0 串行口中断:串行口发送完1帧信息,硬件置TI/RI=1申请中断,CPU响应中断后,不会自动清除TI或RI!串行口的中断标志在特殊功能寄存器SCON(串行口控制寄存器)中。 8051系统复位后,寄存器TCON和SCON的所有位都会被清零。 中断优先级控制寄存器IP(8BH)IP寄存器管理五个中断源的优先级别,某中断源优先级别高则在相应位置1,优先级别低则置0。若同时有某
55、几个中断源在IP寄存器相应位1或为零时,由内部查询确定同级别优先级,查询的顺序是(即优先级外中断0最高,串口最低)INTO-TO-INT1-T1-串行口,复位清零中断请求的撤除 CPU响应中断后,在中断返回(执行RETI)前,必须清除中断标志,否则会错误地再次引起中断。6、中断服务程序最后一条必须为RETI!执行RETI指令:1)清相应中断优先级状态触发器;(RET无此功能)2)返回断点(弹出栈顶的两个(lin )字节到PC)7、下列任何一种情况(qngkung)存在,中断申请将被封锁:1)CPU正在执行一个(y )同级或高一级的中断服务程序。2)当前正在执行的那条指令还未执行完。3)当前正在
56、执行的指令是RETI或对IE,IP寄存器进行读/写指令,执行这些指令后至少再执行一条指令才会响应中断。第七章Part 1 MCS-51单片机并行I/O口的应用51单片机总共有P0、P1、P2、P3四个8位并行准双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。在无片外扩展存储器的系统中,这4个端口的每一位都可以作为准双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。P0双向输入端口外部,P0首先作为地址总线,输出低八位地址,与P2一起寻址外部单元,然后自动转换为数据总线,完成对外部数据的输入和输出。P1普通P2P
57、3作为通用I/O口与P1口类似每一根口线(每一位)都有自己特定的作用p169.当P3口的某一位作为第二功能使用时,将不能再作为通用I/O接口作用,但是其余口线仍然可以作为普通口用。5、并行接口的应用方法:一般的输入/输出指令(与A,Rj,其他P口发生关系)MOV A , P1 ; 相当于输入指令,也可用于其他口(8031的P0P2口不能用)MOV R1 , P1 ; 可以将P1输入的数据直接送到片内RAM的其它单元。MOVX A , Ri ; 既可从扩展的RAM输入,也可从扩展的接口(看成RAM一样)输入,高位地址由P2提供,Ri只提供低位地址。本指令产生RD信号MOV P1,AMOV P1,
58、RiMOVX Ri,AMOVX DPTR,AMOV P3 , P1 ;直接(zhji)从一个口输入,又向另一个口输出,这是较为特殊的一种用法“读修改(xigi)写”指令(zhlng)ANL P1,A 逻辑与ORL P2,A 逻辑或XRL P3,A 逻辑异或JBC P1.1 LOOP 如某位为,跳转并清零CPL P3.0 对接口某位求反INC P2 接口锁存器加DEC P1接口锁存器内容减DJNZ P3,LOOP 减后不为零则跳转MOV P1.1,C 将进位位送接口的某位CLR P1.1 清接口的某一位SETB P1.1 接口的某一位置位简单并行I/O接口扩展 书P172图Part 2定时/计数
59、器结构 51子系列中有两个16位可编程的定时/计数器T0、T1。任一个T在定时到或计数满时,可由程序决定是否产生中断请求。它由加法计数器(加1计数器);TMOD(工作方式)寄存器;TCON(控制)寄存器组成(与中断同)。加法计数器加法计数器为16位,用TH表示高8位,TL表示低8位 。作计数器用,加法计数器对芯片T0、T1脚上输入脉冲计数,每输入一个脉冲,加法计数器加1 ;作定时器用,加法计数器通过机器周期(Tcy)计数间接实现定时,每经过一个Tcy,加法计数器自动加1 。初值可由程序设定。控制寄存器TCON高4位用来控制定时/计数器0、1的运行;低4位用来控制外部中断。TR1 运行控制位,用
60、于启动/停止 T1:TR1=1,启动,工作TR1=0,停止。TF1 溢出中断标志位,定时/计数器1溢出时,TF11,在中断允许条件下,向CPU发出中断请求,CPU响应后,TF10,在中断屏蔽条件下,TF1可作查询方式,TF1可由程序置位或清零当IT0,IT11时,选下降沿触发;当IT0,IT10时,选低电平触发; 当有外中断请求时,IE0,IE1 = 1;当没有外中断请求时,IE0,IE1 = 0;3、方式寄存器TMOD选择(xunz)定时/计数器0、1的工作方式C/T:功能选择位,C/T1为计数功能(从 P3.4,P3.5输入(shr),C/T0为定时功能 M1、M0:工作方式(fngsh)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 3457-2013氧化钨》
- 《JBT 10785-2007大功率横流连续波二氧化碳激光器》专题研究报告
- 2026年法律职业资格考试公司决议撤销条件卷
- 2026高一历史下册第二单元第一次月考含答案及解析
- 《JBT 10532-2017一般用吸附式压缩空气干燥器》专题研究报告
- 《JBT 10353.1-2002燃油加油机用隔爆型电动机技术条件 第1部分:YBJY系列燃油加油机用隔爆型三相异步电动机(机座号63~100)》专题研究报告
- 2025至2026学年高一英语下册第一次月考含答案及解析
- 湖南高考:语文重点基础知识点总结
- 湖北中考:政治必背知识点大全
- 2026年低压电工实操业务知识考试卷及答案(四)
- 财税合规检查与咨询服务合同
- 微纳功能粉体研发基地建设项目环境影响报告表
- 视听语言讲义(修改版)
- 劳动砺心智 实践促成长-劳动教育主题班会
- 超星尔雅学习通《数学的思维方式与创新(北京大学)》2025章节测试附答案
- 血生化检查的临床意义
- 期中学情评估卷(含答案)2024-2025学年晋教版七年级地理下册
- T-GXAS 807-2024 不孕不育夫妇生育力评估规范
- 作战训练安全课件
- S7-200 SMART PLC完全精通教程课件:S7-200 SMART PLC的运动控制及其应用
- 《大学生安全教育》高职全套教学课件
评论
0/150
提交评论