新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > AVR IO輸出之LED顯示程序

AVR IO輸出之LED顯示程序

作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
系統(tǒng)功能:

   使用AVR控制8位LED,做到想閃就閃,不想閃就不閃,左閃右閃,拚命閃,演示AVR單片機之“點燈術(shù)”。

硬件設(shè)計

本文引用地址:http://m.butianyuan.cn/article/201611/320352.htm

  關(guān)于AVR的I/O結(jié)構(gòu)及相關(guān)介紹詳見Datasheet,這里僅對作部分簡單介紹,下面是AVR的I/O引腳配置表:

AVR I/O 口引腳配置表

DDRXn

PORTXn

PUD

I/O 方式

內(nèi)部上拉電阻

引腳狀態(tài)說明

0

0

X

輸入

無效

三態(tài)(高阻)

0

1

0

輸入

有效

外部引腳拉低時輸出電流 (uA)

0

1

1

輸入

無效

三態(tài)(高阻)

1

0

X

輸出

無效

推挽 0 輸出,吸收電流 (20mA)

1

1

X

輸出

無效

推挽 1 輸出,輸出電流 (20mA)

雖然AVR的I/O口單獨輸出“1”時,可輸出較大電流足已點亮一盞燈,但AVR總的I/O輸出畢竟是有限的,所以,有經(jīng)驗的點燈者考慮到除了點燈外可能還有其它費勁的活兒要干,會將AVR的I/O口設(shè)計為輸出“0”時點燈,輸出“1”時熄燈。這種接法亦叫“灌電流接法”。


AVR主控電路原理

LED控制電路原理圖

軟件設(shè)計:
下面部分從TXT拷出,拷到網(wǎng)頁,代碼部分缺省了很多空格,比較凌亂,請諒解!

//目標系統(tǒng): 基于AVR單片機
//應(yīng)用軟件: ICC AVR



#include
#include "D:ICC_HCmmICC.H"

#define LED_DDR DDRD
#define LED_PORT PORTD


void main(void)
{
uint8 i,j;

LED_DDR=0XFF;

while(1)
{
for(i=0;i<4;i++)
{
LED_PORT^=0xFF;//我閃!拚命閃!
delay50ms(10);
}
j=0x01;
for(i=0;i<8;i++)
{
j<<=1;
LED_PORT=j;//我左閃!
delay50ms(10);
}
j=0x80;
for(i=0;i<8;i++)
{
j>>=1;
LED_PORT=j;//我右閃!
delay50ms(10);
}
}
}




關(guān)鍵詞: AVRIO輸出LED顯示程

評論


技術(shù)專區(qū)

關(guān)閉