⑴ 杜洋老師,自從出了《愛上單片機》之後,有沒出過關於如何學習ARM的書!
1,樓主,你首先要學習C語言基礎,就相當於80%會單片機了,因為現在所有8/16/32位(51系列,MSP430系列,ARM系列)都是使用C語言。
2,先看內核8051的單片機:台灣宏晶的STC89C51-DIP40/或其它如新茂,到網上買一個開發板,價格不會超過200元。
3,看一下單片機功能:包換內部FLASH、RAM、TIMER、INT、ADC、USB、ISP/IAR等。
4,編譯環境、編程軟體KEIL。
5,打開開發板的例子程序,在KEIL編譯,下載到板,看結果和說明是不是相符,達到這樣效果時,你心裡肯定很激動,這時你真正學會了單片機,你成功了!!!!!。
6,單片機C語言舉例:
sbit SPEAK = P1^5; //IO口定義為蜂鳴器控制
如果蜂鳴器正極接電源,SPEAK =0;蜂鳴器就會響,你看就是這么簡單。
unsiggne char temp;//定義TEMP為單位元組變數。
sfr PORTA P1;//將P1口定義為PORTA
7,當你過渡到ARM時,你就要學習LINUX和WINCE這兩個最基本的操作系統運用在單片機上。
8,同樣的理,你也要買ARM2410/2440為代表的開發板,慢慢按照說明書一步一步地操作,練習,不停地做實驗,就學會。
9,當然,你得打一份工作,關於我上所說的,開始工資不要要求太高,等你做完幾個項目後,你真正學會了,才跟老闆或上司提,這樣繼續或或另尋高就才有資本。
10,你也抽點時間看看《郭天祥十天學會單片機和c語言編》一書,鞏固一下理論知識。
總結:多做開發板上的實驗,你要多參與這樣的項目開發,慢慢就會了。
⑵ 杜洋單片機製作DY12864日歷,安裝後LCD為藍屏,而且去掉單片機,還是藍屏。檢查了,焊接應該沒
屏線定義與程序應該對應的,建議你應該網一個或先截取驅動12864的程序,單做一個工程,待屏可以正常驅動了在考慮其他的顯示功能,就是先不考慮其他的,先把屏玩明白了再說吧,還有就是仔細查看接線正確不。
⑶ 畢業設計我想用單片機做一個電子琴,程序最好是c語言編寫的,那個好心人可以幫我提供點資料,要錢的免進!
www.doyoung.net
上有好多,要的話我還有流程圖
/*********************************************************************************************
程序名:DoToy系列作品MidTouch21電子琴程序
編寫人:杜洋
編寫時間:2009年6月3日
硬體支持:STC11L60XE外部12MHZ晶振電源3V
介面說明:詳見《DoToy_MidTouch21電路原理圖》
修改日誌:
NO.1-20090603_17.54完成電子琴21鍵的測試(20090603_1備)
NO.2-20090604_01.29改為第二次新板的硬體電路(20090604_2備)
/*********************************************************************************************
說明:
用STC11Fxx單片機I/O介面的高阻態輸入功能,掃描I/O介面電平。
手指將VCC線和I/O介面線半連接,產生高電平信號。
/*********************************************************************************************/
voidINIT(void);
#include<STC11Fxx.H>
/*********************************************************************************************/
sbitSPEAKER=P1^0;//揚聲器,低使能
sbitLED=P3^0;//LED正極,強推
sbitLED2=P3^1;//LED負極
sbitKEY11=P2^0;
sbitKEY12=P2^1;
sbitKEY13=P2^2;
sbitKEY14=P2^3;
sbitKEY15=P2^4;
sbitKEY16=P2^5;
sbitKEY17=P2^6;
sbitKEY21=P2^7;
sbitKEY22=P4^4;
sbitKEY23=P4^5;
sbitKEY24=P4^6;
sbitKEY25=P0^7;
sbitKEY26=P0^6;
sbitKEY27=P0^5;
sbitKEY31=P0^4;
sbitKEY32=P0^3;
sbitKEY33=P0^2;
sbitKEY34=P0^1;
sbitKEY35=P0^0;
sbitKEY36=P3^3;
sbitKEY37=P3^2;
/*********************************************************************************************/
unsignedcharMUSIC;
unsignedcharSTH0,STL0;
unsignedintcodetab[]={//音階表
63628,63835,64021,64103,64260,64400,64524,//低音1-7
64580,64684,64777,64820,64898,64968,65030,//中音1-7
65058,65110,65157,65178,65217,65252,65283//高音1-7
};
/*********************************************************************************************/
voiddelay1ms(unsignedinta){//1ms延時程序(12MHz10倍於51單片機速度時)
unsignedinti;
while(--a!=0){
for(i=0;i<600;i++);
}
}/***************************************************************************************/
voidINIT(void){//初始化程序
TMOD=0x11;
ET0=1;
ET1=1;
EA=1;
P0M1=0xff;//I/O介面工作方式
P0M0=0x00;//P0全為高阻輸入
P1M1=0xfe;//P1.0為准雙向,其他為高阻輸入
P1M0=0x00;
P2M1=0xff;//P2全為高阻輸入
P2M0=0x00;
P3M1=0xfc;//P3.0為強推,其他為標准雙向
P3M0=0x01;
P4M1=0xff;//P4全為高阻輸入
P4M0=0x00;
P4SW=0xff;
LED=1;
LED2=0;
SPEAKER=0;
}
/***************************************************************************************/
voidmain(void){
INIT();//初始化
while(1){
if(KEY37==1){delay1ms(20);if(KEY37==1){MUSIC=20;}}//高音B(37)
if(KEY36==1){delay1ms(20);if(KEY36==1){MUSIC=19;}}
if(KEY35==1){delay1ms(20);if(KEY35==1){MUSIC=18;}}
if(KEY34==1){delay1ms(20);if(KEY34==1){MUSIC=17;}}
if(KEY33==1){delay1ms(20);if(KEY33==1){MUSIC=16;}}
if(KEY32==1){delay1ms(20);if(KEY32==1){MUSIC=15;}}
if(KEY31==1){delay1ms(20);if(KEY31==1){MUSIC=14;}}
//3
if(KEY27==1){delay1ms(20);if(KEY27==1){MUSIC=13;}}
if(KEY26==1){delay1ms(20);if(KEY26==1){MUSIC=12;}}
if(KEY25==1){delay1ms(20);if(KEY25==1){MUSIC=11;}}
if(KEY24==1){delay1ms(20);if(KEY24==1){MUSIC=10;}}
if(KEY23==1){delay1ms(20);if(KEY23==1){MUSIC=9;}}
if(KEY22==1){delay1ms(20);if(KEY22==1){MUSIC=8;}}
if(KEY21==1){delay1ms(20);if(KEY21==1){MUSIC=7;}}
//2
if(KEY17==1){delay1ms(20);if(KEY17==1){MUSIC=6;}}
if(KEY16==1){delay1ms(20);if(KEY16==1){MUSIC=5;}}
if(KEY15==1){delay1ms(20);if(KEY15==1){MUSIC=4;}}
if(KEY14==1){delay1ms(20);if(KEY14==1){MUSIC=3;}}
if(KEY13==1){delay1ms(20);if(KEY13==1){MUSIC=2;}}
if(KEY12==1){delay1ms(20);if(KEY12==1){MUSIC=1;}}
if(KEY11==1){delay1ms(20);if(KEY11==1){MUSIC=0;}}
//1
if(MUSIC!=0xff){//如果有音階數值(非0XFF時)
STH0=tab[MUSIC]/256;//將音階的頻率值裝入定時器T0
STL0=tab[MUSIC]%256;
TR0=1;//啟動定時器
MUSIC=0xff;//清除寄存器
}else{//否則
SPEAKER=1;//關揚聲器
LED=1;
TR0=0;//關定時器
}
}
}
/***************************************************************************************/
voidt0(void)interrupt1using0{//定時器0產生音頻
TH0=STH0;
TL0=STL0;
SPEAKER=~SPEAKER;//取反頻率產生音調
LED=SPEAKER;//LED同頻閃爍
}
/***************************************************************************************/
/*************************************************************
*杜洋工作室www.DoYoung.net
/*************************************************************/
⑷ 最近想做自己的單片機系統,應該買些什麼東西
這個注意不知道是誰先提出來的,用麵包板做單片機實驗,我是從《愛上單片機》作者杜洋書上看到的,而且也做了實驗了,還真不錯,適合初學者。
針對這個你需要買這幾樣東西(假設你已經有電腦了):麵包板一塊,麵包板接線一堆(幾十根),單片機一片(推薦用STC的),晶振(11.0592MHZ)一隻,磁片電容(30P)兩只,省略復位電路了。發光二極體十幾只,電阻十幾只(200歐)。下載線一條,可以是USB轉串口,最好是USB轉TTL(這根線含有TXD,RXD通信口,還有5V和3V電源)。另外最好買一個裝三節電池的電池盒,便於離線展示你的作品。
⑸ 杜洋工作室單片機怎麼樣
挺好的。根據查詢網上相關信息顯示,杜洋工作室單片機使用的人很多,針對不同的人有不同的需求,由於各種電子元器件可根據需要隨意插入或拔出,免去了焊接,節省了電路的組裝時間,而且元件可以重復使用。
⑹ 51單片機c語言學習哪本書講的比較詳細,適合入門的看呢
你可以看看《愛上單片機》(杜洋著),超簡單的哦。
如果你不想買書,你可以下載《單片機編程魔法學校》,或者硬體的《單片機入門製作專輯》(其實就是從書裡面截取的片段)
還可以購買視頻,你到www.doyoung.net看看
其實沒必要買一塊開發板,也不必要自己做一塊
完全可以用麵包板搭建,無需焊接,拆裝方便,而且真正能理解硬體電路,讓自己動手實踐,例如第一次試驗只需要用三個元器件單片機(推薦用STC12C5A60S52,也是51內核的,完全通用,但是功能豐富,千萬不要用AT89S51,以後你就會知道,比如說以後用到ADC數模轉換,PWM輸出,STC就都集成好了,而AT就需要一個個用晶元外擴)LED燈、電池盒三個元件,而不需要面對連電路都不熟悉的開發板。詳見視頻「用麵包板入門單片機」:
http://www.doyoung.net/video/BREAD_1/index.html
學習C語言可以配合著《單片機入門製作專輯》(網頁最後可以下載光碟及文章):
http://www.doyoung.net/articles/0711_MCU_entry_album/index.html
《單片機編程魔法學校》(最後也有下載):
http://www.doyoung.net/articles/0711_MCU_entry_album/index.html
推薦書籍:《愛上單片機》
⑺ 學習c51有什麼好的網站。。拜託了
www.doyoung.net
這是杜洋的網站,上面「教學」一欄裡面有很多文章和視頻,例如視頻用麵包板入門單片機,這種方法不用焊接,拆解方便,入門簡單。還有《單片機編程魔法學校》《單片機入門製作專輯》這樣的免費文章,還都在《無線電》上刊登過。首頁上許多精簡設計,製作只需十來分鍾,但是不乏趣味。
(裡面介紹的STC系列單片機是51系列的高級型,完全和51單片機通用,卻速度更快,功能更多)