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

📄 zqyy_counter.c

📁 proteus仿真实例大全
💻 C
字号:
/////////////////////////////////////////////////
/////加减记数器源程序counter.c
/////
/////////////////////////////////////////////////


#include "stdio.h"
#include "reg51.h"


// 共阳 0 - 9 的编码 12MHz
unsigned char code table[] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF };
//第1-- 6 位的片选线
unsigned char code dig[]   = { 0x21,0x11,0x09,0x05,0x03,0x08};//= { 0x80,0x03,0x05,0x09,0x11,0x21};
                           
unsigned char buffer[8];
unsigned char scan,i,ch,KeyVal;
bit           fKey,Key1,Key2,Key3,OldKey1,OldKey2,OldKey3,fBI;

unsigned long int counter,tmp;


void counter_display(void)
{
	buffer[5]=counter/100000;
	buffer[4]=counter/10000-buffer[5]*10;
	buffer[3]=counter/1000 -buffer[5]*100   -buffer[4]*10;
	buffer[2]=counter/100  -buffer[5]*1000  -buffer[4]*100  -buffer[3]*10;
	buffer[1]=counter/10   -buffer[5]*10000 -buffer[4]*1000 -buffer[3]*100 -buffer[2]*10;
	buffer[0]=counter/1    -buffer[5]*100000-buffer[4]*10000-buffer[3]*1000-buffer[2]*100-buffer[1]*10;

}
void delay(void)
{
	int i;
	for(i=0;i<500;i++)
	{
		;
	}
}

void main(void)
{
	unsigned int i;
	
	P3=dig[1];
	P1=table[1];
	TCON &= 0xCF;               // 初始化Timer0
	TMOD &= 0xF0;
	TMOD |= 0x01;
	TL0   = 0xff;           
	TH0   = 0xff;
	EA    = 1;
	ET0   = 1;
	TR0   = 1;
	counter=0;
	while(1){
		for(i=0;i<1;i++){
		delay();
		}
	    counter++;		
	}
}


void timerint () interrupt 1 
{
		unsigned int i,j;
		unsigned char n;
		EA=0;
		
	
        counter_display();
		for(i=0,n=0;i<=5;i++){
			if(buffer[5-i]!=0){
				n=5-i;
				break;
			}
	
		}
		for(j=0;j<5;j++){
			for(i=0;i<=n;i++){
				P3=dig[i];
			    P1=table[buffer[i]];
				delay();
			}
		}
		EA=1;
        TL0 = -2500%256;
        TH0 = -2500/256;                     //2.5ms定时
        TR0 = 1;
}

⌨️ 快捷键说明

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