[Atmel] 用AtmelStudio6.2跑mega16例程(19):控制多LED

[复制链接]
1100|0
 楼主| ddllxxrr 发表于 2014-9-22 20:52 | 显示全部楼层 |阅读模式
这个把LED接到管脚上,形成不同的花样
以下是proteus的截图:


以下是Atmel Studio 6.2的代码,复制就保好用的。

  1. *
  2. * GccApplication1.c
  3. *
  4. * Created: 2014-9-22 20:21:51
  5. *  Author: Administrator
  6. */


  7. #include <avr/io.h>
  8. #define uchar unsigned char
  9. #define uint unsigned int
  10. uchar tab1[8]={0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00};
  11. uchar tab2[8]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00};
  12. uchar tab3[8]={0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF};
  13. uchar tab4[9]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF};
  14. uchar tab5[8]={0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};
  15. uchar tab6[8]={0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF};

  16. void delay_ms(uint dd)
  17. {
  18.         uint i,j;
  19.         for(i=dd;i>0;i--)
  20.         {
  21.        
  22.            for(j=0;j<100;j++)
  23.            ;
  24.         }
  25.        
  26.        
  27. }


  28. int main(void)
  29. {
  30.         uint i;
  31.         DDRC=0xFF;           //PC端口为输出方式
  32.         PORTC=0xFF;          //PC端口输出全部为“1”
  33.         DDRD=0xFF;           //PD端口为输出方式
  34.         PORTD=0xFF;          //PD端口输出全部为“1”
  35.         while(1)
  36.         {
  37.                 for(i=0;i<8;i++)
  38.                 {
  39.                         PORTC=tab1[i];
  40.                         PORTD=tab2[i];
  41.                         delay_ms(1000);
  42.                 }
  43.                 for(i=0;i<8;i++)
  44.                 {
  45.                         PORTD=tab3[i];
  46.                         delay_ms(1000);
  47.                 }
  48.                 for(i=0;i<8;i++)
  49.                 {
  50.                         PORTC=tab3[i];
  51.                         delay_ms(1000);
  52.                 }
  53.                 for(i=0;i<9;i++)
  54.                 {
  55.                         PORTC=tab4[i];
  56.                         delay_ms(1000);
  57.                 }
  58.                 for(i=0;i<8;i++)
  59.                 {
  60.                         PORTD=tab4[i];
  61.                         delay_ms(1000);
  62.                 }
  63.                 PORTC=0x00;
  64.                 PORTD=0x00;
  65.                 delay_ms(3000);
  66.                 for(i=0;i<8;i++)
  67.                 {
  68.                         PORTC=tab5[i];
  69.                         PORTD=tab6[i];
  70.                         delay_ms(1000);
  71.                 }
  72.                 PORTC=0xFF;
  73.                 PORTD=0xFF;
  74.                 delay_ms(2000);
  75.         }
  76. }


本帖子中包含更多资源

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

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

本版积分规则

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

2404

主题

7001

帖子

68

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