Cepark电子园 AVR M16实验之四 独立按键
/**********************************************************************
* 文件名称: main.c
* 程序作者: kidcao1987
* 程序版本: V1.0
* 功能描述: 按动左下角的四个独立按键,在数码管上会显示“1~4”,这四个不同的数字。
* 编译器:WinAVR-20090313
* 芯片:ATmega16,外部11.0592MHZ晶振
* 技术支持:http://bbs.cepark.com
**********************************************************************/
#include
#include
#define uint unsigned int
#define uchar unsigned char
unsigned char const LedData[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
unsigned char const LedPos[]=
{0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar n,x,key;
void HC595send(uchar x);
void init(void);
void HC595shift(void);
void HC595store(void);
void display(uchar pos,uchar dat);
uchar keyscan(void);
int main(void)
{
while(1)
{
x=keyscan(); //按键扫描,返回值存于全局变量X中
if(x) //当有按键按下时显示
{
init(); //设置数码管控制端口
display(0,x); //显示扫描值
}
}
}
void init(void)
{
PORTB=0x00;//B口全部低电平
DDRB=0xff;//B口全部输出
}
uchar keyscan(void) //键盘扫描函数,返回值对应按键
{
uchar temp=0,key_value=0; //定义局部变量
PORTB|=(1
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。