AVR IO輸出之LED顯示程序
使用AVR控制8位LED,做到想閃就閃,不想閃就不閃,左閃右閃,拚命閃,演示AVR單片機(jī)之“點(diǎn)燈術(shù)”。
硬件設(shè)計(jì):
關(guān)于AVR的I/O結(jié)構(gòu)及相關(guān)介紹詳見Datasheet,這里僅對(duì)作部分簡(jiǎn)單介紹,下面是AVR的I/O引腳配置表:
AVR I/O 口引腳配置表 | |||||
DDRXn | PORTXn | PUD | I/O 方式 | 內(nèi)部上拉電阻 | 引腳狀態(tài)說(shuō)明 |
0 | 0 | X | 輸入 | 無(wú)效 | 三態(tài)(高阻) |
0 | 1 | 0 | 輸入 | 有效 | 外部引腳拉低時(shí)輸出電流 (uA) |
0 | 1 | 1 | 輸入 | 無(wú)效 | 三態(tài)(高阻) |
1 | 0 | X | 輸出 | 無(wú)效 | 推挽 0 輸出,吸收電流 (20mA) |
1 | 1 | X | 輸出 | 無(wú)效 | 推挽 1 輸出,輸出電流 (20mA) |
雖然AVR的I/O口單獨(dú)輸出“1”時(shí),可輸出較大電流足已點(diǎn)亮一盞燈,但AVR總的I/O輸出畢竟是有限的,所以,有經(jīng)驗(yàn)的點(diǎn)燈者考慮到除了點(diǎn)燈外可能還有其它費(fèi)勁的活兒要干,會(huì)將AVR的I/O口設(shè)計(jì)為輸出“0”時(shí)點(diǎn)燈,輸出“1”時(shí)熄燈。這種接法亦叫“灌電流接法”。
AVR主控電路原理圖
LED控制電路原理圖
下面部分從TXT拷出,拷到網(wǎng)頁(yè),代碼部分缺省了很多空格,比較凌亂,請(qǐng)諒解!
//目標(biāo)系統(tǒng): 基于AVR單片機(jī)
//應(yīng)用軟件: ICC AVR
#include
#include "D:ICC_HCmmICC.H"
#define LED_DDR
#define LED_PORT PORTD
void main(void)
{
}
評(píng)論