#define SEG_A 7#define SEG_B 6#define SEG_C 5#define SEG_D 11#define SEG_E 10#define SEG_F 8#define SEG_G 9#define SEG_H 4#define COM1 2#define COM2 3unsigned char table[10][8] ={ {1,1,0,0,0,0,0,0},{1,1,1,1,1,0,0,1},{1,0,1,0,0,1,0,0},{1,0,1,1,0,0,0,0}, {1,0,0,1,1,0,0,1}, {1,0,0,1,0,0,1,0}, {1,0,0,0,0,0,1,0}, {1,1,1,1,1,0,0,0}, {1,0,0,0,0,0,0,0}, {0,1,1,0,1,1,1,1} };void setup() {pinMode(SEG_A,OUTPUT);pinMode(SEG_B,OUTPUT);pinMode(SEG_C,OUTPUT);pinMode(SEG_D,OUTPUT);pinMode(SEG_E,OUTPUT);pinMode(SEG_F,OUTPUT);pinMode(SEG_G,OUTPUT);pinMode(SEG_H,OUTPUT);pinMode(COM1,OUTPUT);pinMode(COM2,OUTPUT);}void Display(unsigned char com,unsigned char num){digitalWrite(SEG_A,HIGH);digitalWrite(SEG_B,HIGH);digitalWrite(SEG_C,HIGH);digitalWrite(SEG_D,HIGH);digitalWrite(SEG_E,HIGH);digitalWrite(SEG_F,HIGH);digitalWrite(SEG_G,HIGH);digitalWrite(SEG_H,HIGH);switch(com){ case 1: digitalWrite(COM1,HIGH); digitalWrite(COM2,LOW); break; case 2: digitalWrite(COM1,LOW); digitalWrite(COM2,HIGH); break; default:break;} digitalWrite(SEG_A,table[num][7]); digitalWrite(SEG_B,table[num][6]); digitalWrite(SEG_C,table[num][5]); digitalWrite(SEG_D,table[num][4]); digitalWrite(SEG_E,table[num][3]); digitalWrite(SEG_F,table[num][2]); digitalWrite(SEG_G,table[num][1]); digitalWrite(SEG_H,table[num][0]); } void loop() { // put your main code here, to run repeatedly:
Display(2,1);
Display(2,2);
Display(2,3);
Display(2,4);}
这是两位数码管的 中间有点小错误 你把lm35读取的模拟量 给个变量模数转换 输出不就好了?