新闻  |   论坛  |   博客  |   在线研讨会
Cepark电子园 AVR M16实验之四 独立按键
hnrain | 2010-04-02 14:27:38    阅读:1151   发布文章

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

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客