章节总结.docx
《章节总结.docx》由会员分享,可在线阅读,更多相关《章节总结.docx(33页珍藏版)》请在冰豆网上搜索。
章节总结
章节总结
第一章
1.单片机:
把组成微型计算机的各个功能部件(CPU、存储器、I/O口、定时器等)
集中在一块芯片中,构成一个完整的微型计算机系统被称为单片机。
2.嵌入式系统:
检测控制为目的的计算机系统为嵌入式系统。
3.单片机的特点:
集成度高,可靠性好
很好的控制性
低电压、低功耗
性价比高
4.主要应用领域:
测控系统、仪表系统、家用电器、工业自动化、军事化领域等。
第二章
1.51单片机的基本组成:
8位中央处理器CPU、程序存储器ROM、数据存储器RAM、
2个定时器、1个串行口、4个8位的I/O口(P1,P2,P3口)、5个中断源.
2.CPU由控制器和运算器构成
3.中央控制器:
由程序控制器PC、指令部件和16位专用地址指针寄存器DPTR组成。
(1)PC:
用于存放16位的ROM地址,PC总是指向下一条待执行的指令的地址、
取完一条指令后,PC自动加1,指向下一条指令。
(2)指令部件:
由指令寄存器IR、指令译码器及定时控制逻辑组成
(3)DPTR:
用于存放16位的地址,也可做16位的数据寄存器使用。
4.运算器:
由算数逻辑运算单元ALU、累加器、A、B寄存器、程序状态字寄存器PSW和堆栈指针SP组成。
(1)ALU:
实现加、减、乘、除等算术运算和与、或、异或等逻辑运算的部件
(2)A:
使用最频繁,大部分指令都要使用累加器A
(3)B:
用于乘法和除法指令
(4)PSW:
CY--进位标志位;A--半进位标志位;OV--溢出位
P--奇偶校验位;RS1、RS0--寄存器区选择位00--0区
01--1区
10--2区
11--3区
(5)SP:
用于指向当前栈顶
5.4个物理地址空间:
片内RAM、片内ROM、片外RAM、片内RAM
3个逻辑地址空间:
片内RAM、片外RAM、片内片外统一地址空间的ROM
片内RAM:
256个字节(低128字节为数据区,高128字节为特殊功能寄存器SPF区)
片外RAM:
64KB
片内外ROM:
64KB
片内RAM低128字节:
(1)4个寄存器组区(0区、1区、2区、3区),每个区8个寄存器R0、R1、R2、R3、R4、R5、R6、R7
(2)位寻址区:
20H-20FH,每个位都有一个名字(表2-6)
(3)数据区:
30H-7FH
片内RAM高128字节:
特殊功能寄存器
ROM的保留存储单元:
表2-3(重要)
6.时序
机器周期:
一个机器周期包含6个状态周期S1,S2,S3,S4,S5,S6;
每个状态周期分为2个震荡周期P1,P2
周期指令:
指完成一条指令占用的全部时间。
51单片机有单周期指令,双周期指令,
4周期指令。
第三章
1.指令是计算机执行某种操作的命令,指令由操作码和操作数构成。
2.51指令系统可分为:
数据传送指令、算术运算指令、逻辑运算指令、控制转移指令、
位操作指令5大类
3.指令中的常用符号:
.Rn(n=0-7):
通用寄存器R0、R1、R2、R3、R4、R5、R6、R7
.Ri(i=0,1):
寄存器R0、R1
.#data:
8位片内RAM的单元地址
.Addr16:
16位的目的地址
.rel:
8位带符号的地址偏移量
.bit:
片内RAM或SFR的位地址
.@:
去后面的寄存器中的内容为存储器地址
4.MCS-51的寻址方式
.立即寻址:
#data为立即数,即指令中直接给出操作数
.直接寻址:
指令中给出的是操作数所在单元的地址,直接寻址方式可以访问以下三种
编码空间:
片内RAM的低128字节、SFR、位地址空间
.寄存器寻址:
指令中给出的是Rn,Rn中存放的是操作数(所在存储单元的地址)
.寄存器间寻址:
指令中给出的是@Ri
.位寻址:
指片内RAM中20H-2FH中的位地址空间、SFR中的位地址
5.数据传送指令共有3种:
MOVMOVXMOVC
.MOV:
片内RAM的数据传送指令
.MOVX:
片外RAM的数据传送指令(只能是片外RAM与累加器A之间的数据传送)
.MOVC:
共2条,从ROM将数据传送至A
6.算术运算指令
.ADD:
4条加法指令
.ADDC:
4条带进位的加法指令
.INC:
5条加一指令
.SUBB:
4条带进位减法指令
.DEC:
4条减一指令
.MNL:
乘法指令(1条)
.DIV:
除法指令(1条)
7.逻辑运算指令
.ANL:
逻辑与
.ORL:
逻辑或
.XRL:
逻辑异或
8.控制转移指令
.长转移指令:
LJMP、ADDR16
.相对转移指令:
SJMPrel
.条件转移指令:
jz、jnz等
9.子程序调用指令:
LCALLaddr16
子程序返回指令:
RET
空操作指令:
NOP
10.DJNZ指令的执行规则:
(1)(PC)+2-->PC(双字节指令)
(2)(Rn)-1-->Rn
(3)判断Rn=0,退出,什么也不做
=!
0,执行指令在中DJNZRn,**中决定的位置。
第四章
1.指令语句的格式标号:
操作码操作数:
注释
2.伪指令:
仅用于汇编过程,不会被机器执行的语句。
常用伪指令
.ORG格式ORG16位地址
功能:
规定ORG指令下面的那条指令在ROM中的地址;
.END:
汇编结束指令;
.DB格式DB 字节数据
功能:
从指定地址单元开始存放字节数据;
.DW格式DW16位数据
功能:
从指定地址单元开始存放字节数据;
3.汇编程序:
用指令助记符编写的计算机程序;
汇编:
将会编程序转化为机器指令构成的程序的过程;
4.查表程序:
.在ROM的某个地方放好数据表;
.赋初值DPTR<---表的首地址;A<---偏移量;
.使用MOVCA,@A+DPTR
5.延时程序:
设晶振频率为12MHz
.每个机器周期是1微秒;
.指令"DJNZRn",语句标号的执行规则:
(1)PC<---PC+2;
(2)Rn<---Rn-1;
(3)若Rn==0:
什么也不做;
如Rn!
=0:
PC<---标号所在的地址;
.延时程序由2个或3个DJNZ语句构成的双重或三重循环组成。
第五章
1.中断:
计算机正在执行程序,接受一个中断申请,停止正在执行的程序,转去执行中断服务程序,完毕后,
回到断点处继续执行。
2.中断入口地址:
.外部中断:
0003H;外部中断:
1:
0013H;
定时器0:
000BH;定时器1:
001BH;
串行口:
0023H
3.IE寄存器(中断允许寄存器)
(1)EA=0:
关闭所有中断;EA=1:
开总中断;
(2)EX0=0:
关闭外部中断0;EX0=1:
开外部中断0;
(3)EX1=0:
关闭外部中断1;EX1=1:
开外部中断1;
(4)ET0=0:
关闭定时器0中断;ET0=1:
开定时器0中断;
(5)ET1=0:
关闭定时器1中断;ET1=1:
开定时器1中断;
(6)ES=0:
关闭串行口中断;ES=1:
开串行口中断;
4.IP寄存器(中断优先级寄存器)
(1)MCS-51有2个中断级别:
低级和高级;
(2)PX0:
外部中断0优先级;PX1:
外部中断1优先级;
PT0:
定时器0优先级;PT1:
定时器1优先级;
PS:
串行口优先级
5.MCS-51有两个定时器:
T0和T1;
6.TMO寄存器(工作模式寄存器)
M1M0=00:
模式0;M1M0=01:
模式1;M1M0=10:
模式2;M1M0=11:
模式3;
C/T=0:
不受INT0控制;C/T=1:
受INT0控制;
7.TCON寄存器(控制寄存器)
TR0=0:
停止T0;TR0=1:
启动T0;
TF0=0:
T0未溢出;TF0=1:
T0溢出;
TR1=0:
停止T1;TR1=1:
启动T1;
TF1=0:
T1未溢出;TF1=1:
T1溢出;
.
实验
实验一
一、将问题转化为若干个小问题来解决(书上113页第5题)
1.将“十六进制数”定义为一个字节表达的十六进制数,如00H、01H、02H......FFH
2.表的形式
3.如何取下低4位
4.如何取下高4位
5.如何把取出的数查出对应的ASCII值
二、存储分配
R0:
放十六进制数
R1:
放低4位
R2:
放高4位
R3:
放低4位ASCII码
R4:
放高4位ASCII码
TABLE:
CROM中的0050H
三、流程设计
1.取R0中低4位--R1
2.取R0中高4位--R2
3.0050H--DPTR
4.查R1中的ASCII码
(1)R1--A
(2)查表
(3)A--R3
5.查R2中的ASCII码
ORG0300H
MOVA,R0
ANLA,#0FH
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVR1,A
ORG0380H
TABLE:
DB'1234567'
DB'89ABCDEF'
END
实验二(灯的闪烁点亮)
ORG0000H
MAIN:
MOVA,#0FEH
LP:
MOVR0,#10
LP0:
MOVP1,A
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
DJNZR0,LP0
RLA
SJMPLP
DELAY:
MOVR3,#0FFH
D1:
MOVR4,#0FFH
D2:
NOP
DJNZR4,D2
DJNZR3,D1
RET
END
实验三(中断程序使灯闪烁点亮)
ORG0000H
LJMPBOOT
ORG0003H
LJMPZDCX
BOOT:
MOVSP,#40H
LCALLINI_IE0
SETBEA
LJMPMAIN
INI_IE0:
SETBIT0
SETBEX0
RET
ZDCX:
MOVR7,#8
PUSHACC
MOVA,#0FEH
LP:
MOVR6,#5
LP0:
MOVP1,A
LCALLDELAY1
MOVP1,#0FFH
LCALLDELAY1
DJNZR6,LP0
RLA
DJNZR7,LP
POPACC
RETI
MAIN:
MOVA,#0FEH
LP1:
MOVR0,#5
LP2:
MOVP1,A
LCALLDELAY2
MOVP1,#0FFH
LCALLDELAY2
DJNZR0,LP2
RLA
SJMPLP1
DELAY1:
MOVR1,#10
D1:
MOVR2,#20
D2:
MOVR3,#248
DJNZR3,$
DJNZR2,D2
DJNZR1,D1
RET
DELAY2:
MOVR1,#40
D3:
MOVR2,#20
D4:
MOVR3,#248
DJNZR3,$
DJNZR2,D4
DJNZR1,D3
RET
END
实验四(定时器程序使灯闪烁点亮)
ORG0000H
LJMPMAIN
ORG000BH
LJMPT0ZD
MAIN:
SETBEA
SETBET0
MOVTMOD,#01H
MOVA,#0FEH
MOVTH0,#00H
MOVTL0,#10H
SETBTR0
SETBF0
LP:
MOVR0,#1
A1:
MOVP1,A
JBF0,A1
MOVTH0,#00H
MOVTL0,#10H
SETBTR0
SETBF0
A2:
MOVP1,#0FFH
JBF0,A2
DJNZR0,A1
RLA
SJMPLP
T0ZD:
MOVTH0,#00H
MOVTL0,#10H
CLRF0
RETI
END
实践
实践一
一.流水灯
1.设计要求:
(1)从左至右一盏一盏显示,共显示两遍;
(2)从右至左一盏一盏显示,共显示两遍;
(3)从左至右1,3,5,7;然后2,4,6,8;
(4)从右至左1,3,5,7;然后2,4,6,8;
(5)从左至右1,2(两盏同时,一下同)-->3,4-->5,6-->7,8;两遍.
(6)从右至左1,2(两盏同时,一下同)-->3,4-->5,6-->7,8;两遍.
重复
(1)
(2)(3)(4)(5)(6)
2.时间要求:
6课时(2015.7.13上午1,2,3,4和2015.7.14上午1,2学生实验).
3.实验提交:
(1)实验结果(电子稿)
(2)实验报告电子稿一份,打印稿一份.
ORG00H
START1:
MOVA,#0FFH;从左到右闪亮
CLRC
MOVR2,#17
LOOP1:
RLCA
MOVP1,A
CALLDELAY
DJNZR2,LOOP1
MOVR2,#8
JMPSTART2
START2:
MOVA,#0FFH
CLRC
MOVR2,#17
LOOP2:
RRCA;从右到左闪亮
MOVP1,A
CALLDELAY
DJNZR2,LOOP2
MOVR2,#8
JMPSTART3
START3:
MOVA,#0FEH
SETBC
MOVR2,#8
LOOP3:
RLCA;从左到右1357,2468
RLCA
MOVP1,A
CALLDELAY
DJNZR2,LOOP3
MOVR2,#8
LOOP4:
RRCA;从右到左1357,2468
RRCA
MOVP1,A
CALLDELAY
DJNZR2,LOOP4
MOVR2,#8
MOVP1,#0FCH;不断赋初值实现2盏灯亮从左往右
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#0F3H
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#0CFH
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#03FH
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#0FCH;2盏灯亮从左往右
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#0F3H
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#0CFH
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#03FH
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#03FH;2盏灯亮从右往左
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#0CFH
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#0F3H
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#0FCH
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#03FH;2盏灯亮从右往左
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#0CFH
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#0F3H
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
MOVP1,#0FCH
LCALLDELAY
MOVP1,#0FFH
LCALLDELAY
DELAY:
MOVR3,#40;延时程序
D1:
MOVR4,#40
D2:
MOVR5,#248
DJNZR5,$
DJNZR4,D2
DJNZR3,D1
RET
END
实践二
二、节日彩灯控制器设计
1.设计要求:
以单片机为核心,设计一个节日彩灯控制器;
.P1.2--开始,按此键则灯开始流动(从左至右)。
.P1.3--停止,按此键则停止流动,所有灯为暗。
.P1.4--按此键则灯从左至右。
.P1.5--按此键则灯从右至左。
2.实验原理
本题目本质上是由按键控制功能的流水灯,LED工作的方式通过键盘的扫描实现。
其中的LED采用共阳极接法,通过依次向连接LED的I/O口送出低电平,可实现题目要求的功能。
ORG0000H
MAIN:
NOP
JNBP1.2,S1
JNBP1.4,S3
JNBP1.5,S4
JMPMAIN
S1:
MOVA,#0FFH
CLRC
LOOP1:
RLCA
MOVP0,A
CALLDELAY
JNBP1.2,S1
JNBP1.3,S2
JNBP1.4,S3
JNBP1.5,S4
JMPLOOP1
S2:
MOVP0,#0FFH
JNBP1.2,S1
JNBP1.3,S2
JNBP1.4,S3
JNBP1.5,S4
JMPS2
S3:
LOOP2:
RLCA
MOVP0,A
CALLDELAY
JNBP1.2,S1
JNBP1.3,S2
JNBP1.4,S3
JNBP1.5,S4
JMPLOOP2
S4:
LOOP3:
RRCA
MOVP0,A
CALLDELAY
JNBP1.2,S1
JNBP1.3,S2
JNBP1.4,S3
JNBP1.5,S4
JMPLOOP3
DELAY:
MOVR3,#20
D1:
MOVR4,#20
D2:
MOVR5,#248
DJNZR5,$
DJNZR4,D2
DJNZR3,D1
RET
END
TABLE2:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,01H;个位表
TABLE1:
DB3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH
DB06H,06H,06H,06H,06H,06H,06H,06H,06H,06H
DB5BH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,5BH
DB4FH,4FH,4FH,4FH,4FH,4FH,4FH,4FH,4FH,4FH
DB66H,66H,66H,66H,66H,66H,66H,66H,66H,66H
DB6DH,6DH,6DH,6DH,6DH,6DH,6DH,6DH,6DH,6DH
DB7DH,7DH,7DH,7DH,7DH,7DH,7DH,7DH,7DH,7DH
DB07H,07H,07H,07H,07H,07H,07H,07H,07H,07H
DB7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH,7FH
DB6FH,6FH,6FH,6FH,6FH,6FH,6FH,6FH,6FH,6FH,01H;十位表
END
实践三
三、数字LED灯的使用
1、设计要求
(1)单管显示:
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f;
(2)双管显示倒计时
2、时间要求:
8课时(2015.7.16上午3.4上课,讲解实验原理,2015.7.17上午1,2,3,4和2015.7.20上午
学生实验)。
3、实验提交
(1)实验结果(电子稿)两份,单管显示和双管显示各一份;
(2)实验报告电子稿一份,打印稿一份。
ORG0000H
LJMPSTART
ORG0030H
START:
MOVP2,A
MOVR6,#00H
MOVDPTR,#TABLE
SS:
MOVA,R6
MOVCA,@A+DPTR
MOVP0,A
CALLDELAY
INCR6
CJNER6,#10H,SS
MOVR6,#0
AJMPSS
DELAY:
MOVR1,#5
L1:
MOVR2,#200
L2:
MOVR3,#200
L3:
DJNZR3,L3
DJNZR2,L2
DJNZR1,L1
RET
TABLE:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,08EH,00H
END
LATCH1BITP2.2
LATCH2BITP2.3
ORG00H
JMPSTART
ORG0BH
JMPTIM0
START:
MOVR3,#00
MOVR4,#100
MOVDPTR,#TABLE
MOVSP,#40H
MOVTMOD,#01H
MOVTH0,#HIGH(65536-3800)
MOVTL0,#LOW(65536-3800);初值4Ms
SETBTR0
MOVIE,#82H
TIM0:
MOVTH0,#HIGH(65536-3800)
MOVTL0,#LOW(65536-3800)
INCR3
CJNER3,#250,X1
MOVR3,#00
DECR4
MOVA,R4
MOVB,#10
DIVAB
MOV20H,B;个位
MOV21H,A;十位
CJNER4,#00,DD1
MOVR4,#100
DD1:
CALLSCAN
X1:
PUSHACC
PUSHPSW