单片机数码管

利用余辉实现这个效果,刚开始想复杂了,陆陆续续花了2天才搞定。。。

//头部说明
#include <reg52.h>
#include <intrins.h>
//定义
#define uint unsigned int
#define uchar unsigned char
//定义三个数组分别是段,位,实现数码管余辉效应定义的位
uchar duan[]={0x10,0x30,0x31,0x33,0x37,0xb7};
uchar wei[]={0xfe,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80};
uchar smgwx[]={0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};		 
sbit Du = P2^6;
//段选IO口定义
sbit We = P2^7;
//位选IO口定义
//开始构造延时函数
void delay(uint z)
{
	uint x,y;
	for(x = z; x > 0; x--)
		for(y = 114; y > 0 ; y--);
}
//开始操作
void main()
{
	uint i,y;
	uint A=100;
	for(i=0;i<8;i++)
	for(y=0;y<6;y++)
		{
		while(A--){
			if(i>0){
			delay(2);
			//选中前n-1个灯,显示框型,与第n灯每一段一起显示100次
			P0=wei[i];
			We=1;
			We=0;
			//delay(5);
			P0=duan[5];
			Du=1;
			Du=0;
			delay(2);
			//选中第n个灯,依次显示6段各100次
			P0=smgwx[i-1];
			We=1;
			We=0;
			P0=duan[y];
			Du=1;
			Du=0;
			}
			else
			{
			P0=wei[i];
			We=1;
			We=0;
			P0=duan[y];
			Du=1;
			Du=0;
			delay(5);
			}
			}
			A=100;//重置循环状态
			}
			}

版权声明:
作者:RHZ
链接:https://www.rhzhz.cn/?p=143
来源:RHZ | 用文字记录工作和学习生活
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
单片机数码管
利用余辉实现这个效果,刚开始想复杂了,陆陆续续花了2天才搞定。。。 //头部说明 #include <reg52.h> #include <intrins.h> //定义 #define……
<<上一篇
下一篇>>