您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > 浙大微机原理考试复习
第一章单片机:把中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器、输入/输出(I/O)接口电路等主要的计算机部件集成在一块集成电路芯片上的单片微型计算机。简称单片机。第二章单片机内部结构:一个8位CPU128字节内部数据存储器(RAM)4K内部程序存储器2个16位的定时/计数器四个8位的I/O口一个全双工的串行口5个中断源:2个外部中断,2个定时/计数中断,1个串行中断时钟电路总线外部引脚:40个(名称)四个8位并行口(32):P0口、P1口、P2口、P3口电源(2)晶振(2):XTAL1、XTAL2控制线(4):ALE:地址锁存控制信号PSEN:外部程序存储器读选通信号EA:访问程序存储器控制信号RST:复位信号内部RAM:地址:00H-FFH00H-1FH:寄存器区20H-2FH:位寻址区30H-7FH:用户RAM区80H-FFH:特殊功能寄存器区1、寄存器区(分组选择:RS0、RS1),8个通用寄存器R0-R72、位寻址区字节中的每一个位都具有地址,可直接对位进行操作。位地址:00H-7FH,128单元3、3用户RAM区:30H-7FH,在该区设置堆栈。1)堆栈:按照“先进后出,后进先出”的原则进行存取的内存区域。用于保护程序断点和数据。2)堆栈的开辟:用SP指针设置栈底。堆栈区:(SP)初+1—7FHSP的初值为07H3)堆栈的使用:进栈操作:PUSH出栈操作:POP进栈操作:先SP加1,后写入数据;出栈操作:先读出数据,后SP减1。4、特殊功能寄存器:80H-FFH共有21个特殊寄存器(SFR),离散地分布在该区域中,有些寄存器还可以进行位寻址。分类:CPU:PC(16位,程序计数器),ACC,B,PSW,DPTR,SP并行口:P0,P1,P2,P3中断:IE,IP定时计数器:TMOD,TCON,TL0,TH0,TL1,TH1串行口:SCON,SBUF,PCONIE中断允许控制寄存器IP中断优先级控制寄存器PCON电源控制寄存器SCON串行口控制寄存器SBUF串行数据缓冲寄存器TCON定时器控制寄存器TMOD定时器方式选择寄存器内部ROM:4KROM,地址为0000H-0FFFH并行I/O口:4个端口在结构上相同之处:P0--P3都是准双向I/0口,作输人时,必须先向相应端口的锁存器写人“1”。4个端口在结构上不同之处:P0口无内部上拉电阻,不能提供拉电流输出,而P1--P3则带内部上拉电阻,可以提供拉电流输出。当P0口作通用I/0口输出使用时,需外接上拉电阻才可输出高电平。引脚复用:P0口:扩展时作为8位数据总线和低8位地址总线。P2口:扩展时作为高8位地址总线。P3口第二功能1)振荡周期:振荡电路产生的方波信号的周期。T振=1/fosc2)机器周期:计算机完成一种最基本的操作所需的时间。T机=12T振3)指令周期:执行一条指令所需要的时间,用机器周期数表示。复位电路:功能:复位启动单片机。复位条件:在RST引脚输入2个机器周期以上的高电平。正常工作时保持为低电平。1)初始化单片机,使PC初始化为0000H;2)初始化存储器。寄存器内容寄存器内容PC0000HTMOD00HACC00HTCON00HB00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIP00HSBUF不定IE00HPCON00H第三章单片机指令系统机器语言:用二进制编码表示的指令。汇编语言:用助记符表示的指令。指令系统:计算机所能执行的指令集合。寻址方式:寻找操作数地址的方法。操作数的表示方法。7种寻址方式:1)立即寻址:操作数在指令中。MOVA,#70HMOVDPTR,#1234H2)直接寻址:内部RAM地址在指令中MOVA,10HANL70H,#48H地址范围:内部RAM128字节,SFR3)寄存器寻址:操作数在寄存器中。MOVA,R1MOVR7,#100寄存器:R0-R7,A,B,DPTR4)寄存器间接寻址:操作数地址在寄存器中。MOVA,@R1ANLA,@R0寄存器:R0,R1,DPTR,SP5)变址寻址:操作数地址在基址寄存器和变址寄存器中。MOVCA,@A+DPTRMOVCA,@A+PC访问ROM单元数据。6)相对寻址:转移地址(目的地址)的相对偏移量在指令中。JC80H实际使用中使用标号,偏移量由汇编程序自动计算。JCNEXT7)位寻址:位地址在指令中。MOVC,20H位的表示方法:位名称,字节名称带点,字节地址带点,位地址。MOVC,F0(PSW.5,D0H.5,D5H)程序存储器数据传送MOVCA,@A+PCMOVCA,@A+DPTR例:将ROM2000H单元数据送到A.MOVDPTR,#2000HMOVA,#0MOVCA,@A+DPTR数据交换指令字节交换XCH半字节交换XCHD低四位交换,高四位不变。累加器高四位与低四位互换SWAPADECA(Rn,direct,@Ri)减1指令INC多一条INCDPTR控制转移指令一、无条件转移指令1)长转移:LJMPaddr16;64K2)绝对转移:AJMPaddr11;同一个2K3)相对转移:SJMPrel;-128~+1274)散转指令:JMP@A+DPTR实际编程时使用目的地址标号例:LJMPMAINSJMPNEXTJBCbit,rel;bit为1转移,且位bit清零CJNEA,#data(direct),rel不等转移CJNERn,#data,relCJNE@Ri,#data,rel对Cy位有影响。返回:RETRETI;中断子程序返回空指令NOP非:CPLCCPLbit汇编:将汇编语言翻译成机器语言;伪指令:告诉汇编程序汇编方法的命令,不生成机器代码。EQU:等值命令(定义常量)例:XEQU20HYEQU21HZEQU22H程序中可用XYZ替代20H,21H,22HDATA:数据地址赋值XDATA20HYDATA21H只能对累加器进行移位(RL、RR、RLC、RRC)ACLRACPLA第四章汇编程序设计顺序程序例:将40H单元中8位无符号二进制数转换成三位BCD码,并存放在BAI,SHI,GE三个单元中。ORG0000HBAIDATA30HSHIDATA31HGEDATA32HMOVA,40HMOVB,#100DIVABMOVBAI,AMOVA,BMOVB,#10DIVABMOVSHI,AMOVGE,BSJMP$END分支程序例:设变量X存放于R2,Y存放在R3,试按下式给Y赋值。MOVA,R2JNZL1;累加器判非零转移MOVR3,#0SJMPL3L1:JBACC.7,L2MOVR3,#1SJMPL3L2:MOVR3,#0FFHL3:SJMPL3END循环程序例:将内部RAM30H为首地址的20个数据传送到外部RAM3000H开始的单元。MOVR0,#30HMOVDPTR,#3000HMOVR7,#20LOOP:MOVA,@R0010001XXXYMOVX@DPTR,AINCR0INCDPTRDJNZR7,LOOPHERE:SJMPHERE子程序例1:编程实现c=a2+b2XADATA40HXBDATA41HXCDATA42HMOVA,XAACALLSQRMOVXC,AMOVA,XBACALLSQRADDA,XCMOVXC,ASJMP$SQR:MOVB,AMULABRET例2:多重循环5ms延时程序,设fosc=6MHz机器周期为2μsDELAY:MOVR6,#5;循环5次DEL1:MOVR7,#250;循环250次DEL2:DJNZR7,DEL2;2×250×2μs=1msDJNZR6,DEL1;5×1ms=5msRET;DJNZ为两个机器周期查表程序设计1.表格的定义:使用伪指令:DB,DW例:TAB:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHDB77H,7CH2.表格的访问:MOVCA,@A+DPTRMOVCA,@A+PC例:已知R0低4位有一个十六进制数(0-F),编程转换成相应的ASCII码并送入R0.MOVA,R0ANLA,#0FHADDA,#03H;PC本身是一个程序计数器,计算偏移量(查表指令的下一条指令首地址到表格首地址之间的字节数)MOVCA,@A+PCMOVR0,A1个字节SJMP$2个字节ASCTAB:DB‘0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’DB‘8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’上例用DPTR做基址的程序如下:MOV@DPTR,#ASCTABMOVA,R0ANLA,#0FHMOVCA,@A+DPTRMOVR0,ASJMP$ASCTAB:DB‘0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’DB‘8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’把内部RAM中起始地址为BLK1的数据块传送到外部RAM中以BLK2为起始地址的区域,直到遇到“#”为止。数据块长度放在R1中。1)循环程序包含分支程序。2)计数循环,采用间接寻址。BLK1EQU30HBLK2EQU1000HMOVR0,#BLK1MOVDPTR,#BLK2XH:CLRCMOVA,@R0PUSHACCSUBBA,#23HJZJSPOPACCMOVX@DPTR,AINCR0INCDPTRDJNZR1,XHJS:SJMP$编程实现下面的功能:LED0EQUP3.0LED1EQUP3.1LED2EQUP3.2LOOP:MOVA,P1CLRCSUBBA,#100JZEQUALJCSMALLCLRLED0CLRLED1SETBLED2SJMPOKEQUAL:CLRLED0SETBLED1CLRLED2SJMPOKSMALL:SETBLED0CLRLED1CLRLED2OK:SJMPLOOP例3:在P1.0引脚输出1HZ方波信号。ORG0000HLOOP:MOVR1,#100WAIT:LCALLDELAYDJNZR1,WAITCPLP1.0SJMPLOOP第五章单片机内部资源中断:由外设向CPU提出请求,在满足一定条件下,CPU暂停现有程序的运行,而去运行中断服务程序(中断子程序),执行结束后返回原先的程序继续运行。中断源:向CPU请求中断的事件。中断响应条件1)中断源的请求2)中断允许位开放3)中断总允许位开放4)若有多个中断源同时请求,则本中断源优先级最高5)CPU没有执行中断任务或本中断优先级高于正在执行的中断源的优先级定时方式与计数方式区别:脉冲来源定时方式:计数脉冲来自单片机内部,每个机器周期加1。100112.3100111.3100110.3PPPPPP计数方式:计数脉冲来自单片机外部引脚串行口通讯方式:并行通讯:多位数据同时传送。速度快,效率高。需要有与数据位相等的数据线。串行通讯:数据按位传送。使用较少的数据线,成本低。速度较慢。数据格式:起始位(低电平)+数据位+停止位(高)+空闲位(高)数据位:低位在前,高位在后。波特率:串行通讯中,每秒钟传送二进制数码的位数。通讯方向:单工方式:一方固定为发送,另一方固定为接收,数据单向传送。双工方式:数据可以双向传送。半双工:可以双向传送,但在同一时刻,数据的传送方向只能有一个。全双工:数据可以同时收发。.串行口引脚接收引脚:RXD(P3.0)发送引脚:TXD(P3.1)数据缓冲寄存器:SBUF,(99H)结构:一个发送寄存器,一个接收寄存器作用:用于收发数据发送:MOVSBUF,#10HMOVSBUF,A读取:MOVA,SBUFMOV20H,SBUF波特率设计1)方式0:固定fCLK=fosc/122)方式2:固定波特率=2SMOD*fosc/643)方式1,3:可变波特率=(2SMOD/32)*T1的溢出率第六章单片机系统扩展一、总线扩展总线:连接系统中各个扩展部件的一组公共信号线。分为数据总线、地址总线和控制
本文标题:浙大微机原理考试复习
链接地址:https://www.777doc.com/doc-2230803 .html