|
本帖最后由 hujia 于 2015-6-23 15:41 編輯
自從無(wú)線通信完成后我沒做什么,而是把AVR的學(xué)習(xí)列上日程,AVR的學(xué)習(xí)我是純手工打造,所有的實(shí)驗(yàn)板全部自己焊接,因?yàn)橛?1習(xí)慣了,他是那么的方便,到AVR這卻是一件很簡(jiǎn)單的事情顯得如此復(fù)雜,那下載來(lái)說(shuō)吧,51的ISP是通過串口直接寫到FLASH,而AVR的還要設(shè)置熔絲位,如果搞不好芯片鎖死就完蛋了,至少我的水平是夠嗆解決的。遇到的第一個(gè)問題是價(jià)格,AVR的價(jià)格比51的貴將近2-5倍,我選的是16L,因?yàn)樗腇LASH足夠我這種菜鳥用的,16KB,另一個(gè)是他的寬電壓,以前51就沒有這個(gè)優(yōu)勢(shì),最重要的其實(shí)學(xué)哪種都無(wú)所謂,編程嗎,其實(shí)就是一個(gè)中心思想的問題,只要你有好的算法,用什么語(yǔ)言描述就無(wú)關(guān)緊要了,關(guān)鍵AVR有個(gè)架構(gòu)是不同于51的,那就是哈佛結(jié)構(gòu),這種結(jié)構(gòu)要比51 速度快幾倍,我花了大約一個(gè)星期的時(shí)間看了內(nèi)部的架構(gòu),至于匯編我大體略了下,因?yàn)橐院蟮某绦蛭抑饕贑語(yǔ)言的,學(xué)單片機(jī)最重要的明白他的內(nèi)部架構(gòu),硬件配置,然后開發(fā)流程,我用的USBASP,光驅(qū)動(dòng)換了4次,重裝了3次,哎!曲折啊。好不容易搞好了,又有一個(gè)口PC口不正常。原因是JTAGE開了,關(guān)了就正常了,現(xiàn)在我只邁了一小步----對(duì)他的開發(fā)流程大體了解、板子焊完了、下載調(diào)通了,熔絲設(shè)置完畢,下一步就要熟悉軟件,抽象到編程和移植程序,還有很多問題要解決,困難也肯定肯定很多!但是還是那句話,不積跬步,無(wú)以至千里,不積小流,無(wú)以成江海,九層之臺(tái),起于壘土;千里之行,始于足下。坐而言,不如起而行,路雖遠(yuǎn),行則將至;事雖難,做則必成。
/* AVR閃爍燈!!0412 第四項(xiàng)目部宿舍*/
#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
/*下面是位操作的宏定義*/
#define set_bit(a,b) a|=(1<<b)
#define clr_bit(a,b) a&=~(1<<b)
void delay(void)//延時(shí)函數(shù)
{
uint i,j;
for(i=240;i;i--)
for(j=240;j;j--);
}
void main (void)//主函數(shù)
{
uchar b;
DDRA=0xff;//初始化端口A
PORTA=0x00;//初值設(shè)定為00H
while(1)
{
set_bit(PORTA,0);//將PA口得第0位置1;
delay();
clr_bit(PORTA,0);//將PA口的第0位置0;
delay();
}
}
|
|