當前位置:編程學習大全網 - 網站源碼 - 單片機怎麽寫才能讓led燈每隔5秒亮下壹個並且數碼管壹直從5到0顯示倒計時?

單片機怎麽寫才能讓led燈每隔5秒亮下壹個並且數碼管壹直從5到0顯示倒計時?

設為***陽極七段數碼管;

char? segCode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90} //***陽極七段碼

char? bitCode[]={0x01,0x02,0x04,0x08,0x10,0x20} //***陽極6位位碼,高電平有效

/***在指定位顯示數據***/

// m為待顯示的七段碼數據

// k為指定的位顯示數據

void show(char m,char k)

{? char dat;

dat = segCode[m];? // m=0,1,2,3,4,5,6,7,8,9

HC573(dat,1); ? //輸出段碼

dat = bitCode[k];? // k=0,1,2,3,4,5

HC573(dat,2); ? //輸出位碼

}

sbit segm = P2^6;? //段鎖存

sbit bitc = P2^7;? //位鎖存

/*** HC573 接收鎖存數據***/

void HC573(char dat,char nub)

{

P0=dat;

if(nub==1)

{ segm=1;segm=0;} ? //輸出段鎖存信號

if(nub==2)

{ bitc = 1;bitc = 0;}? //輸出位鎖存信號

}

bit intflag;

void main()

{ char times;

intflag=0;? times=5;

P1=0xff;

initime0() ; //初始化定時器0

while(1)

{? if(intflag)?

? { intflag=0 ;?

? show(times,0) ; // 因為僅有壹位顯示,不考慮位掃描問題

? times--;

? if(times==0) { times=5; P1=~P1; }

? }

}

}

  • 上一篇:Easy TV Live的緩沖視頻在哪個文件夾中?
  • 下一篇:slam雷達vs避障雷達區別
  • copyright 2024編程學習大全網