资源预览内容
第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
第9页 / 共23页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2024/9/201单片机原理及应用中南林业科技大学涉外学院单片机原理及应用2024/9/202总结v第一章 v 51系列v第二章v I/O口,CPU,存储器v第三章v 寻址方式,各类指令的格式、功能v 字节数、周期数v第四章v 子程序,查表程序,分支程序,循环程序中南林业科技大学涉外学院单片机原理及应用2024/9/203v第五章 v v 1、中断TCON、SCON、IE、IPv 各中断源的入口地址、请求标志、吊销v 中断服务程序v 2、定时器/计数器v TCON、TMODv T0、T1的定时、计数初值,启动,溢出v 4种工作方式中南林业科技大学涉外学院单片机原理及应用2024/9/204v第六章v 1、 SCON、PCONv 发送、接收的SBUF,指令,完成标志v 4种工作方式的帧数据、波特率v2、存储器的扩展:地址v3、I/O口扩展:8155v4、LED显示,键盘v5、A/D、D/A中南林业科技大学涉外学院单片机原理及应用2024/9/205指令应用实例 【例【例1】 在程序存储器中有一平方表,从在程序存储器中有一平方表,从2000H单单元开始存放,如下图,试通过查表指令查找出元开始存放,如下图,试通过查表指令查找出6的平方。的平方。解:采用解:采用DPTR作为基址寄存器的查表程序比较简作为基址寄存器的查表程序比较简单,查表范围大,也容易理解。只要预先使用单,查表范围大,也容易理解。只要预先使用一条一条16位数据传送指令,把表的首地址位数据传送指令,把表的首地址2000H送入送入DPTR,然后进行查表就可以了。,然后进行查表就可以了。 相应的程序如下:相应的程序如下: MOV A,#6 ;设定备查的表项设定备查的表项 MOV DPTR,#2000H ;设置设置DPTR为表始址为表始址 MOVC A,A+DPTR ;将将A的平方值查表后送的平方值查表后送A 如果需要查找其他数的平方,只需要将累加器如果需要查找其他数的平方,只需要将累加器A的内容的内容(变址变址)改一下即可。改一下即可。 2000H02019H12019H42019H92019H162019H252019H362019H492019H642009H81中南林业科技大学涉外学院单片机原理及应用2024/9/206指令应用实例 【例【例2】 试编程计算试编程计算5678H1234H的值,结果保存在的值,结果保存在R6、R5中。中。解:减数和被减数都是解:减数和被减数都是16位二进制数,计算时要先进行低位二进制数,计算时要先进行低8位的减法,然后再进行高位的减法,然后再进行高8位的减法,在进行低位的减法,在进行低8位减法位减法时,不需要考虑借位,所以要在减法指令之前将借位标时,不需要考虑借位,所以要在减法指令之前将借位标志清志清0。程序如下:。程序如下: MOV A,#78H;被减数低被减数低8位送累加器位送累加器 CLR C;清进位标志位清进位标志位CY SUBB A,#34H;减去减数减去减数 MOV R5,A;保存低保存低8位位 MOV A,#56H;被减数高被减数高8位送累加器位送累加器 SUBB A,#12H;减去减数减去减数 MOV R6,A;保存高保存高8位位中南林业科技大学涉外学院单片机原理及应用2024/9/207指令应用实例 【例【例3】 拆字程序:在内部拆字程序:在内部RAM 40H单元保存有以压缩单元保存有以压缩BCD码码表示的表示的2位十进制数,编程将它们拆开,分别保存在内部位十进制数,编程将它们拆开,分别保存在内部RAM的的41H、42H单元。单元。 解:程序如下:解:程序如下: MOV A,40H;压缩压缩BCD码送累加器码送累加器 ANL A,#0FH;高高4位清位清0,保留低保留低4位位 MOV 41H,A;保存低保存低4位位BCD码码 MOV A,40H;取数据取数据 MOV A,#0F0H;低低4位清位清0,保留高保留高4位位 SWAP A;高低位交换高低位交换 MOV 42H,A;保存高保存高4位位BCD码码中南林业科技大学涉外学院单片机原理及应用2024/9/208指令应用实例 【例【例4】 设设(SP)=30H,符号地址,符号地址PROG1指向程序存储器的指向程序存储器的5678H单元,当前单元,当前PC值为值为0123H。从。从0123H处执行指令处执行指令“LCALL PROG1”,分析执行后,分析执行后PC、SP的值和相关存储器的值和相关存储器的内容。的内容。解:执行过程为:解:执行过程为: (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。中南林业科技大学涉外学院单片机原理及应用2024/9/209指令应用实例 【例【例5】 比较内部比较内部RAM中中40H、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,41H;(40H)(41H),(41H)40HTOOFF: RET中南林业科技大学涉外学院单片机原理及应用2024/9/2010程序设计实例【例【例1】 P1口做输出口,控制口做输出口,控制8盏灯盏灯(P1口输出低电平时灯被点口输出低电平时灯被点亮亮),编程使灯按以下规律显示:同一时间只有两盏灯点亮,编程使灯按以下规律显示:同一时间只有两盏灯点亮,从从P1.7、P1.6控制的灯开始,每盏灯闪烁控制的灯开始,每盏灯闪烁5次,再移向下次,再移向下两盏灯,同样闪烁两盏灯,同样闪烁5次,循环往复,延时时间次,循环往复,延时时间1s。晶振频。晶振频率率6MHz。 解:主程序是双重循环程序,循环移位是外循环,灯闪烁解:主程序是双重循环程序,循环移位是外循环,灯闪烁5次次是内循环,内循环程序不能与外循环程序交叉。是内循环,内循环程序不能与外循环程序交叉。 延时延时1S采用三重循环程序。晶振频率为采用三重循环程序。晶振频率为6MHz时,机器周时,机器周期为期为2s,延时程序的延时时间计算方法如下:,延时程序的延时时间计算方法如下: 1+1+(1+(1+1+2)125+2)200+25+22s =1006036s=1.006036s 中南林业科技大学涉外学院单片机原理及应用2024/9/20114.3.2 循环程序设计实例循环程序设计实例地址地址机器机器码码程序程序注注释释 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 A;右移一位右移一位0042H03 RR A;再右移一位再右移一位0043H80 ED SJMP LP1主程序:中南林业科技大学涉外学院单片机原理及应用2024/9/2012地址地址机器机器码码程序程序注注释释 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,DEL1010AHDC F9 DJNZ R4,DEL2010CHDB F5 DJNZ R3,DEL3010EH22 RET;子程序返回子程序返回 END延时子程序:中南林业科技大学涉外学院单片机原理及应用2024/9/2013中断的应用实例 【例【例1】 P1口做输出口,控制八只灯口做输出口,控制八只灯(P1口输出低电平口输出低电平时灯被点亮时灯被点亮),利用手控单脉冲信号作为外部中断,利用手控单脉冲信号作为外部中断信号,控制八只灯按一定的规律循环点亮。信号,控制八只灯按一定的规律循环点亮。解:手控单脉冲信号作为外部中断信号由解:手控单脉冲信号作为外部中断信号由INT0(P3.2)管脚输入,设置中断允许寄存器管脚输入,设置中断允许寄存器IE中的中的EA、EX0位为位为1;只有一个中断源可不设置优先级别;中断;只有一个中断源可不设置优先级别;中断触发方式设为边沿触发,控制位触发方式设为边沿触发,控制位IT0应设置为应设置为1。 中南林业科技大学涉外学院单片机原理及应用2024/9/2014 ORG 0000H;程序入口程序入口0000H02 00 50 LJMP MAIN;转转向主程序向主程序 ORG 0003H;外部中断外部中断0的入口地址的入口地址0003H02 01 00 LJMP INT;转转向中断服向中断服务务程序程序 ORG 0050H0050HD2 AFMAIN: SETB EA0052HD2 A8 SETB EX00054HD2 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参考程序:中南林业科技大学涉外学院单片机原理及应用2024/9/2015T及应用实例【例【例2】 在在P1.0输出周期为输出周期为1 ms(频率频率1kHz)的方波,采用定时器的方波,采用定时器1方式方式0设计程序,晶振频率为设计程序,晶振频率为12MHz。解:根据题意,只要使解:根据题意,只要使P1.0每隔每隔500s取反一次即可得到周期取反一次即可得到周期1 ms的方波,因而的方波,因而T1的定时时间为的定时时间为500s。 用定时器用定时器1方式方式0时,定时器时,定时器/计数器方式寄存器计数器方式寄存器TMOD高高4位中位中的的M1M0应取应取00;可设定为软件启动定时器,故;可设定为软件启动定时器,故GATE取取0;因;因为用定时功能,为用定时功能,C/T取取0;定时器方式寄存器;定时器方式寄存器TMOD低低4位为无关位为无关位,一般都取位,一般都取0,所以,所以TMOD应为应为00H。 晶振频率为晶振频率为12MHz,T机机=12/fosc=12/(12106)=1s 定时初值定时初值 X=213-T/T机机=213-500/1=8192-500=7692 =1E0CH=1111000001100B 因因TL1的高的高3位未用,对计算出的定时初值位未用,对计算出的定时初值X要进行修正,即在要进行修正,即在低低5位前插入位前插入3个个0,修正后的定时初值,修正后的定时初值 X=1111000000001100B=F00CH 中南林业科技大学涉外学院单片机原理及应用2024/9/20166.3.2 方式方式0及应用实例及应用实例地址地址机器机器码码程序程序注注释释 ORG 0000H0000H02 00 50 LJMP MAIN ORG 0050H0050HD2 90MAIN: SETB P1.0;置置P1.0初始状初始状态态0052H75 89 00 MOV TMOD,#00H;置定置定时时器器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;输输出取反出取反006AH80 E4 SJMP LP1;重复循重复循环环 END参考程序:中南林业科技大学涉外学院单片机原理及应用2024/9/2017串行口应用举例串行口应用举例【例例3 3】设设甲甲乙乙机机以以串串行行方方式式1 1进进行行数数据据传传送送,fosc=11.0592MHzfosc=11.0592MHz,波波特特率率为为1200b/s1200b/s。甲甲机机发发送送的的1616个个数数据据存存在在内内RAM RAM 40H40H4FH4FH单单元元中中,乙乙机机接接收收后后存在内存在内RAM 50HRAM 50H为首地址的区域中。为首地址的区域中。 T1初值 = 256 - = 232 = E8H3232121200121200解:解:串串 行行 方方 式式 1波波 特特 率率 取取 决决 于于 T1溢溢 出出 率率 (设设SMOD=0),计算计算T1定时初值:定时初值:11059200110592002020中南林业科技大学涉外学院单片机原理及应用2024/9/2018甲机发送子程序:甲机发送子程序: MOV TMOD,#20H;置置T1定定时时器器工工作作方方式式2MOV TL1,#0E8H;置置T1计数初值计数初值MOV TH1,#0E8H;置置T1计数重装值计数重装值CLR ET1;禁止禁止T1中断中断SETB TR1;T1启动启动MOV SCON,#40H;置置串串行行方方式式1,禁禁止止接接收收MOV PCON,#00H;置置SMOD=0(SMOD不不能位操作能位操作) CLR ES;禁止串行中断禁止串行中断MOV R0,#40H;置发送数据区首地址置发送数据区首地址MOV R2,#16;置发送数据长度置发送数据长度MOVA,R0;读一个数据读一个数据MOVSBUF,A;发送发送JNB TI,$;等待一帧数据发送完毕等待一帧数据发送完毕CLR TI;清发送中断标志清发送中断标志INC R0;指向下一字节单元指向下一字节单元DJNZR2,TRSA;判判16个个数数据据发发完否完否?未完继续未完继续RET ;TXDA:TXDA: TRSA:TRSA:中南林业科技大学涉外学院单片机原理及应用2024/9/2019MOV TMOD,#20H;置置T1定定时时器器工作方式工作方式2MOV TL1,#0E8H;置置T1计计数数初初值值MOV TH1,#0E8H;置置T1计计数数重重装值装值CLR ET1;禁止禁止T1中断中断SETB TR1;T1启动启动MOV SCON,#40H;置置串串行行方方式式1,禁止接收禁止接收MOV PCON,#00H;置置SMOD=0(SMOD不能位操作不能位操作)CLR ES;禁止串行中断禁止串行中断MOV R0,#50H;置置接接收收数数据据区区首首地地址址MOV R2,#16;置接收数据长度置接收数据长度SETB REN;启动接收启动接收JNB RI,$;等等待待一一帧帧数数据接收完毕据接收完毕CLR RI;清接收中断标志清接收中断标志MOV A,SBUF ;读接收数据读接收数据MOV R0,A;存接收数据存接收数据INC R0;指指向向下下一一数数据据存存储储单元单元DJNZ R2,RDSB;判判16个个数数据据接收完否接收完否?未完继续未完继续RET ;乙机接收子程序:乙机接收子程序:RXDB:RXDB:RDSB:RDSB:中南林业科技大学涉外学院单片机原理及应用2024/9/2020v线选法扩展二片2K容量,6116,一片4K容量,2716v v2716:0000H07FFHv61161):0000H07FFHv61162):0800H0FFFH中南林业科技大学涉外学院单片机原理及应用2024/9/2021vv MCS-51 MCS-51单片机与单片机与81558155的接口的接口vv【例【例8-48-4】试设计一个】试设计一个80318031单片机与并行接口芯片单片机与并行接口芯片81558155的接口电路,并对的接口电路,并对81558155进行初始化编程:让进行初始化编程:让81558155的的PAPA口、口、PBPB口工作在基本输入口工作在基本输入/ /输出方式,其中,输出方式,其中,A A口口为输出,为输出,B B口为输入,对输入脉冲进行口为输入,对输入脉冲进行3232分频,定时分频,定时器作为脉冲发生器,输出连续脉冲。器作为脉冲发生器,输出连续脉冲。vv对对8155I/O8155I/O口地址分配如下:口地址分配如下:vv命令命令/ /状态寄存器的地址:状态寄存器的地址: 7F00H 7F00HvvPAPA口的地址:口的地址:7F01H7F01HvvPBPB口的地址:口的地址:7F02H7F02HvvPCPC口的地址:口的地址:7F03H7F03Hvv定时器低定时器低8 8位的地址:位的地址:7F04H7F04Hvv定时器高定时器高8 8位的地址:位的地址:7F05H7F05H。vv80318031单片机与并行接口单片机与并行接口81558155的接口电路如图所示。的接口电路如图所示。中南林业科技大学涉外学院单片机原理及应用2024/9/2022中南林业科技大学涉外学院单片机原理及应用2024/9/2023vv81558155初始化参考程序如下:初始化参考程序如下: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 , A
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号