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

📄 anjian1.c.bak

📁 一个简单但功能丰富的开发板程序
💻 BAK
字号:
/* 	应用范例 3-1 
	标题:范例  3-1
 	版本:1.0//
 	Target:	    STC89C52RC  
 	程序描述:这个程序说明如何利用延迟函数来判断按键的输入 .
                  缺点是延迟函数会大量的占用CPU的时间,CPU效率低,经常把
                  低速外围器件放在中断中处理,具体见程序anjian2.c
*/           
#include <reg51.h>
#include <intrins.h>

#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
code seven_seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
code bit_select[6] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
char counter[3] = {0,0,0};
uint x,y,z,a,b,c,d;
sbit key1 = P3^0;
sbit key2 = P3^1;
sbit key3 = P3^2; 
sbit key4 = P3^3;
sbit FMQ = P3^4; 
sbit JDQ = P3^5;
uchar key1_state,key2_state,key3_state,key4_state,key1_flog;
uchar flash,key_num;
/******************************
延迟子函数
*******************************/
void delay_400us(uchar i)
{
	uchar a,b;
	for(a=i;a>0;a--)
		for(b=100;b>0;b--)
			_nop_();
}
void delay(uchar i)
{
	while(i)
	i--;
}
/*********************************
显示函数
**********************************/
void display()
{
	P0 = seven_seg[key_num];
	P2 = bit_select[key1_state];
	delay(100);
	P0 = seven_seg[key_num];
	P2 = bit_select[key1_state];
	delay(100);
   	P0 = seven_seg[key_num];  
	P2 = bit_select[key1_state];
	delay(100);
	P0 = seven_seg[key_num];
	P2 = bit_select[key1_state];
	delay(100);
	P0 = seven_seg[key_num];
	P2 = bit_select[key1_state];
	delay(100); 
	P0 = seven_seg[key_num];
	P2 = bit_select[key1_state];
	delay(100); 
}
/*************************************
判断按键子函数
*******************************************/
void get_key()
{
	if(key1 == 0 ) 				
	{ 	
		delay_400us(25);
		if(key1 == 0) 
			key1_state++;		  
		if(key1_state == 6)
			key1_state = 0;
		flash = 1;
		while(!key1);
	} 
	if(key2 == 0)
	{ 	
		delay_400us(25);
		if(key2 == 0) 
			key_num++;		  
		if(key_num == 10)
			key_num = 0;
		while(!key2);
	} 
	if(key3 == 0)
	{ 	
		delay_400us(25);
		if(key3 == 0) 
			key_num--;		  
		if(key_num == 0)
			key_num = 9;
		while(!key3);
	} 
	if(key4 == 0)
	{ 	
		delay_400us(25);
		if(key4 == 0) 
		flash = 0;
		while(!key4);
	} 
}
/************************************
                 主函数
********************************************/
void main()
{
//	timer0_init();
	while(1)
	{
			get_key();
			display();
	}
}

⌨️ 快捷键说明

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