|
发表于 2022-3-21 01:41:13
|
显示全部楼层
如楼上所说,可以把后两位的段对应关系调整一下,增加一个DataR函数- #include "STC15.H"
- sbit DA=P2^5;
- sbit DB=P2^4;
- sbit DC=P2^3;
- sbit DD=P2^2;
- sbit DE=P2^1;
- sbit DF=P2^0;
- sbit DG=P3^7;
- sbit DP=P3^6;
- sbit B4=P1^1;
- sbit B3=P1^2;
- sbit B2=P2^6;
- sbit B1=P1^0;
- unsigned char ShuZu[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
- 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,};
- void Data(unsigned char Dat)
- {
- DA=(bit)(Dat&0x01);
- DB=(bit)(Dat&0x02);
- DC=(bit)(Dat&0x04);
- DD=(bit)(Dat&0x08);
- DE=(bit)(Dat&0x10);
- DF=(bit)(Dat&0x20);
- DG=(bit)(Dat&0x40);
- DP=(bit)(Dat&0x80);
- }
- void DataR(unsigned char Dat)
- {
- DD=(bit)(Dat&0x01);
- DE=(bit)(Dat&0x02);
- DF=(bit)(Dat&0x04);
- DA=(bit)(Dat&0x08);
- DB=(bit)(Dat&0x10);
- DC=(bit)(Dat&0x20);
- DG=(bit)(Dat&0x40);
- DP=(bit)(Dat&0x80);
- }
- void Delay (unsigned int z)
- {
- unsigned int i,j;
- for(i=0;i<z;i++)
- for(j=0;j<10;j++)
- ;
- }
- void Display(unsigned int Dat)
- {
- B1=1;B2=1;B3=1;B4=1;
- Data(ShuZu[Dat%10000/1000]);
- B1=0;B2=1;B3=1;B4=1;
- Delay (50);
- B1=1;B2=1;B3=1;B4=1;
- Data(ShuZu[Dat%1000/100]);
- B1=1;B2=0;B3=1;B4=1;
- Delay (50);
- B1=1;B2=1;B3=1;B4=1;
- DataR(ShuZu[Dat%100/10]);
- B1=1;B2=1;B3=0;B4=1;
- Delay (50);
- B1=1;B2=1;B3=1;B4=1;
- DataR(ShuZu[Dat%10]);
- B1=1;B2=1;B3=1;B4=0;
-
- Delay (50);
- }
- void main ()
- {
- while(1)
- {
- Display(1234);
- }
- }
复制代码
|
|