- #include<reg52.h> //包含单片机寄存器的头文件
- #define uchar unsigned char
- #define uint unsigned int
- #define Self_Define_ISP_Download_Command 0x3D // 与不断电下载有关,与本程序无关,直接复制到自己的程序中
- sfr IAP_CONTR=0xE7; // 与不断电下载有关,与本程序无关,直接复制到自己的程序中
- /* 函数申明 -----------------------------------------------*/
- void delay(uint z);
- void Init_Com(void) ; // 与不断电下载有关,与本程序无关,直接复制到自己的程序中
- /*
- ********************************************************************************
- ** 函数名称 : main(void)
- ** 函数功能 : 主函数
- ********************************************************************************
- */
- void main()
- {
- uchar num,dat1,dat2; // 相关变量定义
- Init_Com(); // 与不断电下载有关,与本程序无关,直接复制到自己的程序中
- while(1)
- {
- dat1=0xfe;
- dat2=0x7f;
- for(num=0;num<7;num++) // led灯从上往下依次点亮
- {
- P1=dat1; //初始化赋值
- dat1=dat1<<1; //右移一位
- delay(500); //延时
- }
- for(num=0;num<7;num++) // led灯从下往上依次点亮
- {
- P1=dat2; //初始化赋值
- dat2=dat2>>1; //右移一位
- delay(500); //延时
- }
- }
- }
- /*
- ********************************************************************************
- ** 函数名称 : delay(uint z)
- ** 函数功能 : 延时函数
- ********************************************************************************
- */
- void delay(uint z)
- {
- uchar j;
- for(z;z>0;z--)
- for(j=200;j>0;j--);
- }
- void Init_Com(void) // 与不断电下载有关,与本程序无关,直接复制到自己的程序中
- {
- TMOD = 0x20;
- SM0=0;
- SM1=1;
- REN=1;
- TH1 = 0xFd;
- TL1 = 0xFd;
- TR1 = 1;
- EA=1;
- ES=1;
- }
- void UART_Interrupt_Receive(void) interrupt 4 // 与不断电下载有关,与本程序无关,直接复制到自己的程序中
- {
- unsigned char k=0;
- unsigned int a,b;
- if(RI==1)
- {
- RI=0;
- k=SBUF;
- if(k==Self_Define_ISP_Download_Command)
- {
- for(a=1000;a>0;a--)
- for(b=100;b>0;b--);
- IAP_CONTR = 0x60;
- }
- }
- else
- {
- TI=0;
- }
- }
复制代码 |