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

📄 maicong.c

📁 pwm信号产生的原理和源程序;初次上传
💻 C
字号:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^2;
sbit wela=P2^1;
sbit dianji=P1^7;
sbit jia_key=P1^0;
sbit jian_key=P1^1;
uchar num=100;
uchar a;
uint teep;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z)
{
	uchar i,j;
	for(i=z;i>0;i--)
		for(j=50;j>0;j--);
}


void  keyscan()
{	
	
	if(jia_key==0)
    {
	     delay(5);
		 if(jia_key==0)
		 {
		   while(jia_key==0);//释放按键
		   num=num+1;
		   if(num>=200)//每次加4,到255
		     num=200;	
		 	 
		 }
    }

   if(jian_key==0)
   {
	     delay(5);
		 if(jian_key==0)
		 {
	        while(jian_key==0);
			if(num>=1)	  
	         num=num-1;         //每次减4,到0
			 else 
			 num=0;
			 
		 }
   }
}
void init()
{
	TMOD=0x15;
	TH0=0;
	TL0=0;
	TH1=(65535-50000)/256;
	TL1=(65535-50000)%256;
	EA=1;
	ET1=1;
	TR1=1;
	TR0=1;
	teep=0;
	dula=0;
	wela=0;
	a=0;
	num=50;

}
uint read()//读脉冲的个数
{
	uchar i,j,k;
	uint val;
	while(1)
	{	
		k=TH0;	
		i=TL0;
		j=TH0;
		if(k==j)
			break;

	}
	val=i+j*256;
	
	return val;
}

void display(uint date)
{
	uchar qian,bai,shi,ge;
	qian=date/1000;
	bai=date/100%10;
	shi=date/10%10;
	ge=date%10;

	wela=1;
	P0=0X7e;
	wela=0;
	P0=0xff;
	dula=1;
	P0=table[qian];
	dula=0;
	delay(3);

	wela=1;
	P0=0X7d;
	wela=0;
	P0=0xff;
	dula=1;
	P0=table[bai];
	dula=0;
	delay(3);

	wela=1;
	P0=0X7B;
	wela=0;
	P0=0xff;
	dula=1;
	P0=table[shi];
	dula=0;
	delay(3);

	wela=1;
	P0=0X77;
	wela=0;
	P0=0xff;
	dula=1;
	P0=table[ge];
	dula=0;
	//delay(3);

}
void main()
{
	init();
	while(1)
	{
		keyscan();
		dianji=1;
		delay(num);
		display(teep*6);
		dianji=0;
		delay(200-num);
	}
}
void time1()   interrupt 3
{
	 TH1=(65535-50000)/256;
	 TL1=(65535-50000)%256;
	 TR1=1;
	 a++;
	 
	 if(a>=100)
	 {
	 	teep=read();
	 	a=0;
		TH0=0;
		TL0=0;
	

	 }

}

⌨️ 快捷键说明

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