還是昨天的問題,這兩個程序分別如下:
這兩個程序唯一的差別在于程序一循環有兩個,程序二循環是一個。
但是運行的結果是程序一單片機并不變化,程序二單片機可以正常變化數字
而且通過電壓表可以看出,雖然程序賦值相同,這兩個單片機空閑接口電壓根本不一樣
這個問題困擾我很長時間了,誰能解答一下?不勝感激!
程序一:
- #include<reg51.h>
- #define uchar unsigned char
- xdata uchar num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- void delay(uchar i)
- {
- uchar t;
- while(i--)
- {
- for(t=0;t<120;t++);
- }
- }
- void main()
- {
- uchar i;
- while(1)
- {
- for(i=0;i<10;i=i+2)
- {
- P2=num[i];
- delay(500);
- }
- for(i=0;i<10;i++)
- {
- P2=num[i];
- delay(500);
- }
- }
- }
- 程序二:
- #include<reg51.h>
- #define uchar unsigned char
- uchar code num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- void delay(uchar i)
- {
- uchar t;
- while(i--)
- {
- for(t=0;t<120;t++);
- }
- }
- void main()
- {
- uchar i;
- while(1)
- {
- for(i=0;i<10;i++)
- {
- P2=num[i];
- delay(500);
- }
- }
- }
復制代碼 |