收藏 分销(赏)

2022年单片机fuxi.ppt

上传人:二*** 文档编号:5455610 上传时间:2024-11-05 格式:PPT 页数:23 大小:410.54KB
下载 相关 举报
2022年单片机fuxi.ppt_第1页
第1页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、中南林业科技大学涉外学院单片机原理及应用总结v第一章 51系列v第二章 I/O口,CPU,存储器v第三章 寻址方式,各类指令的格式、功能 字节数、周期数v第四章 子程序,查表程序,分支程序,循环程序11/5/20242中南林业科技大学涉外学院单片机原理及应用v第五章 1、中断TCON、SCON、IE、IP 各中断源的入口地址、请求标志、撤消 中断服务程序 2、定时器/计数器 TCON、TMOD T0、T1的定时、计数初值,启动,溢出 4种工作方式11/5/20243中南林业科技大学涉外学院单片机原理及应用v第六章 1、SCON、PCON 发送、接收的SBUF,指令,完成标志 4种工作方式的帧数

2、据、波特率2、存储器的扩展:地址3、I/O口扩展:81554、LED显示,键盘5、A/D、D/A11/5/20244中南林业科技大学涉外学院单片机原理及应用指令应用实例【例【例1】在程序存储器中有一平方表,从在程序存储器中有一平方表,从2000H单单元开始存放,如图所示,试通过查表指令查找元开始存放,如图所示,试通过查表指令查找出出6的平方。的平方。解:采用解:采用DPTR作为基址寄存器的查表程序比较简作为基址寄存器的查表程序比较简单,查表范围大,也容易理解。只要预先使用单,查表范围大,也容易理解。只要预先使用一条一条16位数据传送指令,把表的首地址位数据传送指令,把表的首地址2000H送入送

3、入DPTR,然后进行查表就可以了。,然后进行查表就可以了。相应的程序如下:相应的程序如下:MOV A,#6 ;设定备查的表项设定备查的表项 MOV DPTR,#2000H ;设置设置DPTR为表始址为表始址 MOVC A,A+DPTR ;将将A的平方值查表后送的平方值查表后送A 如果需要查找其他数的平方,只需要将累加器如果需要查找其他数的平方,只需要将累加器A的内容的内容(变址变址)改一下即可。改一下即可。2000H02001H12002H42003H92004H162005H252006H362007H492008H642009H8111/5/20245中南林业科技大学涉外学院单片机原理及应

4、用指令应用实例【例【例2】试编程计算试编程计算5678H1234H的值,结果保存在的值,结果保存在R6、R5中。中。解:减数和被减数都是解:减数和被减数都是16位二进制数,计算时要先进行低位二进制数,计算时要先进行低8位的减法,然后再进行高位的减法,然后再进行高8位的减法,在进行低位的减法,在进行低8位减法位减法时,不需要考虑借位,所以要在减法指令之前将借位标时,不需要考虑借位,所以要在减法指令之前将借位标志清志清0。程序如下:。程序如下:MOV A,#78H;被减数低被减数低8位送累加器位送累加器 CLR C;清进位标志位清进位标志位CY SUBB A,#34H;减去减数减去减数 MOV R

5、5,A;保存低保存低8位位 MOV A,#56H;被减数高被减数高8位送累加器位送累加器 SUBB A,#12H;减去减数减去减数 MOV R6,A;保存高保存高8位位11/5/20246中南林业科技大学涉外学院单片机原理及应用指令应用实例【例【例3】拆字程序:在内部拆字程序:在内部RAM 40H单元保存有以压缩单元保存有以压缩BCD码码表示的表示的2位十进制数,编程将它们拆开,分别保存在内部位十进制数,编程将它们拆开,分别保存在内部RAM的的41H、42H单元。单元。解:程序如下:解:程序如下:MOV A,40H;压缩压缩BCD码送累加器码送累加器 ANL A,#0FH;高高4位清位清0,保

