Using the Keil uVision4 programming program, create a simulation circuit in Proteus 8 Professional
Simulation circuit
Hexadecimal style pattern
int a[][8] = { 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80, 0x03,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80, 0x07,0x0e,0x1c,0x38,0x70,0xe0,0xc0,0x80, 0x0f, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0x80, 0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f, };
Delay function
void delay(unsigned int x) { while(x--); }
Loop call function
led1() refers to operate the P0 port,
By analogy, led4() is to call four output ports, and cycle flashing
void led1(int j,int i) { while(1) { P0 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = 0x00; break; } } while(1) { P2 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P2 = 0x00; break; } } while(1) { P3 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P3 = 0x00; break; } } while(1) { P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P1 = 0x00; break; } } } void led3(int j, int i) { while(1) { P0 = P2 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = P2 = 0x00; break; } } while(1) { P2 = P3 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P2 = P3 = 0x00; break; } } while(1) { P3 = P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P3 = P1 = 0x00; break; } } while(1) { P1 = P0 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P1 = P0 = 0x00; break; } } } void led2(int j, int i) { while(1) { P0 = P3 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = P3 = 0x00; break; } } while(1) { P2 = P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P2 = P1 = 0x00; break; } } while(1) { P3 = P0 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P3 = P0 = 0x00; break; } } while(1) { P1 = P2 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P1 = P2 = 0x00; break; } } } void led4(int j, int i) { while(1) { P0 = P2 = P3 = P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = P2 = P3 = P1 = 0x00; break; } } while(1) { P0 = P2 = P3 = P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = P2 = P3 = P1 = 0x00; break; } } while(1) { P0 = P2 = P3 = P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = P2 = P3 = P1 = 0x00; break; } } while(1) { P0 = P2 = P3 = P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = P2 = P3 = P1 = 0x00; break; } } }
C language code
#include<reg51.h> int a[][8] = { 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80, 0x03,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80, 0x07,0x0e,0x1c,0x38,0x70,0xe0,0xc0,0x80, 0x0f, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0x80, 0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f, }; int m = 5000; void delay(unsigned int x) { while(x--); } void led1(int j, int i) { while(1) { P0 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = 0x00; break; } } while(1) { P2 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P2 = 0x00; break; } } while(1) { P3 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P3 = 0x00; break; } } while(1) { P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P1 = 0x00; break; } } } void led3(int j, int i) { while(1) { P0 = P2 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = P2 = 0x00; break; } } while(1) { P2 = P3 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P2 = P3 = 0x00; break; } } while(1) { P3 = P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P3 = P1 = 0x00; break; } } while(1) { P1 = P0 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P1 = P0 = 0x00; break; } } } void led2(int j, int i) { while(1) { P0 = P3 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = P3 = 0x00; break; } } while(1) { P2 = P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P2 = P1 = 0x00; break; } } while(1) { P3 = P0 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P3 = P0 = 0x00; break; } } while(1) { P1 = P2 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P1 = P2 = 0x00; break; } } } void led4(int j, int i) { while(1) { P0 = P2 = P3 = P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = P2 = P3 = P1 = 0x00; break; } } while(1) { P0 = P2 = P3 = P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = P2 = P3 = P1 = 0x00; break; } } while(1) { P0 = P2 = P3 = P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = P2 = P3 = P1 = 0x00; break; } } while(1) { P0 = P2 = P3 = P1 = a[j][i]; delay(m); i + + ; if(i >= 8) { i = 0; P0 = P2 = P3 = P1 = 0x00; break; } } } void main(void) { int i = 0; while (1) { int j = 0; P0 = 0x00; P2 = 0x00; P1 = 0x00; P3 = 0x00; while(j <= 4) { led1(j,i); j + + ; } j=0; while(j <= 4) { led2(j,i); j + + ; } j=0; while(j <= 4) { led3(j,i); j + + ; } j=0; while(j <= 4) { led4(j,i); j + + ; } j=0; } }
Simulation circuit and code
Link: https://pan.baidu.com/s/1vx33QiXO0uhXMq1ItUebNQ
Extraction code: 5151