130 likes | 352 Views
任务 2 :汽车转向灯的控制. 工作任务描述. 按要求设计电路图,用实验箱面板上的 L1 、 L2 作为左转向灯,用 L7 、 L8 作为右转向灯, K1 作 为左转向开关, K2 作为右转向开关。用 P1.3 作为 K1 的输入端 , P1.4 作为 K2 的输入端, P1.0 、 P1.1 控制左转向灯, P1.6 、 P1.7 控制右转向灯。 要求: (1) 当 K1=1,K2=0 时,左转向灯亮,右转向灯灭 (2) 当 K1=0,K2=1 时,左转向灯灭;右转向灯亮 (3) 其余情况,左、右转向灯灭;. 教学内容: 1 、熟悉常用伪指令
E N D
任务2:汽车转向灯的控制 微型计算机控制技术
工作任务描述 按要求设计电路图,用实验箱面板上的L1、 L2作为左转向灯,用L7、L8作为右转向灯,K1作 为左转向开关,K2作为右转向开关。用P1.3作为 K1的输入端, P1.4作为K2的输入端,P1.0、P1.1 控制左转向灯,P1.6、P1.7控制右转向灯。 要求: (1)当K1=1,K2=0时,左转向灯亮,右转向灯灭 (2)当K1=0,K2=1时,左转向灯灭;右转向灯亮 (3)其余情况,左、右转向灯灭; 微型计算机控制技术
教学内容: 1、熟悉常用伪指令 2、学会循环程序、查表程序、分支程序、子程序的设计方法 微型计算机控制技术
一、伪指令 伪指令:在汇编时起控制作用,自身并不产生机器 码,而仅是为汇编服务的一些指令。伪指令不属于 80C51指令系统。 常用的伪指令有以下几种: ⒈ 起始伪指令 格式:ORG 16位地址 功能:规定ORG下面目标程序的起始地址。 ⒉ 结束伪指令 END 格式:END 功能:汇编语言源程序的结束标志。在END后面的指令,汇编程序不再处理。 ⒊ 等值伪指令 EQU(Equate) 格式:字符名称 EQU 数据或汇编符号 功能:将数据或汇编符号赋予规定的字符名称 微型计算机控制技术
⒋ 数据地址赋值伪指令 DATA 格式:字符名称 DATA 表达式 功能:将数据地址或代码地址赋予规定的字符名称。 ⒌ 定义字节伪指令DB(Define Byte) 格式:DB 8位二进制数表 功能:从指定的地址单元开始,定义若干个8位内存单元的数据。数据与数据之间用“,”分割。 ⒍ 定义字伪指令DW(Define Word) 格式:DW 16位二进制数表 功能:从指定的地址单元开始,定义若干个16位数据。 ⒎ 定义位地址伪指令BIT 格式:字符名称 BIT 位地址 功能:将位地址赋予所规定的字符名称。 微型计算机控制技术
二、程序设计方法 1、循环程序 编制一个循环闪烁灯的程序。设80c51单片机的P1口作为输出口 接8只发光二极管,当输出位为“0”时,发光二极管点亮,输出位 为“1”时为暗。试编程实现:8只彩灯每次亮1个,亮1s,暗1s, 形成循环。 要求:使用移位指令, 采用循环结构设计程序。 (fosc=6MHz) 微型计算机控制技术
程序如下: ORG 0000H LJMP MAIN ORG 4000H MAIN:MOV R3,#8 MOV A,#0FEH LIGHT:MOV P1,A LCALL DLY1s MOV P1,#00H LCALL DLY1s RL A DJNZ R3,LIGHT SJMP MAIN DLY1s:MOV R5,#5 DYS0:MOV R6,#200 DYS1:MOV R7,#250 DJNZ R7,$ DJNZ R6, DYS1 DJNZ R5, DYS0 RET END 微型计算机控制技术
2、查表程序 • 编制一个循环闪烁灯的程序。设80c51单片机的P1口作为输出口接8只发光二极管,当输出位为“0”时,发光二极管点亮,输出位为“1”时为暗。试编程实现:8只彩灯每次亮1个,亮1s,暗1s,形成循环。要求:采用循环结构设计程序。(fosc=6MHz) 微型计算机控制技术
程序如下: ORG 0000H LJMP MAIN ORG 4000H MAIN:MOV DPTR,#TAB CLR A MOV R3,#8 LIGHT:MOVC A,@A+DPTR MOV P1,A LCALL DLY1s MOV P1,#00H LCALL DLY1s INC A DJNZ R3,LIGHT SJMP MAIN LY1s:MOV R5,#5 DYS0:MOV R6,#200 DYS1:MOV R7,#250 DJNZ R7,$ DJNZ R6, DYS1 DJNZ R5, DYS0 RET TAB:BD 0FEH, 0FDH, 0FBH, 0F7H BD 0EFH, 0DFH, 0BFH, 7FH END 微型计算机控制技术
三、分支程序 已知电路如图所示,要求实现: ① S0单独按下,红灯亮,其余灯灭; ② S1单独按下,绿灯亮,其余灯灭; ③ 其余情况,黄灯亮。 微型计算机控制技术
解:程序如下 • SGNL:ANL P1,#OE3H ;红绿黄灯灭 • ORL P1,#03H ;置P1.0、P1.1输入态, P1.5~P1.7状态不变 • SL0: JNB P1.0,SL1 ;P1.0=0,S0未按下,转判S1 • JNB P1.1,RED ;P1.0=1,S0按下;且P1.1=0,S1未按下,转红灯亮 • YELW:SETB P1.4 ;黄灯亮 • CLR P1.2 ;红灯灭 • CLR P1.3 ;绿灯灭 • SJMP SL0 ;转循环 • SL1: JNB P1.1,YELW ;P1.0=0,S0未按下;P1.1=0,S1未按下,转黄灯亮 • GREN:SETB P1.3 ;绿灯亮 • CLR P1.2 ;红灯灭 • CLR P1.4 ;黄灯灭 • SJMP SL0 ;转循环 • RED: SETB P1.2 ;红灯亮 • CLR P1.3 ;绿灯灭 • CLR P1.4 ;黄灯灭 • SJMP SL0 ;转循环 微型计算机控制技术
四、子程序 编制一个循环闪烁灯的程序。设80C51单片机的P1口作为输出 口,经驱动电路74LS240(8反相三态缓冲/驱动器)接8只发光二极 管,如图所示。当输出位为“1”时,发光二极管点亮,输出位为 “0”时为暗。试编程实现:每个灯闪烁点亮10次,再转移到下一 个灯闪烁点亮10次,循环不止。(fosc=6MHz) 微型计算机控制技术
FLASH:MOV A,#01H ;置灯亮初值 • FSH0: MOV R2,#0AH ;置闪烁次数 • FLOP: MOV P1,A ;点亮 • LCALL DY1s ;延时1s • MOV P1,#00H ;熄灭 • LCALL DY1s ;延时1s • DJNZ R2,FLOP ;闪烁10次 • RL A ;左移一位 • SJMP FSH0 ;循环 • DY1s: MOV R7,#250 ;置循环次数 • DLOP: MOV R7, DLOP ;延时1s • RET 微型计算机控制技术