6、留低保留低4位位 MOV 41H,A;保存低保存低4位位BCD码码 MOV A,40H;取数据取数据 MOV A,#0F0H;低低4位清位清0,保留高保留高4位位 SWAP A;高低位交换高低位交换 MOV 42H,A;保存高保存高4位位BCD码码11/5/20247中南林业科技大学涉外学院单片机原理及应用指令应用实例【例【例4】设设(SP)=30H,符号地址,符号地址PROG1指向程序存储器的指向程序存储器的5678H单元,当前单元,当前PC值为值为0123H。从。从0123H处执行指令处执行指令“LCALL PROG1”,分析执行后,分析执行后PC、SP的值和相关存储器的值和相关存储器的内

7、容。的内容。解:执行过程为:解:执行过程为:(PC)+3=0123H+3=0126H。将将PC内容压入堆栈:向内容压入堆栈:向(SP)+1=31H中压入中压入26H,向,向(SP)+1=32H中压入中压入01H,(SP)=33H。将将PROG1=5678H送入送入PC,即,即(PC)=5678H。程序转向以。程序转向以5678H为首地址的子程序执行。为首地址的子程序执行。最终执行结果是:最终执行结果是:(PC)=5678H、(SP)=33H、(31H)=26H、(32H)=01H。11/5/20248中南林业科技大学涉外学院单片机原理及应用指令应用实例【例【例5】比较内部比较内部RAM中中40

8、H、41H两个单元中的数据大小,两个单元中的数据大小,将大的数送至将大的数送至42H单元。单元。解:程序如下:解:程序如下:MOV A,40H ;取第一个数取第一个数 CJNE A,41H,NEQU;比较比较,不相等转移至不相等转移至NEQU处处 MOV 42H,40H ;相等相等,(40H)42H SJMP TOOFF;完成完成,转移至结尾退出转移至结尾退出 NEQU:JC LESS ;若若CY=1,说明说明(40H)(41H)转移转移 MOV 42H,40H;(40H)(41H),(40H)40H SJMP TOOFF;完成完成,转移至结尾退出转移至结尾退出 LESS:MOV 42H,41

9、H;(40H)(41H),(41H)40HTOOFF:RET11/5/20249中南林业科技大学涉外学院单片机原理及应用程序设计实例【例【例1】P1口做输出口,控制口做输出口,控制8盏灯盏灯(P1口输出低电平时灯被点口输出低电平时灯被点亮亮),编程使灯按以下规律显示:同一时间只有两盏灯点亮,编程使灯按以下规律显示:同一时间只有两盏灯点亮,从从P1.7、P1.6控制的灯开始,每盏灯闪烁控制的灯开始,每盏灯闪烁5次,再移向下次,再移向下两盏灯,同样闪烁两盏灯,同样闪烁5次,循环往复,延时时间次,循环往复,延时时间1s。晶振频。晶振频率率6MHz。解:主程序是双重循环程序,循环移位是外循环,灯闪烁解

10、:主程序是双重循环程序,循环移位是外循环,灯闪烁5次次是内循环,内循环程序不能与外循环程序交叉。是内循环,内循环程序不能与外循环程序交叉。延时延时1S采用三重循环程序。晶振频率为采用三重循环程序。晶振频率为6MHz时,机器周时,机器周期为期为2 s,延时程序的延时时间计算方法如下:,延时程序的延时时间计算方法如下:1+1+(1+(1+1+2)125+2)200+25+221+1+(1+(1+1+2)125+2)200+25+22 s s =1006036 =1006036 11/5/202410中南林业科技大学涉外学院单片机原理及应用4.3.2 循环程序设计实例循环程序设计实例地址地址机器机器

