打印
[Atmel]

用AtmelStudio6.2跑mega16例程(42) 记数器

[复制链接]
731|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2014-10-29 20:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
100000秒以内记数器。
本例程是用外部中断,按一下开始记数,再按一下停止,再按一下清零。

以下是Proteus的运行截图:


以下是Studio6.2的程序的截图:


程序清单:
/*
* GccApplication5.c
*
* Created: 2014-10-29 20:19:55
*  Author: Administrator
*/

#define F_CPU 4000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdint.h>

const uint8_t SEG_CODE[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
uint8_t Digits_Buffer[] = {0,0,0,0,0,0};
       
void Show_Count_ON_DSY()
{
        uint8_t i;
        for(i=0;i<=5;i++)       
        {
                PORTC = 0x00;
                PORTA = ~_BV(5-i);
                PORTC = SEG_CODE[Digits_Buffer[i]];
                if(i==1)PORTC |= 0x80;
                _delay_ms(3);
        }
}
int main(void)
{
    DDRA = 0xFF;PORTA = 0xFF;
        DDRC = 0xFF;PORTC = 0xFF;
        DDRD = 0x00;PORTD = 0xFF;
        MCUCR = 0x02;
        GICR = 0x40;
        TCNT1 = 65536 - F_CPU/8*0.1;
        TIMSK = _BV(TOIE1);
        sei();
        while(1) Show_Count_ON_DSY();
}

ISR(TIMER1_OVF_vect)
{
        uint8_t i;
        TCNT1 = 65536-F_CPU/8*0.1;
        Digits_Buffer[0]++;
        for(i=0;i<=5;i++)
        {
                if(Digits_Buffer[i] == 10)
                {
                        Digits_Buffer[i]=0;
                        if(i!=5) Digits_Buffer[i+1]++;
                }
                else break;
        }
}

ISR(INT0_vect)
{
        uint8_t i;
        static uint8_t KeyOperation = 0;
        if(++KeyOperation==3)KeyOperation=0;
        switch(KeyOperation)
        {
               
                case 0:TCCR1B = 0x00;
                for(i=0;i<6;i++)Digits_Buffer[i] = 0;
                break;
                case 1:TCCR1B = 0x02;
                break;
                case 2:TCCR1B = 0x00;
                break;
        }
}

相关帖子

沙发
丶tiantian| | 2014-10-30 15:55 | 只看该作者
,收藏以下。

使用特权

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

本版积分规则

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

2398

主题

6950

帖子

67

粉丝