我在尝试写一个C51程序来使整个LED点阵都亮起来,但是我的亮度相比运行示例代码的亮度差得很远。下面是单片机示例代码:
复制代码 这是我写的代码,区别主要在用了for循环- #include <reg52.h>
- sbit ADDR0 = P1^0;
- sbit ADDR1 = P1^1;
- sbit ADDR2 = P1^2;
- sbit ADDR3 = P1^3;
- sbit ENLED = P1^4;
- unsigned char code addr2[] = {0,0,0,0,1,1,1,1};
- unsigned char code addr1[] = {0,0,1,1,0,0,1,1};
- unsigned char code addr0[] = {0,1,0,1,0,1,0,1};
- void main()
- {
- EA = 1;
- ENLED = 0;
- ADDR3 = 0;
- TMOD = 0x01;
- TH0 = 0xFC;
- TL0 = 0x67;
- ET0 = 1;
- TR0 = 1;
- while(1);
- }
- void InterruptTimer0() interrupt 1
- {
- unsigned char i = 0;
- TH0 = 0xFC;
- TL0 = 0x67;
- P0 = 0xFF;
- for (i=0; i<8; i++){
- ADDR0 = addr0[i];
- ADDR1 = addr1[i];
- ADDR2 = addr2[i];
- P0 = 0x00;
- }
- P0 = 0xFF;
- }
复制代码
希望能有大神指点指点
|