Ⅰ 如何算51單片機延時時間
用KEIL軟體可以計算時間,將while的起始位置和終止位置加紅點(雙擊即可);
然後左側的SEC後面的就是執行的時間。
再給你幾個延時程序做參考:
軟體延時:(asm)
晶振12MHZ,延時1秒
程序如下:
DELAY:MOV 72H,#100
LOOP3:MOV 71H,#100
LOOP1:MOV 70H,#47
LOOP0:DJNZ 70H,LOOP0
NOP
DJNZ 71H,LOOP1
MOV 70H,#46
LOOP2:DJNZ 70H,LOOP2
NOP
DJNZ 72H,LOOP3
MOV 70H,#48
LOOP4:DJNZ 70H,LOOP4
定時器延時:
晶振12MHZ,延時1s,定時器0工作方式為方式1
DELAY1:MOV
R7,#0AH
;;晶振12MHZ,延時0.5秒
AJMP
DELAY
DELAY2:MOV
R7,#14H
;;晶振12MHZ,延時1秒
DELAY:CLR
EX0
MOV
TMOD,#01H
;設置定時器的工作方式為方式1
MOV
TL0,#0B0H
;給定時器設置計數初始值
MOV
TH0,#3CH
SETB
TR0
;開啟定時器
HERE:JBC
TF0,NEXT1
SJMP
HERE
NEXT1:MOV
TL0,#0B0H
MOV
TH0,#3CH
DJNZ
R7,HERE
CLR
TR0
;定時器要軟體清零
SETB
EX0
RET
C語言延時程序:
10ms延時子程序(12MHZ)
void delay10ms(void)
{
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
}
1s延時子程序(12MHZ)
void delay1s(void)
{
unsigned char h,i,j,k;
for(h=5;h>0;h--)
for(i=4;i>0;i--)
for(j=116;j>0;j--)
for(k=214;k>0;k--);
}
200ms延時子程序(12MHZ)
void delay200ms(void)
{
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=132;j>0;j--)
for(k=150;k>0;k--);
}
500ms延時子程序程序: (12MHZ)
void delay500ms(void)
{
unsigned char i,j,k;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--);
}
不過實際得到的延時會存在差異,所以最好用實驗的方法調整延時參數。
Ⅱ 求一個51單片機助手軟體。
我已經給你發送了過去。使用的是「青島張彥欣單片機」的企業郵箱。請查收。
Ⅲ 我現在是要用計算機控制單片機的P2.0埠輸出0和1,單片機與計算機的線路也已經連接好了
最簡單的
1.微機接受按鍵,
2.232串口通信
3..單片機接收232口信息
4.單片機經過判斷,在IO口上把指定電平輸出
用C51,則語句不超過一頁紙