<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > AVR單片機綜合流水燈C程序

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

作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò ) 收藏
自己焊了塊實(shí)驗板,就是研究了一下AVR單片機,因為前面一年時(shí)間里一直苦戰51單片機,有了一定的基礎,所以看了一下視頻,原來(lái) AVR單片機主要有三個(gè)寄存器設置IO口,DDR(X)、PORT(X) BIT(X)等寄存器,至于其它的編程思想,我認為和51那些差不多,看來(lái)前輩說(shuō)得對啊,“學(xué)會(huì )了一種單片機,學(xué)其它的很容易入手”,今天總算得到了驗證,于是寫(xiě)出了下面的流水燈程序!

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

本文引用地址:http://dyxdggzs.com/article/201611/323387.htm


關(guān)鍵詞: AVR單片機流水燈C程

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>