11、码码程序程序注注释释 ORG 0000H0000H02 00 30 LJMP MAIN ORG 0030H0030H74 5FMAIN:MOV A,#5FH;灯点亮初始状灯点亮初始状态态0032H79 05 LP1:MOV R1,#5;循循环闪烁环闪烁次数次数0034HF5 90 LP2:MOV P1,A0036H12 01 00 LCALL DELAY;延延时时1s0039H75 90 FF MOV P1,#0FFH003CH12 01 00 LCALL DELAY;延延时时1s003FHD9 F3 DJNZ R1,LP2;循循环闪烁环闪烁次数不次数不够够5次次,继继续续0041H03 RR

12、 A;右移一位右移一位0042H03 RR A;再右移一位再右移一位0043H80 ED SJMP LP1主程序:11/5/202411中南林业科技大学涉外学院单片机原理及应用地址地址机器机器码码程序程序注注释释 ORG 0100H0100H7B 05DELAY:MOV R3,#5;延延时时1s的循的循环环次数次数0102H7C C8DEL3:MOV R4,#200;延延时时200ms的循的循环环次数次数0104H7D 7DDEL2:MOV R5,#125;延延时时1ms的循的循环环次数次数0106H00DEL1:NOP0107H00 NOP0108HDD FE DJNZ R5,DEL1010

13、AHDC F9 DJNZ R4,DEL2010CHDB F5 DJNZ R3,DEL3010EH22 RET;子程序返回子程序返回 END延时子程序:11/5/202412中南林业科技大学涉外学院单片机原理及应用DJNZ R1,LP2DJNZ R4,DEL2LCALL DELAY解:减数和被减数都是16位二进制数,计算时要先进行低8位的减法,然后再进行高8位的减法,在进行低8位减法时,不需要考虑借位,所以要在减法指令之前将借位标志清0。ORG 0030H解:采用DPTR作为基址寄存器的查表程序比较简单,查表范围大,也容易理解。ORG 0050HMOV TL1,#0CHMOV A,40H;压缩B

14、CD码送累加器0592MHz,波特率为1200b/s。MOV P1,AMOVA,#0C1H;LCALL DELAYDEL3:MOV R4,#200CLR ES;禁止串行中断中断的应用实例【例【例1】P1口做输出口,控制八只灯口做输出口,控制八只灯(P1口输出低电平口输出低电平时灯被点亮时灯被点亮),利用手控单脉冲信号作为外部中断,利用手控单脉冲信号作为外部中断信号,控制八只灯按一定的规律循环点亮。信号,控制八只灯按一定的规律循环点亮。解:手控单脉冲信号作为外部中断信号由解:手控单脉冲信号作为外部中断信号由INT0(P3.2)管脚输入,设置中断允许寄存器管脚输入,设置中断允许寄存器IE中的中的E

15、A、EX0位为位为1;只有一个中断源可不设置优先级别;中断;只有一个中断源可不设置优先级别;中断触发方式设为边沿触发,控制位触发方式设为边沿触发,控制位IT0应设置为应设置为1。11/5/202413中南林业科技大学涉外学院单片机原理及应用 ORG 0000H;程序入口程序入口0000H02 00 50 LJMP MAIN;转转向主程序向主程序 ORG 0003H;外部中断外部中断0的入口地址的入口地址0003H02 01 00 LJMP INT;转转向中断服向中断服务务程序程序 ORG 0050H0050HD2 AFMAIN:SETB EA0052HD2 A8 SETB EX00054HD2

16、 88 SETB IT0;中断触中断触发发方式方式为边为边沿触沿触发发0056H74 FE MOV A,#0FEH0058HF5 90 MOV P1,A005AH80 FE SJMP$ORG 0100H0100H23 INT:RL A;中断服中断服务务程序程序0101HF5 90 MOV P1,A0103H32 RETI END参考程序:11/5/202414中南林业科技大学涉外学院单片机原理及应用T及应用实例【例【例2】在在P1.0输出周期为输出周期为1 ms(频率频率1kHz)的方波,采用定时器的方波,采用定时器1方式方式0设计程序,晶振频率为设计程序,晶振频率为12MHz。s取反一次即可

