/*此函数主要是C语言实现单片机数码管闪烁功能
效果:
1.数码管显示0123;
2.停顿;
3.数码管显示4567;
4.无穷循环1,2,3步.*/
效果:
1.数码管显示0123;
2.停顿;
3.数码管显示4567;
4.无穷循环1,2,3步.*/
#include <reg51.h>
#include <intrins.h>
unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff}; //定义数组
int delay(int x) //声明延迟函数
{
int j=0;
for(j;j<x;j++) ;
}
main() //主函数
{
int i,j; //定义i,j
unsigned char seg; //定义seg,用于数码管的初始化
seg= 0xfe ; //定义seg为0xfe,即11111110;使数码管为第一个显示
while (1) //无穷循环
{
{ for(j=0;j<30;j++) //扫描数码管30次
{
for(i=0;i<4;i++) //输出0123
{
P2=seg; //初始化P2
P0=dis_code[i]; //显示数字
delay(200); //延迟约1ms
seg=_crol_(seg,1); //数码管右移一位
if (seg==0xef) seg=0xfe; //输出四个数字之后停止
}
}
P2=0xff; //数码管全不接通,把0,1,2,3消去
delay(2000000); //延迟
for(j=0;j<30;j++) //扫描数码管30次
{
for(i=4;i<8;i++) //输出4567
{
P2=seg; //初始化P2
P0=dis_code[i]; //显示数字
delay(200); //延迟约1ms
seg=_crol_(seg,1); //数码管右移一位
if (seg==0xef) seg=0xfe; //输出四个数字之后停止
}
}
}
}
} //函数结束
#include <intrins.h>
unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff}; //定义数组
int delay(int x) //声明延迟函数
{
int j=0;
for(j;j<x;j++) ;
}
main() //主函数
{
int i,j; //定义i,j
unsigned char seg; //定义seg,用于数码管的初始化
seg= 0xfe ; //定义seg为0xfe,即11111110;使数码管为第一个显示
while (1) //无穷循环
{
{ for(j=0;j<30;j++) //扫描数码管30次
{
for(i=0;i<4;i++) //输出0123
{
P2=seg; //初始化P2
P0=dis_code[i]; //显示数字
delay(200); //延迟约1ms
seg=_crol_(seg,1); //数码管右移一位
if (seg==0xef) seg=0xfe; //输出四个数字之后停止
}
}
P2=0xff; //数码管全不接通,把0,1,2,3消去
delay(2000000); //延迟
for(j=0;j<30;j++) //扫描数码管30次
{
for(i=4;i<8;i++) //输出4567
{
P2=seg; //初始化P2
P0=dis_code[i]; //显示数字
delay(200); //延迟约1ms
seg=_crol_(seg,1); //数码管右移一位
if (seg==0xef) seg=0xfe; //输出四个数字之后停止
}
}
}
}
} //函数结束
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/3214/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表