浙大微机原理考试复习.docx
《浙大微机原理考试复习.docx》由会员分享,可在线阅读,更多相关《浙大微机原理考试复习.docx(22页珍藏版)》请在冰豆网上搜索。
浙大微机原理考试复习
第一章单片机:
把中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器、输入/输出(I/O)接口电路等主要的计算机部件集成在一块集成电路芯片上的单片微型计算机。
简称单片机。
第二章单片机内部结构:
Ø一个8位CPU
Ø128字节内部数据存储器(RAM)
Ø4K内部程序存储器
Ø2个16位的定时/计数器
Ø四个8位的I/O口
Ø一个全双工的串行口
Ø5个中断源:
2个外部中断,2个定时/计数中断,1个串行中断
Ø时钟电路
Ø总线
外部引脚:
40个(名称)
Ø四个8位并行口(32):
P0口、P1口、P2口、P3口
Ø电源
(2)
Ø晶振
(2):
XTAL1、XTAL2
Ø控制线(4):
ALE:
地址锁存控制信号
:
外部程序存储器读选通信号
EA:
访问程序存储器控制信号
RST:
复位信号
内部RAM:
地址:
00H-FFH
Ø00H-1FH:
寄存器区
Ø20H-2FH:
位寻址区
Ø30H-7FH:
用户RAM区
Ø80H-FFH:
特殊功能寄存器区
1、寄存器区(分组选择:
RS0、RS1),8个通用寄存器R0-R7
2、位寻址区
字节中的每一个位都具有地址,可直接对位进行操作。
位地址:
00H-7FH,128单元
3、3用户RAM区:
30H-7FH,在该区设置堆栈。
1)堆栈:
按照“先进后出,后进先出”的原则进行存取的内存区域。
用于保护程序断点和数据。
2)堆栈的开辟:
用SP指针设置栈底。
堆栈区:
(SP)初+1—>7FH
SP的初值为07H
3)堆栈的使用:
进栈操作:
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,PCON
IE中断允许控制寄存器
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/fosc
2)机器周期:
计算机完成一种最基本的操作所需的时间。
T机=12T振
3)指令周期:
执行一条指令所需要的时间,用机器周期数表示。
复位电路:
功能:
复位启动单片机。
复位条件:
在RST引脚输入2个机器周期以上的高电平。
正常工作时保持为低电平。
1)初始化单片机,使PC初始化为0000H;2)初始化存储器。
寄存器
内容
寄存器
内容
PC
0000H
TMOD
00H
ACC
00H
TCON
00H
B
00H
TL0
00H
PSW
00H
TH0
00H
SP
07H
TL1
00H
DPTR
0000H
TH1
00H
P0-P3
FFH
SCON
00H
IP
00H
SBUF
不定
IE
00H
PCON
00H
第三章单片机指令系统
机器语言:
用二进制编码表示的指令。
汇编语言:
用助记符表示的指令。
指令系统:
计算机所能执行的指令集合。
寻址方式:
寻找操作数地址的方法。
操作数的表示方法。
7种寻址方式:
1)立即寻址:
操作数在指令中。
MOVA,#70H
MOVDPTR,#1234H
2)直接寻址:
内部RAM地址在指令中
MOVA,10H
ANL70H,#48H
地址范围:
内部RAM128字节,SFR
3)寄存器寻址:
操作数在寄存器中。
MOVA,R1
MOVR7,#100
寄存器:
R0-R7,A,B,DPTR
4)寄存器间接寻址:
操作数地址在寄存器中。
MOVA,@R1
ANLA,@R0
寄存器:
R0,R1,DPTR,SP
5)变址寻址:
操作数地址在基址寄存器和变址寄存器中。
MOVCA,@A+DPTR
MOVCA,@A+PC
访问ROM单元数据。
6)相对寻址:
转移地址(目的地址)的相对偏移量在指令中。
JC80H
实际使用中使用标号,偏移量由汇编程序自动计算。
JCNEXT
7)位寻址:
位地址在指令中。
MOVC,20H
位的表示方法:
位名称,字节名称带点,字节地址带点,位地址。
MOVC,F0(PSW.5,D0H.5,D5H)
程序存储器数据传送
MOVCA,@A+PC
MOVCA,@A+DPTR
例:
将ROM2000H单元数据送到A.
MOVDPTR,#2000H
MOVA,#0
MOVCA,@A+DPTR
数据交换指令
字节交换XCH
半字节交换XCHD低四位交换,高四位不变。
累加器高四位与低四位互换SWAP A
DECA(Rn,direct,@Ri)减1指令
INC多一条INCDPTR
控制转移指令
一、无条件转移指令
1)长转移:
LJMPaddr16;64K
2)绝对转移:
AJMPaddr11;同一个2K
3)相对转移:
SJMPrel;-128~+127
4)散转指令:
JMP@A+DPTR
实际编程时使用目的地址标号
例:
LJMPMAIN
SJMPNEXT
JBCbit,rel;bit为1转移,且位bit清零
CJNEA,#data(direct),rel不等转移
CJNERn,#data,rel
CJNE@Ri,#data,rel
对Cy位有影响。
返回:
RET
RETI;中断子程序返回
空指令NOP
非:
CPLC
CPLbit
汇编:
将汇编语言翻译成机器语言;
伪指令:
告诉汇编程序汇编方法的命令,不生成机器代码。
EQU:
等值命令(定义常量)
例:
XEQU20H
YEQU21H
ZEQU22H
程序中可用XYZ替代20H,21H,22H
DATA:
数据地址赋值
XDATA20H
YDATA21H
只能对累加器进行移位(RL、RR、RLC、RRC)A
CLRACPLA
第四章汇编程序设计
顺序程序
例:
将40H单元中8位无符号二进制数转换成三位BCD码,并存放在BAI,SHI,GE三个单元中。
ORG0000H
BAIDATA30H
SHIDATA31H
GEDATA32H
MOVA,40H
MOVB,#100
DIVAB
MOVBAI,A
MOVA,B
MOVB,#10
DIVAB
MOVSHI,A
MOVGE,B
SJMP$
END
分支程序
例:
设变量X存放于R2,Y存放在R3,试按下式给Y赋值。
MOVA,R2
JNZL1;累加器判非零转移
MOVR3,#0
SJMPL3
L1:
JBACC.7,L2
MOVR3,#1
SJMPL3
L2:
MOVR3,#0FFH
L3:
SJMPL3
END
循环程序
例:
将内部RAM30H为首地址的20个数据传送到外部RAM3000H开始的单元。
MOVR0,#30H
MOVDPTR,#3000H
MOVR7,#20
LOOP:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR7,LOOP
HERE:
SJMPHERE
子程序
例1:
编程实现c=a2+b2
XADATA40H
XBDATA41H
XCDATA42H
MOVA,XA
ACALLSQR
MOVXC,A
MOVA,XB
ACALLSQR
ADDA,XC
MOVXC,A
SJMP$
SQR:
MOVB,A
MULAB
RET
例2:
多重循环
5ms延时程序,设fosc=6MHz机器周期为2μs
DELAY:
MOVR6,#5;循环5次
DEL1:
MOVR7,#250;循环250次
DEL2:
DJNZR7,DEL2;2×250×2μs=1ms
DJNZR6,DEL1;5×1ms=5ms
RET;DJNZ为两个机器周期
查表程序设计
1.表格的定义:
使用伪指令:
DB,DW
例:
TAB:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
DB77H,7CH
2.表格的访问:
MOVCA,@A+DPTR
MOVCA,@A+PC
例:
已知R0低4位有一个十六进制数(0-F),编程转换成相应的ASCII码并送入R0.
MOVA,R0
ANLA,#0FH
ADDA,#03H;PC本身是一个程序计数器,
计算偏移量(查表指令的下一条指令首地址到表格首地址之间的字节数)
MOVCA,@A+PC
MOVR0,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,#ASCTAB
MOVA,R0
ANLA,#0FH
MOVCA,@A+DPTR
MOVR0,A
SJMP$
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)计数循环,采用间接寻址。
BLK1EQU30H
BLK2EQU1000H
MOVR0,#BLK1
MOVDPTR,#BLK2
XH:
CLRC
MOVA,@R0
PUSHACC
SUBBA,#23H
JZJS
POPACC
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR1,XH
JS:
SJMP$
编程实现下面的功能:
LED0EQUP3.0
LED1EQUP3.1
LED2EQUP3.2
LOOP:
MOVA,P1
CLRC
SUBBA,#100
JZEQUAL
JCSMALL
CLRLED0
CLRLED1
SETBLED2
SJMPOK
EQUAL:
CLRLED0
SETBLED1
CLRLED2
SJMPOK
SMALL:
SETBLED0
CLRLED1
CLRLED2
OK:
SJMPLOOP
例3:
在P1.0引脚输出1HZ方波信号。
ORG0000H
LOOP:
MOVR1,#100
WAIT:
LCALLDELAY
DJNZR1,WAIT
CPLP1.0
SJMPLOOP
第五章单片机内部资源
中断:
由外设向CPU提出请求,在满足一定条件下,CPU暂停现有程序的运行,而去运行中断服务程序(中断子程序),执行结束后返回原先的程序继续运行。
中断源:
向CPU请求中断的事件。
中断响应条件
1)中断源的请求
2)中断允许位开放
3)中断总允许位开放
4)若有多个中断源同时请求,则本中断源优先级最高
5)CPU没有执行中断任务或本中断优先级高于正在执行的中断源的优先级
定时方式与计数方式区别:
脉冲来源
定时方式:
计数脉冲来自单片机内部,每个机器周期加1。
计数方式:
计数脉冲来自单片机外部引脚
串行口
通讯方式:
并行通讯:
多位数据同时传送。
速度快,效率高。
需要有与数据位相等的数据线。
串行通讯:
数据按位传送。
使用较少的数据线,成本低。
速度较慢。
数据格式:
起始位(低电平)+数据位+停止位(高)+空闲位(高)
数据位:
低位在前,高位在后。
波特率:
串行通讯中,每秒钟传送二进制数码的位数。
通讯方向:
单工方式:
一方固定为发送,另一方固定为接收,数据单向传送。
双工方式:
数据可以双向传送。
半双工:
可以双向传送,但在同一时刻,数据的传送方向只能有一个。
全双工:
数据可以同时收发。
.串行口引脚
接收引脚:
RXD(P3.0)
发送引脚:
TXD(P3.1)
数据缓冲寄存器:
SBUF,(99H)
结构:
一个发送寄存器,一个接收寄存器
作用:
用于收发数据
发送:
MOVSBUF,#10H
MOVSBUF,A
读取:
MOVA,SBUF
MOV20H,SBUF
波特率设计
1)方式0:
固定
fCLK=fosc/12
2)方式2:
固定
波特率=2SMOD*fosc/64
3)方式1,3:
可变
波特率=(2SMOD/32)*T1的溢出率
第六章单片机系统扩展
一、总线扩展
总线:
连接系统中各个扩展部件的一组公共信号线。
分为数据总线、地址总线和控制总线。
总线的构成
1)数据总线:
8位
P0.0~P0.7:
D0~D7
2)地址总线:
16位
P0.0~P0.7,P2.0~P2.7:
A0~A15
3)控制总线:
3
PSEN,RD,WR
构成接口芯片片选信号的两种方法:
1)线选法:
用高位地址线直接作为接口芯片的片选信号。
2)译码法:
用译码器对高位地址线进行译码后作为片选信号。
译码器:
2-4译码器:
74LS139
3-8译码器:
74LS138
4-16译码器:
74LS154
扩展方法
芯片的数据线与数据总线相连,
地址线与地址总线或片选信号线相连,
控制线与控制总线相连。
访问方法:
1)以PSEN作为控制线:
与片外ROM统一编址
读:
MOVCA,@A+DPTR
MOVCA,@A+PC
2)以RD,WR作为控制线:
与片外RAM统一编址
读:
MOVXA,@DPTR
MOVXA,@Ri
写:
MOVX@DPTR,A
MOVX@Ri,A
二、存储器扩展
程序存储器型号
1)ROM
2)EPROM:
电可编程只读存储器
2716:
16Kbit,2Kbyte
2732:
32Kbit
2764:
64Kbit
27128:
27256:
64Kbyte
3)EEPROM:
电擦除电编程ROM
2817:
2Kbyte
2864:
64Kbit
数据存储器型号
采用静态RAM(StaticRAM)
6116:
16Kbit
6264:
64Kbitor8Kbyte
62256:
32Kbyte
628128:
128Kbyte
三、键盘接口
接口形式
1)独立式键盘:
每个键单独地接I/O线。
特点:
接口简单,但需较多的I/O线。
2)行列式键盘:
每个键跨接在行线和列线上。
特点:
占用较少的I/O线,编程较复杂
去抖动:
原因:
键被按下时,由于机械触电的弹性以及电压突跳等原因,在触电闭合及释放的瞬间将出现电压抖动。
方法:
软件和硬件
软件去抖动——延迟10-20ms进行再次扫描。
例:
用A记录按键次数。
MOVA,#0
LOOP:
JBP1.0,LOOP
LCALLDELAY
JBP1.0,LOOP
INCA
WAIT:
JNBP1.0,WAIT
SJMPLOOP
四、LED数码管:
类型:
共阴数码管、共阳数码管
接口方式:
1)静态显示方式:
位选信号固定为高电平(共阳数码管)或低电平(共阴数码管),段选信号接I/O线。
特点:
接口简单;容易编程;亮度较高;需要较多的I/O线,功耗高。
8*n
2)动态显示方式
所有数码管的段选线并联后连接I/O线,各数码管的位选单独连接到I/O线。
原理:
动态轮流显示,输出数码管的显示码,然后输出位选信号,使得该数码管位选有效(共阴数码管为0,共阳数码管为1),而其他数码管无效;延时几毫秒,关闭位选,显示下一个数字。
特点:
较少的I/O线,8+n,编程较复杂,占用较多的CPU时间
A/D接口
ADC0809:
8位,8通道,逐次逼近式A/D转换器,转换时间100us
D/A转换器
D/A转换器主要技术指标
1)分辨率:
最小输出电压与最大输出电压之比。
如:
8位A/D1/255,
10位A/D1/1023
2)建立时间
3)输出方式:
电流,电压
4)输入代码:
二进制,BCD,串行
DAC0832
1.特点:
8位分辨率,总线接口,单电源