17、得到周期取反一次即可得到周期1 ms的方波,因而的方波,因而T1的定时时间为的定时时间为500 s。用定时器用定时器1方式方式0时,定时器时,定时器/计数器方式寄存器计数器方式寄存器TMOD高高4位中位中的的M1M0应取应取00;可设定为软件启动定时器,故;可设定为软件启动定时器,故GATE取取0;因;因为用定时功能,为用定时功能,C/T取取0;定时器方式寄存器;定时器方式寄存器TMOD低低4位为无关位为无关位,一般都取位,一般都取0,所以,所以TMOD应为应为00H。晶振频率为晶振频率为12MHz,T机机=12/fosc=12/(12 106)=1 s 定时初值定时初值 X=213-T/T机

18、机=213-500/1=8192-500=7692 因因TL1的高的高3位未用,对计算出的定时初值位未用,对计算出的定时初值X要进行修正,即在要进行修正,即在低低5位前插入位前插入3个个0,修正后的定时初值,修正后的定时初值 11/5/202415中南林业科技大学涉外学院单片机原理及应用6.3.2 方式方式0及应用实例及应用实例地址地址机器机器码码程序程序注注释释 ORG 0000H0000H02 00 50 LJMP MAIN ORG 0050H0050HD2 90MAIN:SETB P1.0;置置P1.0初始状初始状态态0052H75 89 00 MOV TMOD,#00H;置定置定时时器

19、器1为为工作方式工作方式00055H75 8D F1 MOV TH1,#0F0H;置置500 s定定时时初初值值0058H75 8B 0C MOV TL1,#0CH005BHD2 8E SETB TR1;启启动动定定时时器器1005DH10 8F 02 LP1:JBC TF1,LP2;查询计查询计数溢出数溢出0060H80 FB SJMP LP1;未到未到500 s继续计继续计数数0062H75 8D F1 LP2:MOV TH1,#0F0H;重新置重新置500 s定定时时初初值值0065H75 8B 0C MOV TL1,#0CH0068HB2 90 CPL P1.0;输输出取反出取反006

20、AH80 E4 SJMP LP1;重复循重复循环环 END参考程序:11/5/202416中南林业科技大学涉外学院单片机原理及应用中南林业科技大学涉外学院单片机原理及应用甲机发送子程序:甲机发送子程序:MOV TMOD,#20HMOV TMOD,#20H;置置T1T1定时器工作方式定时器工作方式2 2MOV TL1,#0E8HMOV TL1,#0E8H;置置T1T1计数初值计数初值MOV TH1,#0E8HMOV TH1,#0E8H;置置T1T1计数重装值计数重装值CLR ET1CLR ET1;禁止禁止T1T1中断中断SETB TR1SETB TR1;T1;T1启动启动MOV SCON,#40

21、HMOV SCON,#40H;置串行方式置串行方式1,1,禁止接收禁止接收MOV PCON,#00HMOV PCON,#00H;置置SMOD=0(SMODSMOD=0(SMOD不能位操作不能位操作)CLR ESCLR ES;禁止串行中断禁止串行中断MOV R0,#40HMOV R0,#40H;置发送数据区首地址置发送数据区首地址MOV R2,#16MOV R2,#16;置发送数据长度置发送数据长度MOVMOVA,R0A,R0;读一个数据读一个数据MOVMOVSBUF,ASBUF,A;发送发送JNBJNBTI,$TI,$;等待一帧数据发送完毕等待一帧数据发送完毕CLRCLRTITI;清发送中断标

22、志清发送中断标志INCINCR0R0;指向下一字节单元指向下一字节单元DJNZDJNZR2,TRSAR2,TRSA;判判1616个数据发完否个数据发完否?未完继续未完继续RET RET ;TXDA:TXDA:TRSA:TRSA:11/5/202418中南林业科技大学涉外学院单片机原理及应用MOV TMOD,#20HMOV TMOD,#20H;置置T1T1定时器工作方式定时器工作方式2 2MOV TL1,#0E8HMOV TL1,#0E8H;置置T1T1计数初值计数初值MOV TH1,#0E8HMOV TH1,#0E8H;置置T1T1计数重装值计数重装值CLR ET1CLR ET1;禁止禁止T1

