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

[复制链接]
 楼主| ddllxxrr 发表于 2014-10-21 22:09 | 显示全部楼层 |阅读模式
本程序是利用T0来控制显示。效果不错的。

Proteus仿真截图:


Atmel Studio6.2编译通过截图:



程序:
  1. /*
  2. * GccApplication23.c
  3. *
  4. * Created: 2014-10-21 21:47:38
  5. *  Author: Administrator
  6. */

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

  15. uint8_t i= 0,j=0;
  16. uint16_t keep_Time = 0;

  17. int main(void)
  18. {
  19.     DDRC = 0xFF;PORTC = 0x00;
  20.         DDRD = 0xFF;PORTD = 0x00;
  21.         TCCR0 = 0x03;
  22.         TCNT0 = 0x03;
  23.         TCNT0 = 256-F_CPU/64.0 * 0.004;
  24.         TIMSK = 0x01;
  25.         sei();
  26.         while(1);
  27.        
  28. }

  29. ISR(TIMER0_OVF_vect)
  30. {
  31.   TCNT0 = 256 - F_CPU/64.0 * 0.004;
  32.   PORTC = 0xFF;
  33.   PORTC = SEG_CODE[Table_OF_Digits[i][j]];
  34.   PORTD = _BV(j);
  35.   
  36.   j = (j+1) % 8;
  37.   if(++keep_Time != 350)return;
  38.   keep_Time = 0;
  39.   i= (i+ 1) % 2;       
  40.        
  41. }


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

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

2403

主题

6994

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2403

主题

6994

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部