⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 视觉暂留.c

📁 可以测试人的视觉暂留特性
💻 C
字号:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar num,a,b,c,temp_th=0x4c,temp_tl=0x00;
sbit den=P2^4;
sbit D0=P0^0;
sbit shien=P2^2;
sbit geen=P2^3;

uint code table[]={
19456,23645,27136,30090,32622,34816,36736,38430,39936,41283,
42496,43593,44591,45501,46336,47104,47813,48469,49079,49646,
50176,50671,51136,51572,51983,52370,52736,53082,53410,53721, 
54016,54297,54565,54820,55063,55296,55519,55732,55936,56132,
56320,56501,56674,56842,57003,57158,57307,57452,57591,57726,
57856,57982,58104,58222,58336,58447,58554,58658,58760,58858,
58953,59046,59136,59224,59309,59392,59473,59552,59628,59703, 
59776,59847,59916,59984,60050,60115,60178,60239,60300,60358,
60416,60472,60527,60581,60634,60685,60736,60785,60834,60881};

uint code table1[]={
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};

void delay(uint z)			//延时程序
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);
}

void init()
{
	P2=0;
	den=1;
	D0=0;
	a=0;
	b=0;
	c=0;
	num=0;
	TMOD=0x11;
	TH0=0x35;
	TL0=0xc1;
	TH1=0x4c;
	TL1=0x00;
	EA=1;
	ET0=1;
	ET1=1; 
	TR0=1;
	TR1=1;
}

void keyscan()
{
	
	uchar n;
	b=num+10;	
	P3=0xfb ;
	n=P3;
	if(n==0x7b)
	{
		delay(125);
		n=P3;
		if(n==0x7b)
		{
			TR0=!TR0;
			TR1=!TR1;
			den=!den;
			while(!den)
			{
				shien=!shien;
				P0=table1[b/10];
				delay(1);
				shien=!shien;
				geen=!geen;
				P0=table1[b%10];
				delay(1);
				geen=!geen;

				P3=0xfb ;
				n=P3;
				n&=0xf0;
				if(n!=0xf0)
				{
					delay(125);
					n=P3;
					if(n==0x7b)
					{
						TR0=!TR0;
						TR1=!TR1;
						den=!den;
						P0=0xfe;	
					}				
				}
			}
			
			
  		}
	}
}

void main()
{
	init();
	while(1)	keyscan();
}

void exter0() interrupt 1 using 1
{
	TH0=0x35;
	TL0=0xc1;	
	a++;
	if(a==6)
	{	
		a=0;
		num++;
		if(num==90) num=0;
		temp_th=table[num]/256;
		temp_tl=table[num]%256;

		
	}	
}

void exter1() interrupt 3 using 2
{
	TH1=temp_th;
	TL1=temp_tl;
	D0=!D0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -