微机原理用四个开关控制四个灯怎么编程序

微机原理用四个开关控制四个灯怎么编程序,第1张

步骤如下:

1、开始—读P1口数据到A。

2、A中的数据右移4次—A中的内容和F0H相或。

3、A中的数据送到P1口—回到开始。

4、单片机的P1.0-P1.3接四个发光二极管L1-L4的阴极,P1.4-P1.7接四个开关K1-K4。

5、程序:ORG00HSTART:MOVA,P1ANLA,#0F0HRRARRARRARRAORlA,#0F0HMOV,SJMPSTART。

DATA SEGMENT //定义数据段

ARRAY DB 8 DUP(0)定义八个0

NUM DB 31H,': ','$' 定义字符

IN1 DB 0AH,0DH,'Please input the score : ','$'定义字符串

IN2 DB 0AH,0DH,'error!Please input the score again: ','$'定义字符串

IN3 DB 0AH,0DH,'the range of number is: ','$' 定义字符串

IN4 DB 0AH,0DH,'the average score is ','$'定义字符串

DATA ENDS数据段定义完毕

STACKSEGMENT PARA STACK定义堆栈

DW 20H DUP(0)定义20H的堆栈

STACKENDS 堆栈段定义完毕

CODE SEGMENT 定义代码段

ASSUME CS:CODE,DS:DATA,SS:STACK 指定代码段,数据段,堆栈段

START: MOV AX,DATA程序开始

MOV DS,AX这两句是指定数段渗据段

XOR BX,BX 清空BX

MOV CX,7 计数器CX=7

ENTER:

LEA DX,IN1把IN1这个数据串的首地址给DX,作为基地址

MOV AH,9 设置显示属性AH=9

INT 21H 调用显示中断

MOV AH,1 设置显示属性

INT 21H 调用显示中断

CMP AL,30H

JB ERROR 比较是否产生错误。

CMP AL,39H

JA ERROR 比较是否产生错误。

MOV ARRAY[SI],AL把Al的值放到链陪ARRAY为基地址,SI为偏移棚燃蠢地址的位置。

INC SI 偏移地址自加

INC NUM

MOV DL,0AH

INC AH

INT 21H调用显示中断

MOV DL,0DH

INT 21H

LOOP ENTER 循环7次

JMP RANGE

ERROR: LEA DX,IN2

MOV AH,9

INT 21H

JMP ENTER

RANGE:

MOV BX,1

MOV CX,7

XOR DI,DI

RANGE1: MOV AL,ARRAY[DI]

CMP AL,ARRAY[DI+1]

JAE NEXT

XCHG ARRAY[DI+1],AL

MOV ARRAY[DI],AL

MOV BX,0

NEXT: INC DI

LOOP RANGE1

CMP BX,0

JE RANGE

LEA DX,IN3

MOV AH,9

INT 21H

MOV CX,7

XOR SI,SI

MOV AH,2

RANGE2:

MOV DL,ARRAY[SI]

INT 21H

INC SI

XOR DL,DL

INT 21H

LOOP RANGE2

MOV AH,2

MOV DL,0AH

INT 21H

MOV AL,0DH

INT 21H

LEA DX,IN4

MOV AH,9

INT 21H

MOV CX,4

XOR AX,AX

MOV AL,ARRAY[SI-2]

XOR AL,30H

SUBDIV:

ADD AL,ARRAY[SI-3]

SUB AL,30H

DEC SI

LOOP SUBDIV

MOV BL,5

DIV BL

PUSH AX

XOR AL,30H

MOV DL,AL

MOV AH,2

INT 21H

MOV DL,'.'

MOV AH,2

INT 21H

POP AX

MOV AL,AH

SHL AL,1

MOV DL,AL

XOR DL,30H

MOV AH,2

INT 21H

MOV AH,4CH

INT 21H

CODEENDS

END START

1、用寄存器BX和位移量首宽COUNT的寄存器相对寻址方式,把存储器中的一个字与AX寄存者迅亮器之内容相加,并把结果保存在存储器单元中。

解:ADD AX , [BX+COUNT]

MOV [BX+COUNT] , AX

2、将AX寄存器的内容减去CX寄存器的内容,并把结果保存在AX寄存器中。

解:SUBAX ,CX

3、下列程序的功能是:利用DOS的功能调用,显示一串字符;通过填空昌侍将下列程序补充完整。

STACK SEGMENT SYACK

DB 256 DUP (?)

TOP LABEL WORD

(STACK ENDS )

DATA SEGMENT

BUF DB ‘ I WISH YOU SUCCESS! $ ‘

DATA ENDS

CODE SEGEMENT

ASSUME (CS:CODE,DS:DATA,SS:STACK)

START: MOV AX,( DATA)

MOV DS,( AX )

MOV AX,(STACK)

MOV SS,AX

LEA SP, TOP

LEA DX,(BUF)

MOV AH,9

INT ( 21H )

(MOV AH, 4CH )

INT 21H

CODE ENDS

END START


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12329379.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存