圣龙扬特-AVR电子

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 751|回复: 3
打印 上一主题 下一主题

ICCAVR:按键控制灯亮度实验

[复制链接]

26

主题

1

好友

3446

积分

超级版主

Rank: 8Rank: 8

UID
7
帖子
140
精华
0
注册时间
2013-2-26
在线时间
20 小时

突出贡献

跳转到指定楼层
楼主
发表于 2013-2-28 20:07:17 |只看该作者 |倒序浏览
//ICC-AVR application builder : 2008-5-30 17:46:59
// Target : M16
// Crystal: 1.0000Mhz

#include <iom16v.h>
#include <macros.h>

void port_init(void)
        {
        PORTA = 0xFF;
        DDRA  = 0x00;
        PORTB = 0xFF;
        DDRB  = 0xFF;
        PORTC = 0x00;
        DDRC  = 0x00;
        PORTD = 0x00;
        DDRD  = 0xFF;
        }

/****************************************
*  函数名称: void delay_ms(uint i)                *
*  函数功能:延时函数                                         *
*  晶振频率:1MHZ                                                *
*  入口参数:i mS                                                *
****************************************/
void delay_ms(unsigned int i)
        {
        unsigned int a;
        for(;i;i--)
                {
                for(a=142;a;a--)
                        {;}
                }
        }

//TIMER0 initialize - prescale:1
void timer0_init(void)
        {
        TCCR0 = 0x79;                        //快速PWM,匹配时置位,1分频
        }

void main(void)
        {
        unsigned char a;
        port_init();
        timer0_init();
        OCR0 = 1;                                        //初始亮度
       
        while(1)
                {
                a = (PINA&(1<<6));                //按键1接于PA6:增加亮度
                if(!a)
                        {
                        delay_ms(20);                //延时消抖
                        a = (PINA&(1<<6));        //再读按键
                        if(!a)
                                {
                                OCR0 +=1;                //增加亮度
                                if(OCR0==255)OCR0=254;
                                }
                        }
                a = (PINA&(1<<5));                //按键2接于PA5:减少亮度
                if(!a)
                        {
                        delay_ms(20);                //延时消抖
                        a = (PINA&(1<<5));        //再读按键
                        if(!a)
                                {
                                OCR0 -=1;                //减少亮度
                                if(OCR0==0)OCR0=1;
                                }
                        }
                }
        }
回复

使用道具 举报

1

主题

0

好友

652

积分

高级会员

Rank: 4

UID
21
帖子
45
精华
0
注册时间
2013-2-26
在线时间
11 小时
沙发
发表于 2013-3-1 21:47:10 |只看该作者
先占个沙发再细看
回复

使用道具 举报

3

主题

0

好友

47

积分

新手上路

Rank: 1

UID
115
帖子
11
精华
0
注册时间
2013-3-2
在线时间
4 小时
板凳
发表于 2013-3-2 13:45:12 |只看该作者
有电路图吗?
努力做得更认真!
回复

使用道具 举报

0

主题

2

好友

256

积分

中级会员

Rank: 3Rank: 3

UID
122
帖子
11
精华
0
注册时间
2013-3-2
在线时间
4 小时
地板
发表于 2013-3-2 15:43:38 |只看该作者
应该吧电路图也放出来,这个我们看的会明白一些!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|圣龙扬特-AVR电子 ( 鲁ICP备05022832号 )

GMT+8, 2024-5-4 02:35 , Processed in 0.212028 second(s), 18 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部