久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

AVR單片機綜合流水燈C程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年06月15日   【字體:

     端午節哪里都沒有去,自己焊了塊實驗板,就是研究了一下AVR單片機,因為前面一年時間里一直苦戰51單片機,有了一定的基礎,所以看了一下視頻,原來 AVR單片機主要有三個寄存器設置IO口,DDR(X)、PORT(X) BIT(X)等寄存器,至于其它的編程思想,我認為和51那些差不多,看來前輩說得對啊,“學會了一種單片機,學其它的很容易入手”,今天總算得到了驗證,于是寫出了下面的流水燈程序!

#include <iom16v.h>//AVR單片機頭文件包含
#define uchar unsigned char//宏定義
#define uint unsigned int//
/*************************************************************/
/*********************延時子程序******************************/
/*************************************************************/
void delay(uint z)//一個帶參數,不帶返回值的子函數
{
 uint x,y;//定義兩個變量
 for(x=0;x<100;x++)//外循環
 for(y=z;y>0;y--);//內循環
}
/*************************************************************/
/*********************左移流水燈******************************/
/*************************************************************/
void zouyi()
{
  uchar shu,j;//定義兩個變量,shu表示要存的數,j表示循環變量
  shu=0x01;//先將數變量賦值,即讓左邊第1顆燈亮起
  for(j=0;j<9;j++)//循環9次
  {
    PORTA=~shu;//將要顯示的數給寄存器
 delay(3550);//調用延時子程序
 shu<<=1;//將要顯示的數左移1位,這樣就形成了左移
  }
}
/*************************************************************/
/*********************右移流水燈******************************/
/*************************************************************/
void youyi()
{
 uchar shu,j;//定義兩個變量,shu表示要存的數,j表示循環變量
  shu=0x80;//先將數變量賦值,即讓右邊第1顆燈亮
  for(j=0;j<9;j++)//循環9次
  {
    PORTA=~shu;//將要顯示的數給寄存器
 delay(3550);//調用延時子程序
 shu>>=1;//將要顯示的數右移1位,這樣就形成了右移
  }
}
/*************************************************************/
/*********************左移跑馬燈******************************/
/*************************************************************/
void zoupao()
{
  uchar shu,j;//定義兩個變量,shu表示要存的數,j表示循環變量
  shu=0xfe;//先將數變量賦值,即讓左邊第1顆燈亮
  for(j=0;j<9;j++)//循環9次
  {
    PORTA=shu;//將要顯示的數給寄存器
 delay(1000);//調用延時子程序
 shu<<=1;//將要顯示的數左移1位,這樣就亮起2顆燈.....3顆燈
  }            
}
/*************************************************************/
/*********************右移跑馬燈******************************/
/*************************************************************/
void youpao()
{
 uchar shu,j;//定義兩個變量,shu表示要存的數,j表示循環變量
 shu=0x7f;//先將數變量賦值,即讓右邊第1顆燈亮
  for(j=0;j<9;j++)//循環9次
  {
    PORTA=shu;//將要顯示的數給寄存器
 delay(1000);//調用延時子程序
 shu>>=1;//將要顯示的數右移1位,這樣就亮起2顆燈.....3顆燈
  }   
}
/*************************************************************/
/******************中間到兩邊跑馬燈***************************/
/*************************************************************/
void zhongjian()
{
 uchar shu,j;//定義兩個變量,shu表示要存的數,j表示循環變量
 shu=0x08;//先將數變量賦值,即中間那顆LED亮
  for(j=0;j<6;j++)//循環6次
  {
    PORTA=~shu;//將要顯示的數給寄存器
 delay(2000);//調用延時子程序
 shu<<=1;//將要顯示的數左移1位,這樣就形成了從中間到左邊亮起
  } 
  shu=0x08;//先將數變量賦值,即中間那顆LED亮
  for(j=0;j<5;j++)//循環5次
  {
    PORTA=~shu;//將要顯示的數給寄存器
 delay(2000);//調用延時子程序
 shu>>=1;//將要顯示的數右移1位,這樣就形成了從中間到右邊亮起
  }    
}
/*************************************************************/
/************************主程序*******************************/
/*************************************************************/
void main()
{
 uchar shu,j;//定義兩個變量,shu表示要存的數,j表示循環變量
 DDRA=0xff;//設置PA口全為輸出口
 while(1)//大循環
 {
  zouyi();//調用左流水燈子程序
  youyi();//調用右流水燈子程序
  zoupao();//調用左跑馬燈子程序
  youpao();//調用右跑燈子程序
  zhongjian();//調用從中間到兩邊流水燈子程序
  zoupao();//調用左跑馬燈子程序
  zhongjian();//調用從中間到兩邊流水燈子程序
  youyi();//調用右流水燈子程序
  zouyi();//調用左流水燈子程序
  zhongjian();//調用從中間到兩邊流水燈子程序
 }
}

 

關閉窗口

相關文章

主站蜘蛛池模板: 日本人和亚洲人zjzjhd | 国产精品久久久久久久久免费 | 999久久 | 欧美一区二区三区国产 | 韩日视频在线观看 | 一级毛片大全免费播放 | 中文字幕在线人 | 亚洲视频三 | 婷婷色国产偷v国产偷v小说 | 337p日本欧洲亚洲大胆鲁鲁 | 99亚洲精品| 国产精品色综合 | 仙人掌旅馆在线观看 | 欧美一区中文字幕 | 日韩欧美精品在线 | 日韩在线观看视频一区 | 久久精品亚洲国产奇米99 | 日韩综合在线 | 精品国产乱码一区二区三区a | 久久久久久国产精品免费免费 | 狠狠狠色丁香婷婷综合久久五月 | 国产精品美女久久久免费 | 精品久久香蕉国产线看观看亚洲 | 日韩一区二区视频 | 中文字幕高清 | 日韩精品一区二区三区视频播放 | 国产精品久久久久久婷婷天堂 | 罗宾被扒开腿做同人网站 | 国产一区精品 | 国产一在线观看 | 精品国产乱码一区二区三区 | 久久精品91久久久久久再现 | 欧美一区免费 | 狠狠操狠狠 | 91精品国产91久久久久久最新 | 国产黄视频在线播放 | 国产在线一区二 | 日本不卡一区二区三区在线观看 | 亚洲自拍偷拍视频 | 国产精品久久久久永久免费观看 | 欧美v免费 |