新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)C語(yǔ)言程序設(shè)計(jì):定時(shí)器控制數(shù)碼管動(dòng)態(tài)顯示

單片機(jī)C語(yǔ)言程序設(shè)計(jì):定時(shí)器控制數(shù)碼管動(dòng)態(tài)顯示

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

/* 名稱:動(dòng)態(tài)

顯示

說(shuō)明:8 個(gè)上分兩組動(dòng)

態(tài)顯示年月日與時(shí)分秒,本例的

位顯示延時(shí)用定時(shí)器實(shí)現(xiàn)。

*/

#includereg51.h>

#includeintrins.h>

#define uchar unsigned char

#define uint unsigned int

//段碼,最后一位是“-”的段碼

uchar code

DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};

//待顯示的數(shù)據(jù):09-12-25 與 23-59-58(分兩組顯示)

uchar code Table_of_Digits[][8]={{0,9,10,1,2,10,2,5},{2,3,10,5,9,10,5,8}};

uchar i,j=0;

uint t=0;

//主程序

void main()

{

P3=0x80;

//位碼初值

TMOD=0x00; //計(jì)數(shù)器 T0 方式 0

TH0=(8192-4000)/32; //4ms 定時(shí)

TL0=(8192-4000)%32;

IE=0x82;

TR0=1; //啟動(dòng) T0

while(1);


}

//T0 中斷函數(shù)控制刷新顯示

void DSY_Show() interrupt 1

{

TH0=(8192-4000)/32; //恢復(fù)初值

TL0=(8192-4000)%32;

P0=0xff; //輸出位碼和段碼

P0=DSY_CODE[Table_of_Digits[i][j]];

P3=_crol_(P3,1);

j=(j+1)%8; //數(shù)組第 i 行的下一字節(jié)索引

if(++t!=350) return; //保持刷新一段時(shí)間

t=0;

i=(i+1)%2; //數(shù)組行 i=0 時(shí)顯示年月日,i=1 時(shí)顯示時(shí)分秒


}

單片機(jī)C語(yǔ)言程序設(shè)計(jì):定時(shí)器控制數(shù)碼管動(dòng)態(tài)顯示

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


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


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


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




評(píng)論


相關(guān)推薦

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

關(guān)閉