標(biāo)題:
初學(xué)單片機,請問一個延時的問題
[打印本頁]
作者:
51老鷹
時間:
2022-8-8 10:31
標(biāo)題:
初學(xué)單片機,請問一個延時的問題
#include <STC11F.h>
#define uint unsigned int
#define uchar unsigned char
#include "intrins.h"
sbit ge=P3^5;
sbit shi=P3^4;
sbit bai=P3^3;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,};
uint num;
void delay(uint);
void main(void)
{
uint i;
while(1)
{
{
P3=0xff;
P1=0xff;
delay(2);
bai=0;
P1=table[num/100];
delay(15);
}
{
P3=0xff;
P1=0xff;
delay(2);
shi=0;
P1=table[num/10%10];//送個位段碼
delay(15);
}
{
P3=0xff;
P1=0xff;
delay(2);
ge=0;
P1=table[num%10];
delay(15);
}
i++;
if(i==100) //大概是1秒
{
i=0;
num++;
if(num>1000)
{
num=0;
}
}
delay(1); //延時約1ms,以此控制主循環(huán)周期
}
}
void delay(uint xms) //延時函數(shù)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
作者:
51老鷹
時間:
2022-8-9 13:39
不會編輯,下文沒接上,我重新試試
作者:
51老鷹
時間:
2022-8-9 13:40
初學(xué)51,只學(xué)到了延時函數(shù)階段,這個是我按照我的理解寫的一個三位數(shù)碼管999倒計時,其中自增加部分是是抄前輩的,
i++;
if(i==100) //大概是1秒
{
i=0;
num++;
if(num>1000)
{
num=0;
}
就是這一段有點不能理解,i==100是如何延時的,按我的理解這個要寫成
{
num=0,num<1000,num++;
delay(1000);
if(num=1000);
num=0;
}
每一秒鐘num自加一,直到滿1000,然后歸0.
作者:
墨魚腌肉
時間:
2022-8-10 16:55
這個i要進(jìn)這個函數(shù)void delay(uint xms) //延時函數(shù);
void delay() //延時函數(shù)
{
uint i,j;
for(i=100;i>0;i--)
for(j=110;j>0;j--);
}
這樣去理解
作者:
lkc8210
時間:
2022-8-10 17:54
看代碼不能斷章取義
你的代碼可以簡化為
while(1)
{
i++;
if(i==100) //大概是1秒
{
i=0;
num++;
}
delay(1);//延時約1ms,以此控制主循環(huán)周期<<<<<<<<<<<<<<<<<<<<<<<<<<<
}
復(fù)制代碼
這樣看的出如何延時的吧?
作者:
51老鷹
時間:
2022-10-22 17:04
感謝兩位老師的指點,是我理解片面了,要從總局來看這個。再次感謝兩位老師。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1