打印
[Atmel]

用AtmelStudio6.2跑mega16例程(33)按键发声

[复制链接]
805|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2014-10-14 20:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
这个程序就是按下一个键就发一种声音, 以下是仿真:

以下是Studio6.2编译通过截图:


以下是程序:
/*
* GccApplication18.c
*
* Created: 2014-10-14 20:30:19
*  Author: Administrator
*/

#define __DELAY_BACKWARD_COMPATIBLE__
#define  F_CPU 0x8000000UL

#include <avr/io.h>
#include <util/delay.h>
#include <stdint.h>

#define  BEEP() (PORTD ^= 0x80)

#define  K1_DOWN() ((PINB & 0x10)== 0x00)
#define  K2_DOWN() ((PINB & 0x20)== 0x00)
#define  K3_DOWN() ((PINB & 0x40)== 0x00)
#define  K4_DOWN() ((PINB & 0x80)== 0x00)

void Play(uint8_t ddd)
{
        uint8_t i;
        for(i=0;i<100;i++)
        {
                BEEP();_delay_ms(ddd);
        }
}


int main(void)
{
    uint8_t Pre_key = 0xFF;
        DDRB = 0x00;PORTB = 0xFF;
        DDRD = 0xFF;
        while(1)
        {
                while(Pre_key == PINB);
                Pre_key = PINB;
                if(K1_DOWN()) Play(1);
                if(K2_DOWN()) Play(2);
                if(K3_DOWN()) Play(3);
                if(K4_DOWN()) Play(4);
               
        }
       
}


相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6956

帖子

67

粉丝