《单片机原理与实用技术》第5章.ppt

上传人:xin****828 文档编号:15488566 上传时间:2020-08-12 格式:PPT 页数:33 大小:462KB
返回 下载 相关 举报
《单片机原理与实用技术》第5章.ppt_第1页
第1页 / 共33页
《单片机原理与实用技术》第5章.ppt_第2页
第2页 / 共33页
《单片机原理与实用技术》第5章.ppt_第3页
第3页 / 共33页
点击查看更多>>
资源描述
第5章并行接口,莫海霞付晓光制作,5.1 最小应用系统,5.2 并行接口 5.2.1 并行接口结构原理,1. 并行接口的结构组成,并行接口的工作原理 1)并行口的输出 2)并行口的输入 3)读-改-写操作,5.2.2 并行接口的使用,1.输出数据 1)使用数据传送MOV指令输出字节数据 MOV Pm ,#data MOV Pm ,A MOV Pm ,direct MOV Pm ,Rn MOV Pm ,Ri 2)使用位操作指令输出各位数据 MOV Pm.n ,C SETB Rm.n CLR Pm.n 3)使用读改写指令改变输出数据 ANL Pm ,#data ORL Pm ,A INC Pm CPL Pm.n,2.输入数据 1)使用MOV指令输入字节数据 MOV A,Pm MOV direct,Pm MOV Ri,Pm 2)使用MOV指令输入口线位数据 MOV C,Pm.n 3)输入数据参与运算、判断 ANL A,Pm XRL A,Pm ADD A,Pm JNB Pm.n ,rel JBC Pm.m ,rel,例5-1 图5-6中,由开关K0K3控制L0L3,开关闭合,对应灯亮,试编程实现该功能。 解 分析:开关闭合,相应输入为0,而当输出为0时,指示灯亮,即只要将P1.0P1.3的状态传递给P1.4P1.7即可。 程序如下: ORL P1 ,#0FH ;将要输入的低位置1, 同时不改变高位状态 MOV A,P1 SWAP A ORL A,#0FH MOV P1,A RET,也可用位操作指令实现该功能,程序如下: ORL P1 ,#0FH MOV C,P1.0 MOV P1.4 ,C MOV C,P1.1 MOV P1.5 ,C MOV C,P1.2 MOV P1.6 ,C MOV C,P1.3 MOV P1.7 ,C RET,5.3 并行接口的应用实例 5.3.1 并行接口驱动喇叭发声,例5-2 图5-7所示为一报警装置,当盗贼闯断由P1.7引脚引出的接地细线时,由P1.0驱动喇叭发出频率为1000Hz 的“哔哔”报警声。设晶振频率为12MHz。,解分析:由图可知P1.7引线被撞断后,P1.0引脚为高电平1。1000Hz频率的方波周期为0.001秒,高、低电平持续时间各为0.5ms,应使用0.5ms的延时程序。程序如下: ORG 0100H CON:SETB P1.7 MOV C,P1.7 JNC CON ;判断P1.7是否为1 WARN:ACALL DELAY ;是1发出报警 CPL P1.0 SJMP WARN DELAY:MOV R7,#0FAH ;0.5ms延时程序 LOOP:DJNZ R7,LOOP ;2502121/12MHz=0.5ms RET END,例5-3设计一门铃控制程序,当门铃被按下时,播放“小星星”歌曲。 解分析:当无人按下按扭时,应使单片机系统不通电,故按扭可设计为上电复位按扭。 门铃可由I/O线驱动。 音符1、2、3、4、5、6、7对应的方波电流的频率分别为: 525Hz、590Hz、660Hz、700Hz、785Hz、880Hz、990Hz,对应的半周期分别为: 952s、847s、758s、714s、637s、568s、505s。以5s为延时单位,则各音符对应方波需延时的次数分别分190、170、152、143、127、114、101,都小于256,可以存放在字节单元里。 一拍对应的音长约为0.8秒。每个一拍的音符方波必须循环一定的次数以达到0.8秒。经计算可知, 1、2、3、4、5、6、7对应循环次数分别为: 842、941、1053、1119、1260、1404、1584都大于一个字节。将每个音符对应的循环次数拆分成两个字节的数的乘积,作为两重循环的次数,依次为:4210、5188、1381、5224、5252、2752、8198。 将对应的音符的频率延时次数、音长循环次数的两个拆分数据依次存放在表中。在程序中可查表获得。,程序如下: ORG 0000H ;上电启动 AJMP 0040H ORG 0040H MAIN: MOV DPTR,#0100H ;音符表首址 MOV R0,#42 ;歌曲长度 NEXT: CLR A MOVC A,A+DPTR ;取音符对应循环次数 MOV R7,A INC DPTR LCR A MOVC A,A+DPTR ;取音长对应循环次数 第一因数 MOV R6,A INC DPTR CLR A,MOVC A,A+DPTR ;取音长对应循环次 数第二因数 MOV R5,A INC DPTR CON: CPL P1.0 ;输出状态取反 ACALL DELAY ;与音频有关的延时 DJNZ R5,CON DJNZ R6,CON ;音长R5R6R75s =0.85 DJNZ R0,NEXT ;下一个音符 ORG 60H DELY: NOP ;与音频有关的延时 NOP NOP DJNZ R7,DELY;延时时间为5sR7 RET,ORG 0100H DB 190,4,210, 190,4,210, 127,5,252, 127,5,252 DB 114,27,52, 114,27,52, 127,5,252 ;对应音符1155665 DB 143,5,224, 143,5,224, 152,13,81, 152,13,81, DB 170,5,188, 170,5,188, 190,4,210, ;对应音符4433221 DB127,5,252, 127,5,252, 143,5,224, 143,5,224, DB 152,13,81, 152,13,81, 170,5,188, ;对应音符5544332 DB127,5,252, 127,5,252, 143,5,224, 143,5,224, DB 152,13,81, 152,13,81, 170,5,188, ;对应音符5544332 DB 190,4,210, 190,4,210, 127,5,252, 127,5,252 DB 114,27,52, 114,27,52, 127,5,252 ;对应音符1155665 DB 143,5,224, 143,5,224, 152,13,81, 152,13,81, DB 170,5,188, 170,5,188, 190,4,210, ;对应音符4433221 END,5.3.2 并行口控制步进电机,1.方向控制 若按ABCA顺序通电,则为正转,按ACBA则反转。这种工作方式称三相单三拍方式。三相“指A、B、C三个绕组;“单”是指每次只有一相绕级通电;“拍”是指从一种通电状态,转换到另一种通电状态,“三拍”即为有三种通电状态,控制绕组通电状态每切换三次为一个循环。 2.角度控制 对于常用步进电机,三拍工作方式一拍为30,六拍工作方式一拍为1.50。每一拍对应一个脉冲。故控制通电脉冲数,即可精确控制步进电机转过角度。 3.速度控制 步进电机的运转速度由输入A、B、C三相绕组脉冲的频率控制。,例5-4 编程控制步进电机。 解分析:由P1.0、P1.1、P1.2控制步进电机的A、B、C三个绕组。 转角存在内部RAM的2DH单元(度) ; 运转方向标志存在内部RAM的2EH单元(0为顺时针,非0逆时针) ; 工作方式标志存在内部RAM的2FH单元(6为六拍,3为三拍) ; 如表5-1所示为工作控制字。正转六拍为01H、03H、02H、06H、04H、05H,三拍方式为01H、 02H、 04H,存在30H开始的单元内; 设每个脉冲的频率为100Hz,由此决定转速。,表5-1 步进电机工作控制字,相关程序段如下: MOV A,2DH MOV B,#09 ;一个循环为90 DIV AB MOV R7,A ;总循环次数 MOV R6,2FH ;三、六拍 MOV R0,30H ;控制字首址 MOV A,2EH ;正、反转 JZ NEXT ;顺时针转 CJNE R6,#3,SIX ;六拍转 MOV 40H,32H ;三拍逆时针转,重排工作控制字 MOV 41H,31H MOV 42H,30H SJMP GOON SIX: MOV 40H,35H ;六拍逆时针转,重排工作控制字 MOV 41H,34H,MOV 42H,33H MOV 43H,32H MOV 44H,31H MOV 45H,30H MOV R0,#40H NEXT:MOV R1,R0 ;保护工作方式控制字首址 MOV R5,R6 ;保护工作方式控制字 CON:MOV A,R1 ;输出 ORL A,#03H MOV P1,A ACALL DELAY0.01 INC R1 DJNE R5,CON ;下一脉冲 DJNE R7,NEXT ;下一循环 DELAY0.01: ;0.01秒延时程序(略),5.3.3 并行接口控制LED显示器,表5-2 LED显示的字符与编码表,例5-5 用最小系统控制共阳七段LED显示器,循环显示地址单元20H30H中的单位十进制数,时间间隔1秒。,解电路如图5-12所示 由表5-1可知,十进制数09对应的共阳极编码为:C0H、F9H、A4H、B0H、99H、92H、82H、F8H、80H、90H。 程序如下: ORG 0100H MAIN:MOV R0,#20H MOV R1,#11H MOV DPTR,#TAB NEXT:MOV A,R0 ;读数 MOVC A,A+DPTR ;查编码表 MOV P1,A ACALL DELAY ;延时1秒 INC R0 ;下一单元 DJNZ R1,NEXT SJMP MAIN ORG 0140H DELAY:MOV R2,#0AH ;延时1秒子程序,LOOP1:MOV R3,#0C8H ;晶振频率为12MHz LOOP2:MOV R4,#0FAH HETE:DTNZ R4,HETE ;2502001021s1s DJNZ R3,LOOP2 DJNZ R2,LOOP1 RET ORG 0130H TAB:DB 3FH ;09编码表 DB 06H DB 5BH DB 4FH DB 66H DB 6DH DB 7DH DB 07H DB 7FH DB 6FH,例5-6 设计单片机电路,控制6位共阴七段LED显示器显示门位十六进制数。同时显示内容分别在外部I/O端口的10H15H单元。,解分析:若用同一并行口使6个七段LED在同一时间里显示不同的内容是不可能的。但我们可以利用人眼的视觉停留现象,在较短的时间使6位显示器依次亮、灭,只要每位显示器显示的时间足够短,就会给人造成多位同时显示的假象。这种显示方法叫动态显示。注意,在动态显示中,每位显示间隔的时间不能太长,不能超过20ms,否则会有闪烁感。 线路连后如图5-13所示。图中,用P0口控制各位显示的数字,用P1口的低6位选通哪一位显示。,程序如下: ORG 0060H MAIN: MOV R0 ,#10H MOV R6 ,#6 NEXT: MOVX A, R0;取数 MOV DPTR,#TAB MOVC A,A+DPTR;查显示码,MOV P0 ,A;输出显示码 MOV A;B ;控制某位显示 MOV P1,A ACALL DELAY ;延时 INC R0 ;修改地址指针 RL A MOV B,A ;修改显示位 DJNZ R6 ,NEXT SJMP MAIN DELAY:MOV R3,#02H ;3ms延时 LOOP: MOV R4,#0FAH ;设fosc=6MHz DJNZ R4,$ DJNZ R3,LOOP RET TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH, DB 6FH ,77H,7CH,39H,5EH,79H,71H END,5.3.4 并行口的键盘输入控制,键盘是人机对话的一个重要部件。人们通过键盘向单片机发出控制信号。,例5-7编写5-14按键检测程序。 解程序段如下: MOV P1 ,#0FFH CON:MOV A,P1 ;读P1 口 MOV R0,#0FFH MOV R7 ,#08H CHECK:RLC A ;依次检查A的各位是否为0 INC R0 JNC GOON ;为0转键盘处理程序 DJNZ R7 ,CHECK SJMP CON GOON:MOV A,R0 RL A MOV DPTR,#TAB SJMP A+DPTR ;查表 TAB:AJMP KEY0 ;键盘处理程序入口表 AJMP KEY1 AJMP KEY7,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!