ÿþ#include sbit sda = P1^0; sbit scl = P1^1; sbit back_light_switch = P1^2; // unsigned char code num_table[16]={0xd7,0x03,0xb6,0xa7,0x63,0xe5,0xf5,0x07,0xf7,0xe7,0x77,0xf1,0xd4,0xb3,0xf4,0x74}; // void delay_char(unsigned char t) { while(--t); } //=================================== void write(unsigned char dat) { unsigned char i; for(i = 0;i < 8; i++) { scl = 0; sda = (dat << i) & 0x80; scl = 1; } scl = 0;scl = 0; scl = 1;scl = 1;scl = 1; scl = 0; } //============================ void start(void) { sda = 1; scl = 1; sda = 0; scl = 0; write(0x70); } //============================== void stop(void) { sda = 0; scl = 1; sda = 1; } //================================ void display(float dat) { unsigned long temp; char i,sum; unsigned char num[8]= {0}; // if(dat < 0) { dat = - dat; num[7] = 0x20; // } else { num[7] = 0; // } start(); write(0x48); // stop(); start(); write(0xe0); // write(0); // // stop(); // start(); if(dat < 100000 ) // { temp = 100 * dat; // num[6] = temp / 1000000; num[5] = temp / 100000 %10; num[4] = temp / 10000 %10; num[3] = temp / 1000 %10; num[2] = temp / 100 %10; num[1] = temp / 10 %10; num[0] = temp %10; sum = 0; for(i = 6;i >2;i--) // { sum = num[i] + sum; if(sum > 0) break; } sum = i; // for(i = 0;i <= sum;i++) // { num[i] = num_table[num[i]]; } num[sum + 1] = num[7]; // num[2] = num[2] | 0x08; // for(i = 0; i < 14-sum; i++) // { write(0); } for(i = sum +1; i >= 0 ;i--) // { write(num[i]); } } else // { for(i = 0; i < 16; i++) { write(0x20); } } write(0); // stop(); // } //================================ void main() { float i; unsigned char k; // while(1)display(-99999.99); while(1) { for(i = -1.10;i<100100;i = i + 0.01) { display(i); for(k = 0;k <250;k ++) { delay_char(250); } } } } /******************************************************/ #include sbit sda = P1^0; sbit scl = P1^1; // H E L L 0 unsigned char code num_table[17]={0x73,0xf4,0xd0,0xd0,0xd7,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00}; void stop(void); void start(void); void display(void); void write(unsigned char dat); void delay_char(unsigned char t); void main() { while(1)display(); } void write(unsigned char dat) { unsigned char i; for(i = 0;i < 8; i++) { scl = 0; sda = (dat << i) & 0x80; scl = 1; } scl = 0;scl = 0; scl = 1;scl = 1;scl = 1; scl = 0; } //============================ void start(void) { sda = 1; scl = 1; sda = 0; scl = 0; write(0x70); // } //============================== void stop(void) { sda = 0; scl = 1; sda = 1; } //================================ void display(void) { char i; start(); write(0x48); // stop(); start(); write(0xe0); // write(0); // for(i = 0; i <16; i++) { write(num_table[i]); } write(0); stop(); // } //================================ void delay_char(unsigned char t) { while(--t); } //===================================