23、T1中断中断SETB TR1SETB TR1;T1;T1启动启动MOV SCON,#40HMOV SCON,#40H;置串行方式置串行方式1,1,禁止接收禁止接收MOV PCON,#00HMOV PCON,#00H;置置SMOD=0(SMODSMOD=0(SMOD不能位操作不能位操作)CLR ESCLR ES;禁止串行中断禁止串行中断MOV R0,#50HMOV R0,#50H;置接收数据区首地址置接收数据区首地址MOV R2,#16MOV R2,#16;置接收数据长度置接收数据长度SETB RENSETB REN;启动接收启动接收JNBJNB RI,$RI,$;等待一帧数据接收完毕等待一帧数

24、据接收完毕CLRCLR RI RI;清接收中断标志清接收中断标志MOVMOV A,SBUF A,SBUF;读接收数据读接收数据MOVMOV R0,A R0,A;存接收数据存接收数据INCINC R0 R0;指向下一数据存储单元指向下一数据存储单元DJNZDJNZ R2,RDSB R2,RDSB;判判1616个数据接收完否个数据接收完否?未完继续未完继续RET RET ;乙机接收子程序:乙机接收子程序:RXDB:RXDB:RDSB:RDSB:11/5/202419中南林业科技大学涉外学院单片机原理及应用中南林业科技大学涉外学院单片机原理及应用vv MCS-51 MCS-51单片机与单片机与815

25、58155的接口的接口vv【例例8-48-4】试设计一个试设计一个80318031单片机与并行接口芯片单片机与并行接口芯片81558155的接口的接口电路,并对电路,并对81558155进行初始化编程:让进行初始化编程:让81558155的的PAPA口、口、PBPB口工作口工作在基本输入在基本输入/输出方式,其中,输出方式,其中,A A口为输出,口为输出,B B口为输入,对输口为输入,对输入脉冲进行入脉冲进行3232分频,定时器作为脉冲发生器,输出连续脉冲。分频,定时器作为脉冲发生器,输出连续脉冲。vv对对8155I/O8155I/O口地址分配如下:口地址分配如下:vv命令命令/状态寄存器的地

26、址:状态寄存器的地址:7F00H 7F00HvvPAPA口的地址:口的地址:7F01H7F01HvvPBPB口的地址:口的地址:7F02H7F02HvvPCPC口的地址:口的地址:7F03H7F03Hvv定时器低定时器低8 8位的地址:位的地址:7F04H7F04Hvv定时器高定时器高8 8位的地址:位的地址:7F05H7F05H。vv80318031单片机与并行接口单片机与并行接口81558155的接口电路如图所示。的接口电路如图所示。11/5/202421中南林业科技大学涉外学院单片机原理及应用11/5/202422中南林业科技大学涉外学院单片机原理及应用vv81558155初始化参考程序

27、如下:初始化参考程序如下:vvMOVMOV DPTR,#7F04HDPTR,#7F04HvvMOVMOV A,#20HA,#20H;对计数器的低;对计数器的低8 8位赋初值位赋初值vvMOVXMOVXDPTR,ADPTR,AvvINCINCDPTRDPTRvvMOVMOV A,#C0H A,#C0H;设定定时器为连续脉冲输出;设定定时器为连续脉冲输出vvMOVXMOVXDPTR,ADPTR,A;装入定时器高;装入定时器高8 8位位vvMOVMOV DPTR,#7F00HDPTR,#7F00HvvMOVMOV A A,#0C1H#0C1H;设设定定命命令令控控制制字字,并并启启动动定时器定时器vvMOVXMOVXDPTR,ADPTR,A11/5/202423

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服