焊接资讯

您现在的位置是:首页 > led灯 > 正文

led灯

串口通信控制led灯程序汇编语言(单片机串口控制LED灯)

工品易达2022-10-29led灯27

汇编语言 编写 程序 LED 灯显示

开关控制指示灯显示

MY8255_A EQU 0A860H;8255A口地址

MY8255_B EQU 0A861H;8255B口地址

MY8255_C EQU 0A862H;8255C口地址

MY8255_MODE EQU 0A863H;8255控制口地址

CODE SEGMENT

ASSUME CS:CODE

START: MOV DX,MY8255_MODE

MOV AL,82H

OUT DX,AL ;将控制字82H写入8255控制口,A口方式0输出,B口方式0输入, C口未用到。

A1: MOV DX,MY8255_B

IN AL,DX ;读8255 B口内容

MOV DX,MY8255_A

OUT DX,AL ; 将前面读到的B口内容送到A口,即A口内容=B口内容

CALL BREAK ;调用子程序BREAK

JMP A1;跳转到A1

BREAK PROC NEAR ;BREAK子程序

MOV AH,1

INT 16H

JZ RETURN ;读按键字符,ZF=1,则返回;ZF=0,则AL=字符

MOV AX,4C00H

INT 21H ;返回DOS 

RETURN:RET

BREAK ENDP

CODE ENDS 

END START

;流水灯显示

MY8255_A EQU 0b860H;8255A口地址

MY8255_B EQU 0b861H;8255B口地址

MY8255_C EQU 0b862H;8255C口地址

MY8255_MODE EQU 0b863H;8255控制口地址

DATA SEGMENT

LA DB ?;留出1个字节

LB DB ?;留出1个字节

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV DX,MY8255_MODE

MOV AL,80H

OUT DX,AL ;控制字80H送入8255控制口,A口、B口都是方式0输出,C口未用到。

MOV DX,MY8255_A

MOV AL,7FH

OUT DX,AL ;将7FH送入A口

MOV LA,AL ;将7FH送入LA存储单元

MOV DX,MY8255_B

MOV AL,0FEH

OUT DX,AL ;将FEH送入B口

MOV LB,AL ;将FEH送入LB存储单元

CALL DALLY

A1: MOV AL,LA

ROR AL,1 ;LA内容循环右移1次

MOV LA,AL

MOV DX,MY8255_A

OUT DX,AL ;将循环右移后的LA内容送A口,其目的是让A口连接的LED灯依次向右循环点亮

MOV AL,LB

ROL AL,1 ;LB内容循环左移1次

MOV LB,AL

MOV DX,MY8255_B

OUT DX,AL ;将循环左移后的LB内容送B口,其目的是让B口连接的LED灯依次向左循环点亮

CALL DALLY ;延时,让一个LED灯发光稳定之后再点亮另一个

CALL BREAK ;调用BREAK子程序,看是否有键按下

JMP A1 ;跳转到A1

DALLY: MOV CX,3FFH ;延时子程序

D1: MOV AX,0FFFFH

D2: DEC AX

JNZ D2

LOOP D1

RET

BREAK PROC NEAR ;是否有键按下

MOV AH,06H

MOV DL,0FFH

INT 21H

JE RETURN ;若无,则转RETURN

MOV AX,4C00H

INT 21H ;返回DOS

RETURN:RET

BREAK ENDP

CODE ENDS

END START

用汇编语言写串口控制led时间

是应该使用单片机吧?

用什么单片机都行吗?

控制led时间,时间是什么意思?

控制两个 LED 的亮灭,只需四个数,即可,不用输入《H》。

汇编语言设计甲机通过串口控制乙机LED闪烁程序

程序如下:

;----------------------------------------

ORG 0000H

SJMP START

ORG 0023H

LJMP UART_INT

;----------------------------------------

START:

MOV SP, #60H

MOV SCON, #50H ;方式1,8-n-1

MOV TMOD, #20H

