📄 clamp.c
字号:
/*************************Copyright(c)***************************
***************************File Info********************************
** File name: efficiency.c
** Created by: 邵峰
** Descriptions: 按键钳位程序,不同于while的钳位,它能提高CPU 的执行效率
** Date: 2008-11-28
*******************************************************************/
#include <mega16.h> //Atmel16的头文件
#include <delay.h> //CVAVR的特色delay function.
//#include"sf.h"
#define uchar unsigned char
#define K0 0x02
#define K ((PINC&K0)==0) //K代表按键按下,!K即代表未按按键
#define LED PORTD.7
uchar keymark=0;//一次按键响应封锁标志
/********************************************************************
** 函数名称 :port_init()
** 函数功能 :端口初始化
** 入口参数 :无
** 出口参数 :无
********************************************************************/
void port_init(void) // the initialization function
{
PORTA = 0x00; //设全为低
DDRA = 0xFF; //设置为输出
PORTB = 0xFF; //B口对应数码管7端控制端,且共阳极,若给低一开始便导通,因此置高
DDRB = 0xFF; //设置为输出
PORTC = 0xFF; //set the default
DDRC = 0x00; //C口设置为输入
PORTD = 0x00; //LED高电平有效,则初始化时给低电平
DDRD = 0xFF;
}
main( )
{
port_init();
while(1)
{
if(K&&!keymark)
{
delay_ms(20);//延时10ms 去抖
if(K)
{
keymark=1;//封锁按键,直到按键抬起
LED=!LED; //LED状态取反,用CVAVR可以,但ICCAVR不行,因为它不支持位操作。
}
}
else if(!K)
keymark=0;//标志清零,为下次按键做好准备
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -