打印
[Atmel]

用AtmelStudio6.2跑mega16例程(37)T0控制时间显示

[复制链接]
764|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2014-10-21 22:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本程序是利用T0来控制显示。效果不错的。

Proteus仿真截图:


Atmel Studio6.2编译通过截图:



程序:
/*
* GccApplication23.c
*
* Created: 2014-10-21 21:47:38
*  Author: Administrator
*/

#define  F_CPU 4000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdint.h>
const uint8_t SEG_CODE[] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
const uint8_t Table_OF_Digits[][8] = {
        {0,9,10,1,2,10,2,5},{        2,1,10,5,7,10,3,9        }
};

uint8_t i= 0,j=0;
uint16_t keep_Time = 0;

int main(void)
{
    DDRC = 0xFF;PORTC = 0x00;
        DDRD = 0xFF;PORTD = 0x00;
        TCCR0 = 0x03;
        TCNT0 = 0x03;
        TCNT0 = 256-F_CPU/64.0 * 0.004;
        TIMSK = 0x01;
        sei();
        while(1);
       
}

ISR(TIMER0_OVF_vect)
{
  TCNT0 = 256 - F_CPU/64.0 * 0.004;
  PORTC = 0xFF;
  PORTC = SEG_CODE[Table_OF_Digits[i][j]];
  PORTD = _BV(j);
  
  j = (j+1) % 8;
  if(++keep_Time != 350)return;
  keep_Time = 0;
  i= (i+ 1) % 2;       
       
}


相关帖子

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

本版积分规则

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

2399

主题

6963

帖子

68

粉丝