|
10黑幣
做了一個(gè)LED旋轉(zhuǎn)顯示屏,抄了一個(gè)程序,有一部分程序一直不能理解,就是下面這部分,運(yùn)行的流程是什么樣子呀,
這里shownum初始化為0;程序沒(méi)有問(wèn)題,但是,一直不能理解為什么這樣能夠達(dá)到顯示效果,數(shù)據(jù)輸送到P1,P0,然后如何循環(huán)顯示的,為什么數(shù)組的字模數(shù)據(jù)存在showdat[160+i],
- uchar xdata ShowDat[176];
- void EX0_int() interrupt 0 //外部中斷0
- {
- ShowNum=0;
- ms++;
-
- }
- void timer0() interrupt 1 //定時(shí)中斷0 中斷處理
- {
- TH0=0xfe; //0.37ms 11.0592M 晶振
- TL0=0xab;
- if(ShowNum<80)
- {
- P1=ShowDat[ShowNum*2];
- P0=ShowDat[ShowNum*2+1];
- ShowDat[ShowNum*2]=ShowDat[ShowNum*2+2];
- ShowDat[ShowNum*2+1]=ShowDat[ShowNum*2+3];
- ShowNum++;
- QuanOK=1;
- }
- else
- {
- P1=P0=0xff;
- if(ms==8)
- {
- ms=0;
- QuanOK=0;
-
- for(i=0;i<16;i++)
- {
- ShowDat[160+i]=Zimo1[ziNum][i];
- }
- ziNum=(ziNum+1)%61; //重復(fù)
- }
-
- else
- {
- if(QuanOK==1&&ms!=0) // 如果全部數(shù)據(jù)發(fā)送完畢 則更新160---176 數(shù)據(jù)
- {
- QuanOK=0;
- for(i=0;i<7;i++)
- {
- ShowDat[(80+i)*2]=ShowDat[(80+i)*2+2];
- ShowDat[(80+i)*2+1]=ShowDat[(80+i)*2+3];
- }
- }
- }
- }
- }
復(fù)制代碼
|
|