日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
51c語(yǔ)言計(jì)時(shí)函數(shù) c語(yǔ)音計(jì)時(shí)器

51單片機(jī)C語(yǔ)言中delay函數(shù)是怎么定義和使用的?

定義一個(gè)延時(shí)xms毫秒的延時(shí)函數(shù)

成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)南票,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18982081108

void delay(unsigned int xms) // xms代表需要延時(shí)的毫秒數(shù)

{

unsigned int x,y;

for(x=xms;x》0;x--)

for(y=110;y》0;y--);

}

使用:

void Delay10us(uchar Ms)

{

uchar data i;

for(;Ms》0;Ms--)

for(i=26;i》0;i--);

}

i=[(延時(shí)值-1.75)*12/Ms-15]/4

擴(kuò)展資料

1、在C51中進(jìn)行精確的延時(shí)子程序設(shè)計(jì)時(shí),盡量不要或少在延時(shí)子程序中定義局部變量,所有的延時(shí)子程序中變量通過(guò)有參函數(shù)傳遞。

2、在延時(shí)子程序設(shè)計(jì)時(shí),采用do…while,結(jié)構(gòu)做循環(huán)體要比f(wàn)or結(jié)構(gòu)做循環(huán)體好。

3、在延時(shí)子程序設(shè)計(jì)時(shí),要進(jìn)行循環(huán)體嵌套時(shí),采用先內(nèi)循環(huán),再減減比先減減,再內(nèi)循環(huán)要好。

c51定時(shí)計(jì)數(shù)C語(yǔ)言代碼

#includereg51.h

#includeINTRINS.h

#define?u16?unsigned?int

#define?u8?unsigned?char

/*********************************************************/

u8?ds[3];?//數(shù)碼管顯示緩存

//共陽(yáng)

code?u8?w[]={0x01,0x02,0x04,0x08}; //位碼

code?u8?d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};//斷碼

void?dispaly(){//顯示函數(shù)

static?u8?a;

if(++a=3)a=0;

P0=0xff;

P2=w[a];

P0=d[ds[a]];

}

/****************************************/

void?init() //初始化函數(shù)

{???TMOD=0x01;

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

EA=1;

ET0=1;

}

u16?count=0; //計(jì)數(shù)

u16?V=0;//速度

u16?js;//計(jì)時(shí)

u8?mc=P1^1;//脈沖引腳

u8?tt=0xff;

void?smmc(){

tt=1;

if(mc)tt|=0x01;

if((tt0x03)==0x02){//下降沿脈沖

if(count65535)count++;

}

}

/***********************************/

void?main()//主函數(shù)

{

init();//系統(tǒng)初始化

TR0=1;?//定時(shí)器開(kāi)始計(jì)時(shí)

while(1){

ds[0]=V/100%10;?//計(jì)數(shù)送到數(shù)碼管顯示緩存中

ds[1]=V/10%10;

ds[2]=V%10;

smmc();

if(js=10000){//10s

js=0;

V=4*count/10+2;//計(jì)算速度

count=0;

}

}

}

/****************************/

void?timer0()?interrupt?1//1ms定時(shí)器

{???

TH0=(65536-1000)/256;//重載初值

TL0=(65536-1000)%256;

dispaly();//顯示

js++;

}

基于51單片機(jī)的999倒計(jì)時(shí)C語(yǔ)言程序。

/*************************************

要求是能進(jìn)行9999秒倒計(jì)時(shí)

用C語(yǔ)言實(shí)現(xiàn)

*************************************/

#includeat89X51.h

#define uchar unsigned char

#define uint unsigned int

uchar num_qian,num_bai,num_shi,num_ge;//定義千位,百位,十位,個(gè)位。

uint time;//要顯示的時(shí)間0~9999

uint tcnt;//計(jì)時(shí)單元

//*****************//

//以下是端口定義

//*****************//

sbit key_qian=P1^0;//按鍵"千加1"

sbit key_bai =P1^2;//按鍵"百加1"

sbit key_shi =P1^4;//按鍵"十加1"

sbit key_ge =P1^6;//按鍵"個(gè)加1"

sbit laba =P3^1;//喇叭

void delay(unsigned int z)//1毫秒延時(shí)子函數(shù)

{

unsigned int x,y;

for(x=z;x0;x--)

for(y=110;y0;y--);

}

//*****************//

//以下是七段數(shù)碼管驅(qū)動(dòng)程序

//*****************//

/**************************************************

** 功能描述: 中斷接受字符串驅(qū)動(dòng)程序

**占用引腳資源 P30

**占用系統(tǒng)資源 串口中斷;中斷向量4

***************************************************/

#define DUAN P0

#define WEI P2