MOV TH1, #0FDH ;波特率设置

MOV TL1, #0FDH ;9600@11.0592MHz

SETB TR1

SETB ES ;开放中断

SETB EA

LOOP:

MOV A, P2 ;读出的拨码开关信息

DJNZ R7, $ ;延时

DJNZ R6, $ - 2

MOV B, P2 ;再读

CJNE A, B, LOOP ;消抖

MOV SBUF, A ;向串口发送

MOV P1, A ;在本机显示

JNB TI, $

CLR TI

SJMP LOOP

;----------------------------------------

UART_INT:

PUSH ACC

JB TI, U_EXIT

CLR RI

MOV A, SBUF ;读出串口收到的信息

MOV P0, A ;送P0口显示

U_EXIT: POP ACC

RETI

;----------------------------------------

END

求新手51单片机串口控制led灯

unsigned char tmp;

sbit led=P1^0;

void main(void)

{

TMOD = 0x20; // 定时器1工作于8位自动重载模式, 用于产生波特率

TH1 = 0xFD; // 波特率9600

TL1 = 0xFD;

SCON = 0x50; // 设定串行口工作方式

PCON = 0xef; // 波特率不倍增

TR1 = 1; // 启动定时器1

IE = 0x0; // 禁止任何中断

while(1)

{

if(RI) // 是否有数据到来

{

RI = 0;

tmp = SBUF; // 暂存接收到的数据

switch(tmp )

{

case 0x03:led=1;break;//收到0x03,LED灯亮

case 0x33:led=0;break;//收到0x03,LED灯灭

}

}

}

}

单片机串口通信控制led灯的点亮

pc通过串口和单片机交换数据,从而控制LED灯。 pc程序用labview 调用Visa 进行串口通讯。单片机接受到串口命令后控制I/O口的高低电平实现led灯亮灭控制。

用串口调试助手就行,网上到处可以下载。也好用。关键问题是在电脑上发送的0,1,是以什么数据格式发送的,通常以字符格式发送的,即是ASCII码。所以,单片机接收时,也要按字符格式发才行。而你的程序是按十六进制数的格式判断的,也就是二进制数,所以,发送和接收格式不统一,单片机就不能正常接收控制LED0,也就不能正常返回数据。 if(SBUF==0) //这是按二进制数接收的 if(SBUF==1) //这也是按二进制数接收的 这样写程序,要求电脑上,要按二进制数即十六进制数发送才行。 还是按字符格式收发比较好。

看你这程序编的,ha 查询RI 不是等于 1,而是0 只有当数据传送过来的时候,RI才会由1变为0,所以需要查询的状态是 0,不是1 当接收完数据后,再进行对RI的清零 还是不多说了,上程序,若满意请记得采纳一下,谢谢! 这是一个由串口助手发送十六进制码来控制单片机的8个LED亮灭的简单小程序

电脑上,你是用什么软件发送数据的看用串口调试助手就行,网上到处可以下载。也好用。关键问题是在电脑上发送的0,1,是以什么数据格式发送的,通常以字符格式发送的,即是ASCII码。所以,单片机接收时,也要按字符格式发才行。而你的程序是按十六进制数的格式判断的,也就是二进制数,所以,发送和接收格式不统一,单片机就不能正常接收控制LED0,也就不能正常返回数据。

如何用汇编语言控制led灯闪烁?

用AT89C2051单片机(可以换成任意的51单片机)仿真,控制一个LED灯闪烁,LED灯接在P1.7脚上。程序如下

LED1 BIT P1.7

MAIN:CPL LED1

ACALL  DELAY

SJMP  MAIN

DELAY:MOV R7,#0;延时子程序

MOV  R6,#0

LOP:DJNZ R6,$

DJNZ R7,LOP

RET

END

仿真图如下

串口通信控制led灯程序汇编语言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于单片机串口控制LED灯、串口通信控制led灯程序汇编语言的信息别忘了在本站进行查找喔。微信号:ymsc_2016

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~