- #include <reg52.h> //51头文件
- #define uchar unsigned char //宏定义
- #define uint unsigned int //宏定义
- code moveup[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
- sbit LED1 = P1^0; //位定义LED1硬件接口
- uchar i; //申明循环计数变量
- uchar num,temp;//P1口状态暂存变量
- void control();
- void delay(uint z) //毫秒级延时函数
- {
- uint x,y;
- for(x = z; x > 0; x--)
- for(y = 120; y > 0 ; y--);
- }
- void UART_init() //初始化
- {
- TMOD = 0x20; //设置定时器1工作方式2
- TH1 = 0xfd;
- TL1 = 0xfd;
- PCON = 0x08;
- SCON = 0x05;
- // SM0 = 0;
- // SM1 = 1;
- EA = 1;
- ES = 1;
- REN = 1; //串口允许接收
- while(1);
- }
- void main ()
- {
- UART_init();
- while (1);
- }
- void UART () interrupt 4
- {
- ES=0;
- RI=0;
- num=SBUF;
- {
- if(num==0)
- {
- while(1) //大循环
- {
- for(i = 0; i < 8; i++)
- {
- temp =moveup[i];//循环右移,LED从左至右点亮
- P1 = temp;
- delay(100);
- }
- }
- }
- if(num==1)
- {
- P1=0xff;
- }
- if(num==2)
- {
- P1=0xff;
- }
- }
- ES=1;
- }
复制代码 |