快速入门单片机大全语言.docx
- 文档编号:28965453
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:11
- 大小:20.48KB
快速入门单片机大全语言.docx
《快速入门单片机大全语言.docx》由会员分享,可在线阅读,更多相关《快速入门单片机大全语言.docx(11页珍藏版)》请在冰豆网上搜索。
快速入门单片机大全语言
快速入门单片机汇编语言
简要:
单片机有通用型和专用型之分。
专用型是厂家为固定程序的执行专门开发研制的一种单片机,其程序不可更改。
通用型单片机是常用的一种供学习或自主编制程序的单片机,其程序需要自己写入,可更改。
单片机根据其基本操作处理位数不同可以分为:
1位、4位、8位、16、32位单片机。
正文:
在此我们主要讲解美国ATMEL公司的89C51单片机。
一、89C51单片机PDIP(双列直插式)封装引脚图:
其引脚功能如下:
P0口(p0.0—p0.7):
为双向三态口,可以作为输入/输出口。
但在实际应用中通常作为地址/数据总线口,即为低8位地址/数据总线分时复用。
低8位地址在ALE信号的负跳变锁存到外部地址锁存器中,而高8位地址由P2口输出。
P1口(p1.0—p1.7):
其每一位都能作为可编程的输入或输出线。
P2口(p2.0—p2.7):
每一位也都可作为输入或输出线用,当扩展系统外设时,可作为扩展系统的地址总线高8位,与P0口一起组成16位地址总线。
对89c51单片机来说,P2口一般只作为地址总线使用,而不作为I/O线直接与外设相连。
P3口(p3.0—p3.7):
其为双功能口,作为第一功能使用时,其功能与P1口相同。
当作为第二功能使用时,每一位功能如下表所示。
P3口第二功能
引脚
第二功能
引脚
第二功能
P3.0
RXD—串行口数据输入端
P3.4
INT0—定时器T0的外部输入
P3.1
TXD—串行口数据输出端
P3.5
INT1—定时器T1的外部输入
P3.2
T0—外部中断0请求
P3.6
WR—外部存储器数据写选通信号
P3.3
T1—外部中断1请求
P3.7
RD—外部存储器数据读选通信号
Rst\Vpd:
上电复位端和掉电保护端。
XTAL1(xtal2):
外接晶振一脚,分别接晶振的一端。
Gnd:
电源地。
Vcc:
电源正级,接+5V。
PROG\ALE:
地址锁存控制端
PSEN:
片外程序存储器读选通信号输出端,低电平有效。
EA\vpp:
访问外部程序储存器控制信号,低电平有效。
当EA为高电平时访问片内存储器,若超出范围则自动访问外部程序存储器。
当EA为低电平时只访问外部程序存储器。
2、常用指令及其格式介绍:
3、
1、指令格式:
2、
[标号:
]操作码[目的操作数][,操作源][;注释]
例如:
LOOP:
ADDA,#0FFH;(A)←(A)+FFH
3、常用符号:
4、
Ri和Rn:
R表示工作寄存器,i表示1和0,n表示0~7。
rel:
相对地址、地址偏移量,主要用于无条件相对短转移指令和条件转移指令。
#data:
包含于指令中的8位立即数。
#data16:
包含于指令中的16位立即数。
addr16:
16位目的地址。
direct:
直接寻址的地址。
bit:
内部数据存储器RAM和特殊功能寄存器SFR中的可直接寻址位地址。
@:
间接寻址寄存器或基地址寄存器的前缀。
(X):
表示X中的内容。
((X)):
表示由X寻址的单元中的内容,也就是(X)作地址,该地址的内容用((X))表示。
3、常用伪指令:
ORG:
规定目标程序段或数据块的起始地址。
格式:
ORG+空格+地址例如:
ORG0000H
END:
结束指令,放在程序的末尾,单独使用,一段程序只用一次。
DB(定义字节):
从指定地址单元开始,定义若干字节存储单元并赋初始值。
4、常用寻址方式:
直接寻址:
MOVA,30H
立即数寻址:
MOVA,#20H
寄存器间接寻址:
MOVA,@Ri(i=1,2)
基址加变址寄存器寻址:
MOVA,@A+DPTR
寄存器寻址:
MOVA,Rn(n=0—7)
5、指令大集合:
传送类指令:
助记符
操作功能
助记符
操作功能
MOVA,#data
MOVRn,#data
MOV@Ri,#data
MOVdirect,#data
MOVDPTR,#data16
立即数送累加器
立即数送寄存器
立即数送片内RAM
立即数送直接寻址字节
16位立即数送数据指针寄存器
MOVdirect,Rn
MOVA,Rn
MOVRn,A
MOVdirect,A
MOV@Ri,A
寄存器内容送直接寻址字节
寄存器内容送累加器
累加器内容送寄存器
累加器内容送直接寻址字节
累加器内容送片内RAM
MOVRn,direct
MOVA,direct
MOV@Ri,direct
MOVdirect2,direct1
直接寻址字节内容送寄存器
直接寻址字节送累加器
直接寻址内容送片内RAM
直接寻址字节内容送另一直接寻址字节
MOVdirect,@Ri
MOVA,@Ri
片内RAM内容送直接寻址字节
片内RAM内容送累加器
MOVXA,@Ri
MOVX@Ri,A
片外RAM内容送累加器
累加器内容送片外RAM
MOVXA,@DPTR
MOVX@DPTR,A
片外RAM内容送累加器
累加器内容送片外RAM
MOVCA,@A+DPTR
MOVCA,@A+PC
XCHA,Rn
XCHA,@Ri
XCHA,direct
XCHDA,@Ri
相对数据指针内容送累加器
相对程序计数器内容送累加器
累加器内容与寄存器内容交换
累加器与片内RAM交换内容
累加器与直接寻址字节交换内容
累加器与片内RAM交换低半字节内容
PUSHdirect
POPdirect
SWAPA
直接寻址字节内容压入栈顶
栈顶内容弹出到直接寻址字节
累加器交换高半字节和低半字节
传送类指令:
助记符
操作功能
助记符
操作功能
ADDA,Rn
ADDA,@Ri
ADDA,direct
ADDA,#data
ADDCA,Rn
ADDCA,@Ri
ADDCA,direct
ADDCA,#data
寄存器内容与累加器内容相加
片内RAM与累加器内容相加
直接寻址字节与累加器内容相加
立即数与累加器内容相加
寄存器与累加器与进位位内容相加
片内RAM与累加器与进位位相加
直接寻址字节与累加器与进位位相加
立即数与累加器与进位位相加
SUBBA,Rn
SUBBA,@Ri
SUBBA,direct
SUBBA,#data
累加器内容减寄存器与进位位内容
累加器内容减片内RAM与进位位内容
累加器内容减直接寻址字节与进位位内容
累加器内容减立即数与进位位内容
INCA
INCR0
INC@Ri
INCdirect
INCDPTR
累加器内容加1
寄存器内容加1
片内RAM内容加1
直接寻址字节内容加1
数据指针寄存器内容加1
DECA
DECRn
DEC@Ri
DECdirect
累加器内容减1
寄存器内容减1
片内RAM内容减1
直接寻址字节内容减1
DAA
MULAB
DIVAB
累加器内容十进制调整
累加器内容乘寄存器B内容
累加器内容除寄存器B内容
逻辑操作类指令:
助记符
操作功能
助记符
操作功能
ANLA,Rn
ANLA,@Ri
ANLA,direct
ANLdirect,A
ANLA,#data
ANLdirect,#data
寄存器内容与累加器内容
片内RAM内容与累加器内容
直接寻址字节内容与累加器内容
累加器内容与直接寻址字节内容
立即数与累加器内容
立即数与直接寻址字节内容
ORLA,Rn
ORLA,@Ri
ORLA,direct
ORLdirect,A
ORLA,#data
ORLdirect,#data
寄存器内容或累加器内容
片内RAM内容或累加器内容
直接寻址字节内容或累加器内容
累加器内容或直接寻址字节内容
立即数或累加器内容
立即数或直接寻址字节内容
XRLA,Rn
XRLA,@Ri
XRLA,direct
XRLdirect,A
XRLA,#data
XRLdirevt,#data
寄存器内容异或累加器内容
片内RAM内容异或累加器内容
直接寻址字节内容异或累加器内容
累加器内容异或直接寻址字节内容
立即数异或累加器内容
立即数异或直接寻址字节内容
CPLA
CLRA
累加器内容取反
累加器内容清空
RLA
RRA
RLCA
RRCA
累加器内容向左环移1位
累加器内容向右环移1位
累加器内容带进位位向左环移1位
累加器内容带进位位向右环移1位
控制转移类指令:
助记符
操作功能
助记符
操作功能
AJMPaddr11
LJMPaddr16
SJMPrel
JMP@A+DPTR
绝对转移
长转移
相对短转移
相对长转移
JZrel
JNZrel
CJNEA,direct,rel
CJNEA,#data,rel
CJNERn,#data,rel
累加器内容为零转移
累加器内容不为零转移
累加器内容与直接寻址字节内容不等转移
累加器内容与立即数不等转移
寄存器内容与立即数不等转移
CJNE@Ri,#data,rel
DJNZRn,rel
DJNZdirect,rel
寄存器内容减1不为零转移
Direct内容减1不为零转移
ACALLaddr11
LCALLaddr16
绝对调子
长调子
RET
RETI
返回主程序
中断返回主程序
NOP
空操作
位操作类指令:
助记符
操作功能
助记符
操作功能
MOVC,bit
MOVbit,C
直接寻址位内容送进位位
进位位内容送直接寻址位
CPLC
CLRC
SETBC
CPLbit
CLRbit
SETBbit
ANLC,bit
ORLC,bit
ANLC,/bit
ORLC,/bit
进位位取反
进位位清零
进位位置位
直接寻址位取反
直接寻址位清零
直接寻址位置位
直接寻址位内容与进位位内容
直接寻址位内容或进位位内容
直接寻址位的反与进位位内容
直接寻址位的反或进位位内容
JCrel
JNCrel
JBbit,rel
JNBbit,rel
JBCbit,rel
进位位为1转移
进位位不为1转移
直接寻址位为1转移
直接寻址位不为1转移
直接寻址位为1转移且该为清零
3、一般常用程序模式:
4、
1、开始程序:
ORG0000H
JMP0030H
ORG0030H
…
…
2、软件延时子程序:
YANSHI:
MOVR7,#25
D1:
MOVR6,#50
D2:
MOVR5,#200
DJNZR5,$
DJNZR6,D2
DJNZR7,D1
RET
若12M晶振则延时时长约为:
25×50×200×2×10-6s,若为6M晶振则延时时长为:
25×50×200×2×2×10-6s
3、硬件延时子程序:
(1)查询方式:
YANSHI:
MOVTMOD,#01H
MOVR0,#20
UP:
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
JNBTF0,$
CLRTF0
DJNZR0,UP
RET
此延时程序为20(R0)×50ms,即为一秒,若需要更长的延时只需要改变R0的值。
4、一级中断程序:
外部定时器0中断
ORG0000H
JMP002CH
ORG0003H
JMPZHONGDUAN
ORG002CH
MAIN:
MOVTCON,#01H
MOVIP,#01H
MOVIE,#81H
…
…
ZHONGDUAN:
PUSHA
PUSHPSW
SETBRS0
CLRRS1
…
…
POPPSW
POPA
RETI
若不需要对主程序的值进行保护则中断的子程序只需直接载入中断主程序需要执行的子程序便可。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 快速 入门 单片机 大全 语言
![提示](https://static.bdocx.com/images/bang_tan.gif)