A. 单片机亮灯程序怎么让8盏灯亮10次然后不亮
用51单片机来简单说明一下:
用8只LED代表8盏灯(D1~D8),限流电阻用一个9脚排阻RP1,原理图如下:
以上仅供参考。
B. 51单片机汇编语言的led亮灯编程题求解,必采纳
LED1 BIT P3.7 ; 程序没有改动,为了配合仿真图只改了端口。
KEY1 BIT P3.2
LJMP MAIN
ORG 0030H
MOV R1,#1 ; 亮灯个数
MAIN: MOV P1,#0FFH
CHECK: JB KEY1,CHECK
MOV P1,#11111111B
MOV R2,#8
LOOP: INC R1 ; 每次亮灯个数r1+1
MOV A,P1
CLR C
RRC A
MOV P1,A ; 亮灯
LCALL DL ; 跳到延迟程序 每次亮间延迟一会
DJNZ R2,LOOP ; 到r2(8次)循环结束
LJMP CHECK
ORG 0100H
DL: MOV R7,#100 ; 延迟程序
L1: MOV R6,#100
L2: MOV R5,#60
L3: NOP
NOP
DJNZ R5,L3
DJNZ R6,L2
DJNZ R7,L1
RET
END
C. 单片机串口通信控制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,也就不能正常返回数据。
D. 51单片机led灯怎么亮
要式连接51单片机的LED灯被点亮,拢共需要三步:
搭建好51单片机运行的最小系统,并连接好下载线。
LED灯的正极经过470Ω电阻连接在电源正极上,LED灯的负极连接在单片机的某个接口上,例如连接I/O口P1.0上。
编程使P1.0输出低电平,将编译好的程序下载到单片机里,在单片机再次上电后就可以看到LED灯发光亮起了。
E. 单片机如何在亮灯程序中添加一段音乐,亮灯的同时播放音乐
这个可以按照顺序读取音乐字段内容,输出给一个引脚,驱动蜂鸣器即可实现。
F. 单片机亮灯系统
这里给你给个单片机控制P1口的8个LED分别亮的程序。如果你需要点亮的不是LED,那就加一个ULN2003A,然后加一个继电器,然后驱动220V的电灯工作。
#include<reg52.h>
unsignedchardis_num[4]={0x05,0x0a,0x50,0xa0};
unsignedcharled_flag=0,led_on;
unsignedchartime_1s=0;
voidmain()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
P1=0x00;
while(1)
{
if(led_flag==1)
{
led_flag=0;
P1=dis_num[led_on];
}
}
}
voidtimer0_isr(void)interrupt1using1
{
time_1s++;
if(time_1s==20)
{
time_1s=0;
led_flag=1;
led_on++;
if(led_on==4)led_on=0;
}
}
///图片是这个程序中proteus下仿真运行的截图,希望对你有用