片机原理及应用.ppt
《片机原理及应用.ppt》由会员分享,可在线阅读,更多相关《片机原理及应用.ppt(68页珍藏版)》请在三一办公上搜索。
1、单片机原理及应用2,51单片机并口及并口应用51单片机晶振和复位51单片机指令集编者:康戈文,51单片机的并行接口,51单片机I/O具有4组,每组8位,共32位并行接口,按“第二功能”不同,结构也稍有不同。P0口:并口/数据地址总线P1口:并行接口P2口:并口/地址高8位P3口:并口,每个引脚还有不同功能:RXD;TXD;INT0;INT1;T0;T1;WR;RD,标准并行接口电路框图,51单片机P1口,引脚,51单片机P0口,读引脚,51单片机P2口,51单片机P3口,51单片机并口应用小结,并口基本功能:只要写“1”到锁存器,就可以读取引脚数据。并口第二功能随指令变化:使用MOVX/MOV
2、C指令时,P0/P2口自动切换到“地址、数据”方式P3口第二功能是“直通”的,可以直接输出:WR、RD、TXD,直接输入:INT0、INT1、T0、T1、RXD。由程序和电路直接相应(预先设定功能,采用相应指令),并口输出应用举例,单片机连接光耦合器件,89C51晶振电路,电容:2033pf(常:30pf)晶体:1.216MHZ(常:12M),指令时序,时序要点:,一个指令周期1,2或者4个机器周期一个机器周期12个晶振周期一个机器周期输出两个ALE脉冲即:ALE的输出频率fALE(1/6)fOSC如果使用晶振频率为12MHZ,则fALE 2MHZ,指令执行时间1,2,4微秒。,复位电路,上电
3、复位时序,复位后寄存器状态,PC0000 程序从0000开始执行,ROM的这个地址也称为“复位地址”PSW=0 其中RS1,RS1=0,默认主程序使用寄存器组0SP=07 堆栈从RAM的07地址开始,一般需要更改堆栈栈底值P0P3=FFH 引脚输出高电平IE=0X000000B 所有中断被关闭IP=0X000000B 所有中断无优先级TMOD=00 定时器T0,T1模式0TCON=00 定时器不工作.SCON=00 串行口默认使用方式0PCON=0XXX0000B 无电源管理,无波特率2倍设置其他如ACC;DPTR;TH0;TL0;TH1;TL1;SBUF等可以不关心。,地址数据扩展电路,A8
4、A15,A8A15,A8A15,A0A7,A0A7,A0A7,扩展后的地址数据时序,P0,ALE,P2,373出,74LS373 是一种“透明”的8D锁存器,当LE引脚为“高”时,输出输入。低电平时锁定数据。Intel 8282 类似,但引脚不一样。不能用其它锁存器代替。,51单片机(汇编)指令集,任何CPU的指令都使用“二进制”机器码!用数字(代码)表达需要CPU执行的功能显然是极不方便的!采用“助记符”表达“二进制机器码”,便于编写程序。“助记符”也称为“助记符指令”。用“助记符”编写的程序,称为“汇编语言程序”“助记符二进制机器码”过程称为“汇编”“二进制机器码 助记符”过程称为“反汇编
5、”常用的指令表达方式为:标号:助记符 操作对象1(结果),操作对象2,寻址方式,Addressing 地址(动名词),翻译为“寻址”一般意义:可以访问的所有地址空间的“地址表达式”指令中的意义:“地址”的表达形式:直接用“地址码”表达称为“直接寻址”用“寄存器内容”表达称为“寄存器间接寻址”寄存器作为访问对象称为“寄存器寻址”直接使用常数(立即数)称为“立即寻址”固定地址偏移称为“变址寻址”,也称:基址变址当前程序地址相对偏移相对寻址操作数是位寄存器或者位变量位寻址不同CPU还有其它表达方式(寻址方式),51单片机指令通用符号,Rn 代表R0,R1R7中任意一个,即:n=0,17Ri 代表R0
6、或R1,即:i=0.1#data 代表8位立即数(常数)#data16 代表16位立即数(常数)Direct 代表直接地址:8位地址码(变量名)或寄存器 名:寄存器除A,Rn外)rel 带符号的8位相对偏移地址Addr 11 addr16 11位或者16位地址Ri 用Ri的内容表达地址(8位地址)DPTR 用DPTR的内容表达地址(16位地址)LABEL 程序入口的名称BIT 位变量、位寄存器,如:P1.0,C,ACC.7等,51单片机寻址表达式1,直接寻址:操作对象是地址、变量名、SFR中的寄存器名。例如:MOV 20H,A MOV SP,#30H PUSH ACC(寄存器)间接寻址:通过寄
7、存器指出访问地址,寄存器只能使用R0,R1或DPTR,在寄存器前面冠以符号。例如:MOV R1,A MOVX DPTR,A 此表达方法可以方便地用于循环程序,51单片机寻址表达式2,寄存器寻址:对寄存器操作。寄存器指:Rn和A,其余“寄存器”不算。例如:MOV R4,A INC R7立即寻址:操作数是常数(立即数)。常数前冠以符号#,例如:MOV A,#30 MOV 20H,#30H位寻址:操作数是位寄存器或者位变量,例如:MOV P1.0,C SETB P1.1,51单片机寻址表达式3,变址寻址:基本地址偏移量。基本地址用DPTR表达,偏移量用A表达,在寄存器前面冠以符号。例如:MOVC A
8、,A+DPTR MOVC A,A+PC JMP A+DPTR相对寻址:当前程序地址(相对偏移)即PC+rel,相对偏移是一个8位符号数rel,其范围128127之间,表达为另一个程序入口的label,此label的距离不能太远,汇编器自动计算出相对偏移。主要用于“条件转移”指令,例如:DJNZ R7,label JNC label,51单片机指令内部传送指令,立即寻址MOV A,#DATAMOV Rn,#DATAMOV Ri,#DATAMOV Direct,#DATA直接寻址:MOV A,DirectMOV Direct,AMOV Direct,RnMOV Ri,DirectMOV Direc
9、t1,Direct2,51单片机指令内部传送指令,间接寻址MOV A,RiMOV Ri,AMOV Direct1,Ri寄存器寻址MOV A,RnMOV Rn,AMOV Direct1,Rn,51单片机指令外部传送指令,MOVX DPTR,AMOVX Ri,AMOVX A,DPTRMOVX A,RiMOVC A,A+DPTR 查表指令MOVC A,A+PC补充:MOV DPTR,#data16 唯一16位传送,51单片机指令堆栈操作指令,PUSH Direct 存储器内容存入堆栈POP Direct 堆栈内容回存到存储器注意,累加器A出入栈时,写为:PUSH ACC 和 POP ACC堆栈指令只
10、对“直接地址”有效!对A、Rn无效,51单片机指令数据交换指令,XCH A,RnXCH A,directXCH A,Rn半字节交换指令:XCHD A,Ri 只交换低四位 SWAP A 累加器A的高4位和低4位交换,相当于字节循环移位4次,字节拆分程序举例,MOV MEM,#0MOV MEM+1,#0;对MEM的连续两个存储器清零MOV R0,#MEM;用R0表达MEM地址MOV A,HEX;读取待拆数据,假定为“0ABH”XCHD A,R0;MEM中为“0BH”,A中为“A0H”INC R0SWAP A;A中高低4位互换,“A0H”变“0AH”MOV R0,A;存“0AH”到MEM+1 此程序
11、常用作显示前的处理,一个数码管只能显示1个16进制数据,1字节数据要用2个数码管才能显示。,51单片机指令算术运算指令,加法:带进位加法:ADD A,Rn ADDC A,RnADD A,direct ADDC A,directADD A,Rn ADDC A,RnADD A,#data ADDC A,#data后者吧“C”作为最低位连同数据一起进行相加,常用于16位加法的高8位相加。C是真正意义上的“进位”低8位相加后的进位。,51单片机指令算术运算指令,减法,必须带上“借位”SUBB A,Rn SUBB A,directSUBB A,RnSUBB A,#data一般使用时,先要使C=0即:CL
12、R C,16位减法时,高8位运算不要清除C,51单片机指令加1减1指令,INC A DEC AINC Rn DEC RnINC direct DEC directINC Ri DEC Ri它们的操作不影响状态标志PSW,即:FFH+1=0 或 0-1=FFH,不会产生进位或者借位标志,51单片机指令乘除法指令等,乘除法指令:MUL AB A*B=BA结果:高8位在B,低8位在ADIV AB A/B=AB 结果:商在A,余数在B十进制调整指令 DA ABCD码加减之后,将结果又恢复成BCD码数据指针加1指令 INC DPTR16位数据指针只能加1,不能减1,1字节16进制数转换成3字节BCD数举
13、例,设HEX中存放着一个16进制(2进制)数,如果要将它送到数码管进行显示,首先要将其转换成3字节的BCD数,每字节的值=09。假定转换结果存放到BUFF的连续3个单元中,依次为:百位;十位和个位。数据转换程序如下:CHDBCD:MOV R0,#BUFFMOV A,HEXMOV B,#100DIV ABMOV R0,A;存百位,INC R0MOV A,B;余数再除MOV B,#10DIV ABMOV R0,A;存十位INC R0MOV R0,B;存个位RET显然,BCD数(键盘输入的数)要转换成2进制或者16进制数,用乘法就可以了!只是这里举例的数都小于255。对“大于255”的数,需要用16
14、位乘除法子程序处理。,51单片机指令逻辑运算指令,与ANL A,RnANL A,directANL A,RiANL A,#dataANL direct,AANL direct,#data,或ORL A,RnORL A,directORL A,RiORL A,#dataORL direct,AORL direct,#data,指令的最后一个字符“L”意义为“逻辑”,51单片机指令逻辑运算指令,异或XRL A,RnXRL A,directXRL A,RiXRL A,#dataXRL direct,AXRL direct,#data,异或:两者的对应8位,各位相同时,结果为0,不同为1。前面讨论的“
15、与”、“或”、“异或”,都是字节中对应位进行运算。,51单片机指令累加器指令,累加器清零 CLR A结果等于:MOV A,#00H累加器取反 CPL A结果:A的各位变反,例如:MOV A,#01110000BCPL A结果:A=10001111B,51单片机指令移位指令,只能对累加器A操作全部都是“旋转”而不是“移位”!(Rotate)因此指令全都带有“R”开头分为:不含“进位”和“带进位”两种操作方式;又分为向左和向右两种逻辑方式,共4条指令,51单片机指令移位指令,RL ARR ARLC ARRC ASWAP A,高低4位互换,等效于执行4次“RR A”或者执行4次“RL A”指令,51
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 原理 应用
链接地址:https://www.31ppt.com/p-6176579.html