代码:
#include "reg51.h"
unsigned char row_01[] = {0x00, 0x18, 0x24, 0x24, 0x24, 0x24, 0x18, 0x00, // row show 0
0x00, 0x10, 0x18, 0x10, 0x10, 0x10, 0x38, 0x00};// row show 1
// 将这个序列反向引用即可完成从下到上的输出
unsigned char code bit_code[] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};
void delay(unsigned int time){
while(time--);
}
void show_01(){
unsigned char i, j , n;
for (j = 0; j < 16; j++){ // 这里改了一下,为了终值,0x00,0x10...0x38 7个所以加7
for (n = 0; n < 50; n++){
for (i = 0; i < 8; i++){
P0 = bit_code[i];
P3 = row_01[(i + j) % 16]; // 数组最大为索引15,所以为了终值就改成了%
delay(100);
}
}
}
}
void main(){
while(1){
show_01();
}
}