|
变量i无法传递到中断服务函数里,能编译通过,但是用起来i的值一直是错的
后来老师在 int i;前面加个了个data就行了。不懂为什么。- #include "reg51.h"
- data int i=0;
- void delay()
- {int i,j;
- for(i=100;i>0;i--)
- {for(j=10;j>0;j--)
- {
-
- }
- }
-
- }
- void timer_int()
- {
- TMOD=0x01;
- TH0=0xf8;
- TL0=0x8c;
-
- EA=1;
- ET0=1;
- TR0=1;
- }
- main()
- {
-
- P1=0x00;
- timer_int();
-
-
- for(;;)
- {
- if(P2==0xfe)
- {i=1;}
- else if(P2==0xfd)
- {i=2;}
- else if(P2==0xfb)
- {i=3;}
- else{i=0;}
-
- delay();
-
- }
-
-
- }
- void TIMER() interrupt 1 using 2
- {
-
- if(i==0){ P1=0xff;}
- else{
- if(i==1){
- TH0=0xff;
- TL0=0x09;}
-
- else if(i==2){
- TH0=0xfc;
- TL0=0x44;}
- else if(i==3){
- TH0=0xfc;
- TL0=0xac;}
- P1=~P1;
- }
-
-
-
- }
复制代码 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|