新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)C語言程序設(shè)計(jì):100 000s 以內(nèi)的計(jì)時(shí)程序

單片機(jī)C語言程序設(shè)計(jì):100 000s 以內(nèi)的計(jì)時(shí)程序

作者: 時(shí)間:2013-08-03 來源:網(wǎng)絡(luò) 收藏

/* 名稱:100 000s 以內(nèi)的

說明:在 6 只數(shù)碼管上完成 0~99 999.9s。

*/

#includereg51.h>

#includeintrins.h>

#define uchar unsigned char

#define uint unsigned int

//段碼

uchar code


DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//6 只數(shù)碼管上顯示的數(shù)字

uchar Digits_of_6DSY[]={0,0,0,0,0,0};

uchar Count;

sbit Dot=P0^7;

//延時(shí)

void DelayMS(uint ms)

{

uchar t;

while(ms--) for(t=0;t120;t++);

}

//主程序

void main()

{

uchar i,j;

P0=0x00;

P3=0xff;

Count=0;

TMOD=0x01;


//計(jì)數(shù)器 T0 方式 1

TH0=(65536-50000)/256; //50ms 定時(shí)

TL0=(65536-50000)%256;

IE=0x82;

TR0=1; //啟動 T0

while(1)

{

j=0x7f;

//顯示 Digits_of_6DSY[5]~Digits_of_6DSY[0]的內(nèi)容

//前面高位,后面低位,循環(huán)中 i!=-1 亦可寫成 i!=0xff

for(i=5;i!=-1;i--)

{

j=_crol_(j,1);

P3=j;

P0=DSY_CODE[Digits_of_6DSY[i]];

if(i==1) Dot=1; //加小數(shù)點(diǎn)

DelayMS(2);

}

}

}

//T0 中斷函數(shù)

void Timer0() interrupt 1

{

uchar i;

TH0=(65536-50000)/256; //恢復(fù)初值

TL0=(65536-50000)%256;

if(++Count!=2) return;

Count=0;

Digits_of_6DSY[0]++; 位累加

for(i=0;i=5;i++) //進(jìn)位處理

{

if(Digits_of_6DSY[i]==10)

{

Digits_of_6DSY[i]=0;

if(i!=5) Digits_of_6DSY[i+1]++; 如果 0~4 位則分別向高一位進(jìn)位

}

else break; //若某低位沒有進(jìn)位,怎循環(huán)提前結(jié)束

}

}

單片機(jī)C語言程序設(shè)計(jì):100 000s 以內(nèi)的計(jì)時(shí)程序

c語言相關(guān)文章:c語言教程


單片機(jī)相關(guān)文章:單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理


塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