#include #include #define uchar unsigned char #define uint unsigned int uchar code leddata[]={ //存储在程序存储空间 0x3F, //"0" 0x06, //"1" 0x5B, //"2" 0x4F, //"3" 0x66, //"4" 0x6D, //"5" 0x7D, //"6" 0x07, //"7" 0x7F, //"8" 0x6F, //"9" 0x77, //"A" 0x7C, //"B" 0x39, //"C" 0x5E, //"D" 0x79, //"E" 0x71, //"F" 0x76, //"H" 0x38, //"L" 0x37, //"n" 0x3E, //"u" 0x73, //"P" 0x5C, //"o" 0x40, //"-" 0x00, //熄灭 0x00 //自定义 }; ***it wei = P2^7; ***it duan = P2^6; void delay(uint z) { uintx,y; for(x= z;x > 0;x--) for(y= 120; y > 0; y--); } void main() { duan= 1; //打开段选 P0= leddata[0]; //控制数码管段选 duan= 0; //关闭段选,锁存 delay(5); wei= 1; //打开位选 P0= 0; //控制数码管位选 wei= 0; //关闭位选 }
下面实现对某一位从0到9显示 #include #include #define uchar unsigned char #define uint unsigned int
uchar code leddata[]={ //存储在程序存储空间 0x3F, //"0" 0x06, //"1" 0x5B, //"2" 0x4F, //"3" 0x66, //"4" 0x6D, //"5" 0x7D, //"6" 0x07, //"7" 0x7F, //"8" 0x6F, //"9" 0x77, //"A" 0x7C, //"B" 0x39, //"C" 0x5E, //"D" 0x79, //"E" 0x71, //"F" 0x76, //"H" 0x38, //"L" 0x37, //"n" 0x3E, //"u" 0x73, //"P" 0x5C, //"o" 0x40, //"-" 0x00, //熄灭 0x00 //自定义 };
***it wei = P2^7; ***it duan = P2^6;
void delay(uint z) { uint x,y; for(x = z;x > 0;x--) for(y = 120; y > 0; y--); }
void main() { uchar i; wei = 1; //打开位选 P0 = 0xfe; //控制数码管位选 wei = 0; //关闭位选
for(i=0;i<10;i++) { duan = 1; //打开段选 P0 = leddata; //控制数码管段选 duan = 0; //关闭段选,锁存 delay(500); } //主要是在此处对第一个程序进行了代码修改,使用了for循环控制。后面的位选被放在前面
}
|