数码管显示,亮的数码管却逐次增加,求探讨。
时间:10-02
整理:3721RD
点击:
- /******* digital tube*********/
- #include <reg52.h>
- #include <intrins.h>
- #define uchar unsigned char
- sbit LE1 = P2^6; //定义段选
- sbit LE2 = P2^7; //定义位选
- uchar num[]={0x6d,0x5b,0x3f,0x06,0x4f,0x06,0x66};
- void delay()
- {
- int j,k;
- for(j=0;j<3;j++)
- for(k=0;k<30000;k++);
- }
- int main()
- {
- while(1)
- {
- uchar i;
-
- for(i=0;i<7;i++)
- {
- /******关门************/
- LE1=0;
- LE2=0;
- /********段选*******************/
- P0= num[i];
-
- LE1=1;
- LE1=0;
- /*******位选*******/
- P0=0xfe;
- P0=_irol_ (P0, 7); //如何只让 0 左移呢?
-
- LE2=1;
- LE2=0;
-
- delay();
- }
- }
- }
我用这个 炮出来显示的数没有错,但是 亮 的数码管 却逐次增加了。
求 探讨
sorry,,,,第三十六行 为
P0=_irol_ (P0, i);
但是情况依旧如上所述
算了。没人回答我,我还是用数组吧
解决啦,哈哈哈哈哈哈哈,是因为int 和 char 的类型不同占用的地址位不一样的原因
!