#include #include #include #include //__CONFIG(UNPROTECT&MCLRDIS&WDTDIS); #define Fuc_key PB5; #define DIMM PB4; #define CLK PB3; #define DATA PB2; unsigned char disp_data; unsigned char key_pressed,last_key_pressed; unsigned char Value; unsigned char time; const unsigned char Digital_Tab[]= {0xff,0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6, 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; void change(void); void LED_data(void); void LED_display(void); void delay_2ms(void) { unsigned char i,j,k; for(i=0;i<5;i++) { for(j=0;j<200;j++) { k--; } } } void change(void) { key_pressed=Fuc_key; if((key_pressed == 0) & (last_key_pressed == 1)) { delay_2ms(); if(key_pressed==0) { disp_data++; if(disp_data==19)disp_data=0; } } last_key_pressed=key_pressed; } void LED_data(void) { unsigned char i; for(i=0;i<19;i++) { if(i==disp_data){Value=Digital_Tab[i];} } } void LED_display(void) { unsigned char i; unsigned char U; U=Value; for(i=1;i<8;i++) { DATA = U & 0x01; CLK = 0; CLK = 1; U = U>>1; } CLK = 1; CLK = 0; } void main(void) { //OSCCAL=0; //TRIS=0b11111000; //OPTION=0b11011111; while(1) { change(); LED_data(); DIMM=0; LED_display(); DIMM=1; delay_2ms(); } }