A. 幫我解釋下單片機c語言程序
#include"reg51.h" //51系列單片機頭文件
sbit LED0=P0^0; //聲明單片機P0口的第一位
void set_start() //初始化函數
{
TMOD=0X01; //設置定時器0為工作方式1
TL0=0X65; //裝初值
TH0=0XFC;
TR0=1; //啟動定時器0
ET0=1; //開定時器0中斷
EA=1; //開總中斷
}
void Time() interrupt 1 //中斷函數
{
static unsigned int uiTount=0;
TL0=0X65; //重裝初值
TH0=0XFC;
uiTount++; //uiTount自加
if(uiTount<1000)P2=0X06; //如果uiTount小於1000,則給P2口賦值0X06
else if(uiTount>=1000&&uiTount<2000)P2=0; //否則,如果uiTount大於等於1000 ,小於2000,則P2口置低電平
else uiTount=0; //否則uiTount=0
}
main() //主函數
{
set_start(); //初始化函數
P0=0; //P0口置低電平
LED0=1; //LED0置高電平
while(1) //死循環,程序執行到此
{
;
}
}
B. 想在單片機上接一個工作指示燈,高手來告訴我怎麼做啊
根據指示什麼,你接的位置不一樣
如果指示單片機的工作電源是否正常,你直接把燈和一5K電阻串起來,一端接單片機的VCC,另一端接地
如果你想指示單片機是不是在運行,你把燈和電阻接到空閑的IO管腳上(比如P1.0),然後在程序中在這個管腳上產生低頻的脈沖(1Hz左右,方便觀察,太快了閃得看不清),那麼,只要燈在閃,說明單片機在運行
當然還有其他辦法
C. 8個LED指示燈循環閃爍的程序(單片機)
1:設置一個變數i,它可以從0循環到3
2:檢測一個已取消緩沖的鍵。按「+1」
3:當I值為每個值時,執行相應的模式。
水量燈參考程序
#include
#include
#定義uchar無符號字元
Ucharj,溫度;
無效延遲(無符號整型ms)
{
Uchart;
(女士)
對於(t = 0;T < 123;T + +);
}
Voidmain()
{
P1=0XFF;
延遲(500);
Temp=0xfe;//奇怪,led連接在P2.3~P2.6
對於(j = 0;J < 4;J + +)
{
P1=temp;
延遲(500);
Temp=_crol_(Temp,1);
}
P1=0XFF;
(1);
}
(3)程序指示單片機擴展閱讀:
注意事項:
#include「reg52。這個文件為單片機定義了一些特殊的功能寄存器
Typedef無符號int在16以下;//以聲明的方式定義數據類型
無符號charu8;
//LED燈
Sbitleda=P0;
Sbitled1=P0^0;
Sbitled2=P0^1;
Sbitled3=P0^2;
Sbitled4=P0^3;
Sbitled5=P0^4;
Sbitled6=P0^5;
Sbitled7=P0^6;
Sbitled8=P0^7;
無效延遲(16歲以下)
{
,(我);
}
Voidmain()
{
而(1)
{
勒達=1;//所有的燈都亮著
//從左到右熄滅
Led1=0;
延遲(50000);//延遲時間約為450毫秒
Led2=0;
延遲(50000);//延遲時間約為450毫秒
Led3=0;
延遲(50000);//延遲時間約為450毫秒
Led4=0;
延遲(50000);//延遲時間約為450毫秒
Led5=0;
延遲(50000);//延遲時間約為450毫秒
Led6=0;
延遲(50000);//延遲時間約為450毫秒
Led7=0;
延遲(50000);//延遲時間約為450毫秒
Led8=0;
延遲(100000);//延遲大約900毫秒
//從右到左照明
Led8=1;
延遲(50000);//延遲時間約為450毫秒
Led7=1;
延遲(50000);//延遲時間約為450毫秒
Led6=1;
延遲(50000);//延遲時間約為450毫秒
Led5=1;
延遲(50000);//延遲時間約為450毫秒
Led4=1;
延遲(50000);//延遲時間約為450毫秒
Led3=1;
延遲(50000);//延遲時間約為450毫秒
Led2=1;
延遲(50000);//延遲時間約為450毫秒
Led1=1;
延遲(50000);//延遲時間約為450毫秒
勒達=1;//所有的燈都亮著
}
}
D. 單片機程序設計 很簡單的 高分懸賞
每個燈亮1秒,每個燈閃亮頻率為5次/秒。
下列程序,在PROTEUS中模擬通過.
;-------------------------------------
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_INT
ORG 0030H
MAIN:
MOV SP, #7FH
MOV TMOD,#01H
MOV TL0, #LOW(65536-50000)
MOV TH0, #HIGH(65536-50000)
SETB TR0
MOV IE, #82H
MOV R2, #2
MOV R3, #10
MOV R4, #0
M_LOOP:
LJMP M_LOOP ;等待中斷,一切閃動、移位,都在中斷裡面解決
;----------------------------------------------------------------
T0_INT:
MOV TL0, #LOW(65536-50000)
MOV TH0, #HIGH(65536-50000)
DJNZ R2, T0_END
MOV R2, #2 ;加大此數字,如改為8,可降低速度,便於觀察.
INC R4
DJNZ R3, FLASH ;100ms減一次一.
MOV R3, #10
INC R6 ;1s加一次一
FLASH:
MOV A, R6
ANL A, #7
MOV R5, A ;0~7, 1s換一次位.
INC R5
MOV A, R4
MOV C, ACC.0
MOV A, #255
MOV P1, A ;關顯示
T0_LOOP:
RLC A
DJNZ R5, T0_LOOP
MOV P1, A
T0_END:
RETI
;------------------------------------------------------------
END
E. 怎用51單片機做一個程序運行指示LED
你好,很高興為你解答,這個程序最好用定時器實現,單片機定時500m閃爍一次,如果不用定時器,放在主程序裡面的話,主程序裡面如果有很多子程序執行的話,那麼就會出現閃爍時間不一樣,希望我的回答對你有幫助!
F. 單片機的程序寫法
P1.6的燈亮,是輸出低電平亮燈嗎?還是高電平亮燈?
最關鍵:
1.電池電壓到12.6V,必須要用電阻分壓,不能直接到,超過5V了。
2.單片機的電源由什麼供電?要求電源5V要穩定,能否保證?否則影響A/D轉精度。
G. 單片機 P1口高四位控制低四位的指示燈 程序解析
MAIN: MOV A,#0FH ;0fH到累加器
ORL P1,A ;P1與0fH或運算,P1的低4位置1,高4位不變
MOV A,P1 ;P1的狀態值到累加器
SWAP A ;交換累加器的高低4位,即高4位變低4位,低4位變高4位。
MOV P1,A ;累加器A到P1
LJMP MAIN ;循環
這個程序有問題吧?P1會不停的變化的。
MAIN:MOV A,P1
ORL A,#0FH
SWAP A
MOV P1,A
LJMP MAIN
這樣才不會變。
H. 用C51單片機設計一個指示燈閃爍程序,要求:亮1秒鍾,滅2秒鍾
#include <reg51.h>
sbit led=P1^0;
unsigned char a;
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
init();
while(1)
{
if(a==60)
{
a=0;
if(a<=20)
led=0; //LED亮
else
led=1; //LED滅
}
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
}
I. 單片機工作狀態LED指示燈
我最近做了個測溫電路,通過串口傳到上位機
led不亮表示溫度過低,
長滅短亮表示偏低
常亮表示正常
長亮短滅表示偏高
用定時器計數實現閃爍。一般不用延時,盡量用定時中斷。