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

📄 main1.c

📁 这个程序能对按键计数
💻 C
字号:
/************************************************************************************
*  Copyright (c) 2008,重庆优易特电子
*            All rights reserved.

* 摘 要:    ENT键,按键计数,并将结果显示到数码管上

* 文件名称: main.c
* CPU芯片:  STC89C51RC
* 学习板型: Easy51-B 
*  
* 当前版本: 2.0
* 作 者:	 cache
* 完成日期: 2008年1月23日
*
编程思想:
	定时器0用于数码管扫描,外部中断0(ENT键)进行按键计数,同时将结果更新的显示缓冲区中
*************************************************************************************/
#include "reg52.h"

#define THCO   0xee
#define TLCO   0x0

unsigned char  code Duan[]={0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
unsigned char  Data_Buffer[4]={0,0,0,0};

unsigned int count=0;
//从0值开始计数

sbit P10=P1^0;	//数码管位码定义
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;

void main()
{	
   	TMOD=0x11;
 	TH0=THCO;	//定时器0用来扫描数码管显示
 	TL0=TLCO;
 	TR0=1;
 	ET0=1;	   
		  	
	IT0=1;		//外部中断0,边沿触发方式
	EX0=1;
 	EA=1;

 	while(1);
}

void int0() interrupt 0
{
  count++;		//有键按下,数值加1
  if(count>9999)count=0;
  Data_Buffer[0]=count/1000;
  Data_Buffer[1]=count%1000/100;
  Data_Buffer[2]=count%100/10;
  Data_Buffer[3]=count%10;
}

void timer0() interrupt 1
{
 static unsigned char Bit=0;

 TH0=THCO;
 TL0=TLCO;

 Bit++;			//数码管扫描显示
 if(Bit>=4)Bit=0;
 P1|=0x0f;
 P0=Duan[Data_Buffer[Bit]];
 switch(Bit)
 {
  case 0: P10=0;break;
  case 1: P11=0;break;
  case 2: P12=0;break;
  case 3: P13=0;break;
 }		
}

⌨️ 快捷键说明

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