#include<reg51.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit P2_7=P2^7;
uchar code seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x40,0x00};
uchar code disbuf[]={1,2,3,4,5,6}; /******************************************************************/ void delay_10us(uchar n) { do { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } while(n--); }
void delay_ms(uint n) { do delay_10us(131); while(n--); }
void display_led(uchar t) { uchar i,temp; P2=0x00; temp=0x7f; //led显示 SBUF=temp; while(!TI);TI=0; for(i=0;i<6;i++) { P2=seg[disbuf]; delay_ms(t); if(temp==0xfd) break; P2=0x00; temp=temp<<7|temp>>1; SBUF=temp; while(!TI);TI=0; } } main() { while(1) display_led(5); }
上面程序,Proteus 可以仿真,可是硬件实现不了 第一次用到164,请高手指点 |