AVR IO輸出之LED顯示程序
使用AVR控制8位LED,做到想閃就閃,不想閃就不閃,左閃右閃,拚命閃,演示AVR單片機之“點燈術(shù)”。
硬件設(shè)計:
關(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控制電路原理圖
下面部分從TXT拷出,拷到網(wǎng)頁,代碼部分缺省了很多空格,比較凌亂,請諒解!
//目標系統(tǒng): 基于AVR單片機
//應(yīng)用軟件: ICC AVR
#include
#include "D:ICC_HCmmICC.H"
#define LED_DDR
#define LED_PORT PORTD
void main(void)
{
}
評論