培训网站制作网站,中企动力双语网站,北京口碑好的十大装修公司,深圳装修公司哪家好十大排名一、共阳数码管静态显示
程序实例1#xff1a;
#includereg52.h //包含头文件#xff0c;一般情况不需要改动#xff0c;
//头文件包含特殊功能寄存器的定义void main (void)
{P10xc0; //二进制 为 1100 0000 参考数码管排列#xff0c;//可以得出0对应的段点…一、共阳数码管静态显示
程序实例1
#includereg52.h //包含头文件一般情况不需要改动
//头文件包含特殊功能寄存器的定义void main (void)
{P10xc0; //二进制 为 1100 0000 参考数码管排列//可以得出0对应的段点亮1对应的段熄灭结果显示数字0 while(1){}
}
二、1个共阳数码管显示变化的数字
程序实例2
#includereg52.h //包含头文件一般情况不需要改动头文件包含特殊功能寄存器的定义// 显示数值表0-9
unsigned char code dofly_table[10]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void Delay(unsigned int t); //函数声明/*------------------------------------------------主函数
------------------------------------------------*/
void main (void)
{unsigned char i; //定义一个无符号字符型局部变量 i 取值范围 0~255while (1) //主循环{for(i0;i10;i) //加入 for循环表明for循环大括号中的程序循环执行10次{P1dofly_table[i]; //循环调用表中的数值Delay(60000); //延时方便观看数字变化}}
}/*------------------------------------------------延时函数含有输入参数 unsigned int t无返回值unsigned int 是定义无符号整形变量其值的范围是0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{while(--t);
}
三、单个数码管模拟水流
程序实例3
#includereg52.h //包含头文件一般情况不需要改动
//头文件包含特殊功能寄存器的定义void Delay(unsigned int t); //函数声明/*------------------------------------------------主函数
------------------------------------------------*/
void main (void)
{unsigned char i; //定义一个无符号字符型局部变量 i 取值范围 0~255while (1) //主循环{P10xfe;for(i0;i6;i) //加入 for循环表明for循环大括号中的程序循环执行6次{Delay(10000);P11;P1|0x01; }}
}
/*------------------------------------------------延时函数含有输入参数 unsigned int t无返回值unsigned int 是定义无符号整形变量其值的范围是0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{while(--t);
}
四、按键控制单个数码管显示
程序实例4
#includereg52.h //包含头文件一般情况不需要改动
//头文件包含特殊功能寄存器的定义// 显示数值表0-9
unsigned char code table[10]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; /*------------------------------------------------主函数
------------------------------------------------*/
void main (void)
{ while (1) //主循环{switch(P3) //P3口作为独立按键输入端检测端口电平并做如下判断 {case 0xfe: P1table[1]; break;//0xfe 1111 1110,case 0xfd: P1table[2]; break;//调用表中的第三个元素case 0xfb: P1table[3]; break;case 0xf7: P1table[4]; break;case 0xef: P1table[5]; break;case 0xdf: P1table[6]; break;case 0xbf: P1table[7]; break;case 0x7f: P1table[8]; break;default: break; //如果都没按下直接跳出}}
}
五、单个数码管指示逻辑电平
程序实例5
#includereg52.h //包含头文件一般情况不需要改动//头文件包含特殊功能寄存器的定义sbit IO_IN P3^2; //定义IO 信号输入端/*------------------------------------------------主函数
------------------------------------------------*/
void main (void)
{ while (1) //主循环{if(IO_IN1)//如果端口检测到1表示高电平P10x89; //HelseP10xc7; //L//否则表示低电平这里使用 条件语句 if 。。。else 。。。 }
}
六、8位数码管显示其中之一
程序实例6
#includereg52.h //包含头文件一般情况不需要改动头文件包含特殊功能寄存器的定义#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
sbit LATCH1 P2^2;//定义锁存使能端口 段锁存
sbit LATCH2 P2^3;// 位锁存/*------------------------------------------------主函数
------------------------------------------------*/
main()
{while(1){DataPort0xfe; //取位码 第一位数码管选通即二进制1111 1110LATCH21; //位锁存LATCH20;DataPort0x4F; //取显示数据段码 “3”共阴字符码LATCH11; //段锁存LATCH10;}
}
七、8位数码管静态显示其中之二
程序实例7
#includereg52.h //包含头文件一般情况不需要改动头文件包含特殊功能寄存器的定义#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
sbit LATCH1 P2^2;//定义锁存使能端口 段锁存
sbit LATCH2 P2^3;// 位锁存/*------------------------------------------------主函数
------------------------------------------------*/
main()
{while(1){DataPort0x7e; //取位码 第一位数码管选通即二进制0111 1110LATCH21; //位锁存LATCH20;DataPort0x4F; //取显示数据段码 “3”共阴字符码LATCH11; //段锁存LATCH10;}
}
八、8位数码管动态扫描显示
程序实例8
#includereg52.h //包含头文件一般情况不需要改动头文件包含特殊功能寄存器的定义#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
sbit LATCH1 P2^2;//定义锁存使能端口 段锁存
sbit LATCH2 P2^3;// 位锁存// 显示段码值0123456789
unsigned char code DuanMa[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//分别对应相应的数码管点亮,即位码
unsigned char code WeiMa[]{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};void Delay(unsigned int t); //函数声明/*------------------------------------------------主函数
------------------------------------------------*/
main()
{unsigned char i0;while(1){DataPort WeiMa[i]; //取位码 LATCH2 1; //位锁存LATCH2 0;DataPort DuanMa[i]; //取显示数据段码LATCH1 1; //段锁存LATCH1 0;Delay(200); //扫描间隙延时时间太长会闪烁太短会造成重影i;if(8 i) //检测8位扫描完全结束如扫描完成则从第一个开始再次扫描8位i 0;}
}
/*------------------------------------------------延时函数含有输入参数 unsigned int t无返回值unsigned int 是定义无符号整形变量其值的范围是0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{while(--t);
}
九、8位数码管动态扫描原理演示
程序实例9
#includereg52.h //包含头文件一般情况不需要改动头文件包含特殊功能寄存器的定义#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
sbit LATCH1 P2^2;//定义锁存使能端口 段锁存
sbit LATCH2 P2^3;// 位锁存unsigned char code DuanMa[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值01234567
unsigned char code WeiMa[]{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码void Delay(unsigned int t); //函数声明/*------------------------------------------------主函数
------------------------------------------------*/
main()
{unsigned char i0;while(1){DataPort WeiMa[i]; //取位码 LATCH2 1; //位锁存LATCH2 0;DataPortdofly_DuanMa[i]; //取显示数据段码LATCH1 1; //段锁存LATCH1 0;Delay(60000); // 扫描间隙延时时间太长会闪烁太短会造成重影//这里故意延长时间方便直观看出动态扫描原理i;if(8 i) //检测8位扫描完全结束如扫描完成则从第一个开始再次扫描8位i 0;}
}
/*------------------------------------------------延时函数含有输入参数 unsigned int t无返回值unsigned int 是定义无符号整形变量其值的范围是0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{while(--t);
}
十、数码管显示动态数据
程序实例10
#includereg52.h //包含头文件一般情况不需要改动头文件包含特殊功能寄存器的定义#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
sbit LATCH1 P2^2;//定义锁存使能端口 段锁存
sbit LATCH2 P2^3;// 位锁存unsigned char code DuanMa[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};// 显示段码值0~F
unsigned char code WeiMa[]{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码void Delay(unsigned int t); //函数声明/*------------------------------------------------主函数
------------------------------------------------*/
main()
{unsigned char i0,num;unsigned int j;while(1){DataPortdofly_WeiMa[i]; //取位码 LATCH21; //位锁存LATCH20;DataPortdofly_DuanMa[numi]; //取显示数据段码LATCH11; //段锁存LATCH10;Delay(200); // 扫描间隙延时时间太长会闪烁太短会造成重影i;j;if(8i) //检测8位扫描完全结束如扫描完成则从第一个开始再次扫描8位i0;if(j500) //检测当前数值显示了一小段时间后需要显示的数值加1实现数据显示的变化{j0;num;if(num9)num0;}}
}
/*------------------------------------------------延时函数含有输入参数 unsigned int t无返回值unsigned int 是定义无符号整形变量其值的范围是0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{while(--t);
}