| 
 
 数码管动态显示,为什么有的不显示,乱了,接了上拉电阻啊!
 
 
 
 /********************************************************************
 * 文件名  : 动态显示.c
 * 描述    :
 * 创建人  : 东流,2009年8月30日
 * 版本号  : 1.0
 ***********************************************************************/
 #include<reg52.h>
 #define uchar unsigned char
 #define uint  unsigned int
 
 uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
 uchar code LED_W[8] = {0,1,2,3,4,5,6,7};
 /********************************************************************
 * 名称 : Delay_1ms()
 * 功能 : 延时子程序,延时时间为 1ms * x
 * 输入 : x (延时一毫秒的个数)
 * 输出 : 无
 ***********************************************************************/
 void Delay(uint i)
 {
 uchar x,j;
 for(j=0;j<i;j++)
 for(x=0;x<=120;x++);
 }
 /********************************************************************
 * 名称 : Main()
 * 功能 : 数码管的显示
 * 输入 : 无
 * 输出 : 无
 ***********************************************************************/
 void Main(void)
 {
 uchar i = 0,j = 0;
 while(1)
 {
 P0 = table;   // i 值的 个位数
 P2 = LED_W[j];   //点亮第一位数码管
 Delay(2);
 j++;
 i++;
 if(j == 8)    //利用 j 值的变化,来控制数码管数值变化间隔的时间
 {
 j = 0;
 i = 0;
 }
 }
 }
 |