#include<reg51.h> //定義特殊功能寄存器的頭文件 #include<intrins.h> //包括移位函數的頭文件 #define NOP _nop_() #ifndef _Dly_nms_h__ #define _Dly_nms_h__ sbit K1=P3^2; //K1位變量定義 typedef unsigned char Uchar; //數據類型重命名 unsigned int a=0; void Dly_nms(unsigned int time) //延時函數 {unsigned char i; for(;time>0;time--) {for(i=0;i<247;i++) {NOP;} } } #endif void INT0sev() interrupt 0 //外中斷0的函數 { while(K1==0); //等待按鍵釋放 if(a<900) a=a+100; IE0=0; //清中斷標志 } void main() //主函數 { unsigned char C,b=0; C=0xFE; EA=1;EX0=1;IT0=1; //外中斷0初始化 for(;;) //循環函數 { P1=C; //數據輸出 C=_crol_(C,1); //循環左移 Dly_nms(1000-a); //調用延時函數 } }
|