|
本帖最后由 hujia 于 2015-6-23 15:41 編輯
自從無線通信完成后我沒做什么,而是把AVR的學(xué)習(xí)列上日程,AVR的學(xué)習(xí)我是純手工打造,所有的實驗板全部自己焊接,因為用51習(xí)慣了,他是那么的方便,到AVR這卻是一件很簡單的事情顯得如此復(fù)雜,那下載來說吧,51的ISP是通過串口直接寫到FLASH,而AVR的還要設(shè)置熔絲位,如果搞不好芯片鎖死就完蛋了,至少我的水平是夠嗆解決的。遇到的第一個問題是價格,AVR的價格比51的貴將近2-5倍,我選的是16L,因為他的FLASH足夠我這種菜鳥用的,16KB,另一個是他的寬電壓,以前51就沒有這個優(yōu)勢,最重要的其實學(xué)哪種都無所謂,編程嗎,其實就是一個中心思想的問題,只要你有好的算法,用什么語言描述就無關(guān)緊要了,關(guān)鍵AVR有個架構(gòu)是不同于51的,那就是哈佛結(jié)構(gòu),這種結(jié)構(gòu)要比51 速度快幾倍,我花了大約一個星期的時間看了內(nèi)部的架構(gòu),至于匯編我大體略了下,因為以后的程序我主要基于C語言的,學(xué)單片機最重要的明白他的內(nèi)部架構(gòu),硬件配置,然后開發(fā)流程,我用的USBASP,光驅(qū)動換了4次,重裝了3次,哎!曲折啊。好不容易搞好了,又有一個口PC口不正常。原因是JTAGE開了,關(guān)了就正常了,現(xiàn)在我只邁了一小步----對他的開發(fā)流程大體了解、板子焊完了、下載調(diào)通了,熔絲設(shè)置完畢,下一步就要熟悉軟件,抽象到編程和移植程序,還有很多問題要解決,困難也肯定肯定很多!但是還是那句話,不積跬步,無以至千里,不積小流,無以成江海,九層之臺,起于壘土;千里之行,始于足下。坐而言,不如起而行,路雖遠,行則將至;事雖難,做則必成。
/* AVR閃爍燈!!0412 第四項目部宿舍*/
#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ù)
{
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();
}
}
|
|