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下模擬運行的截圖,希望對你有用