unsigned char code dispcode[]=

{

0x3F,/*0*/

0x06,/*1*/

0x5B,/*2*/

0x4F,/*3*/

0x66,/*4*/

0x6D,/*5*/

0x7D,/*6*/

0x07,/*7*/

0x7F,/*8*/

0x6F,/*9*/

}; //共陰段碼表

//0,1,2,3,4,5,6,7,8,9,A,b,C,c,d,E,F,NULL,-

uchar code dispbitcode[]=

{0xef,0xdf,0xbf,0x7f}; //共陰位碼表

uchar dispbuf[4],dispcount;//開(kāi)辟四個(gè)顯示緩沖區(qū)

void ledinit()/***初始化子函數(shù),定時(shí)器0刷新顯示內(nèi)容***/

{

TMOD|=0x01; // 定時(shí)器0方式1

TH0=(65536-5000)/256; //定時(shí)器16位模式

TL0=(65536-5000)%256; //溢出時(shí)間:5ms

TR0=1; //開(kāi)啟定時(shí)器0

ET0=1; //使能定時(shí)器0

EA=1; //系統(tǒng)使能

}

void leddisp()//固定顯示某些數(shù)字

{

dispbuf[0]=time/1000;

dispbuf[1]=time%1000/100;

dispbuf[2]=time%100/10;

dispbuf[3]=time%10;

}

void keytest()//按鍵檢測(cè)程序

{

if(!key_qian)//如果千位按鍵

{

delay(5);//5毫秒延時(shí)去抖

if(!key_qian)//如果千位按鍵的確按下了

{

num_qian++;//千位數(shù)字加一

while(!key_qian);//等待按鍵松開(kāi)

}

time+=num_qian*1000;//千位數(shù)字加1

}

if(!key_bai)//如果百位按鍵

{

delay(5);//5毫秒延時(shí)去抖

if(!key_bai)//如果百位按鍵的確按下了

{

num_bai++;//百位數(shù)字加一

while(!key_bai);//等待按鍵松開(kāi)

}

time+=num_bai*100;//百位數(shù)字加1

}

if(!key_shi)//如果十位按鍵

{

delay(5);//5毫秒延時(shí)去抖

if(!key_shi)//如果十位按鍵的確按下了

{

num_shi++;//千位數(shù)字加一

while(!key_shi);//等待按鍵松開(kāi)

}

time+=num_shi*10;//十位數(shù)字加1

}

if(!key_ge)//如果千位按鍵

{

delay(5);//5毫秒延時(shí)去抖

if(!key_ge)//如果個(gè)位按鍵的確按下了

{

num_qian++;//千位數(shù)字加一

while(!key_ge);//等待按鍵松開(kāi)

}

time+=num_ge;//個(gè)位數(shù)字加1

}

}

void main()//主程序

{

ledinit();//數(shù)碼管中斷初始化,定時(shí)器0刷新顯示內(nèi)容

while(1)//大循環(huán)

{

if((!key_qian)||(!key_bai)||(!key_shi)||(!key_ge))//如果四個(gè)按鍵中的任何一個(gè)被按下

keytest();//執(zhí)行按鍵檢測(cè)程序

leddisp();//不斷的刷新顯示內(nèi)容

}

}

//*************************************************

//以下是定時(shí)器0刷新數(shù)碼管顯示內(nèi)容驅(qū)動(dòng)程序

//*************************************************

/**************************************************

** 功能描述: 七段數(shù)碼管驅(qū)動(dòng)程序

**占用引腳資源: 數(shù)碼管段選,數(shù)碼管位選

**占用系統(tǒng)資源T0

***************************************************/

void t0(void) interrupt 1 //using 0

{

TH0=(65536-5000)/256; //5ms中斷

TL0=(65536-5000)%256; //16位定時(shí)器模式

WEI=0xff;//關(guān)位選

DUAN=dispcode[dispbuf[dispcount]]; //段選

WEI=dispbitcode[dispcount]; //開(kāi)位選

dispcount++;

if(dispcount==5)

dispcount=0;

tcnt++; //計(jì)數(shù)個(gè)數(shù)加一

if(tcnt==5*200)//滿(mǎn)足1S了

{

tcnt=0;//計(jì)數(shù)個(gè)數(shù)歸零

time--;//時(shí)間減一

if(time==0)//時(shí)間

while(1);

}

if(time10)//時(shí)間小于10

laba=~laba;//聲音報(bào)警

}

這是9999秒倒計(jì)時(shí)的


文章題目:51c語(yǔ)言計(jì)時(shí)函數(shù) c語(yǔ)音計(jì)時(shí)器
標(biāo)題路徑:http://www.dlmjj.cn/article/doigjce.html