📄 anjian1.c.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 + -