Ⅰ 大家誰能介紹一本初學者學習單片機的書呢希望對單片機的存儲器,單元地址等有詳細介紹
郭天祥的書技術性強一些 建議購買
杜洋的愛上單片機 趣味性強一些 更加強烈 以及非常建議購買
搞電子興趣是最好的老師
Ⅱ 我看的郭天祥的十天征服單片機中的不明白的地方,求指教!
首先說你的程序吧,庫文件就錯了,庫文件夾裡面根本沒有,只有AT89X52.H,
其次是你連串口都沒初始化(比如串口波特率什麼的),還有你的LED都沒開始掃描,
最後是那個叫獸對自己寫的程序是不負責任的,他們的目的不是做項目,
也不是教徒弟,而是為了賣開發板!
幫你寫個例子吧。
//程序功能:串口助手發送一個16進制數據後單片機收到並顯示加返回。
#include<AT89X52.H> //添加庫文件
#defineucharunsignedchar //替換定義
#defineuintunsignedint //替換定義
bitTX_IF; //自定義一個標志位
ucharUA_TMP; //自定義一個變數
voiart_init() //串口初始化
{
SCON=0x50; //串口模式1,使能串口接收
TMOD|= 0x20; //設置定時器1為8位自動重裝定時器
TH1=0xFD; //9600波特率
TL1=0; //9600波特率
IE |=0x90; //開串口中斷,開總中斷,
TR1=1; //啟動定時器1
}
voidUART(ucharU_D) //發送一個位元組數據
{
while(TX_IF&&(!TI)); //等待上一次數據發送完畢
TI=0;
SBUF=U_D;
TX_IF=1;
}
voidINT_UART(void)interruptSIO_VECTOR//串口中斷函數
{
if(TI) //串口發送中斷處理
{
TI=0;
TX_IF=0;
}
if(RI) //串口接收中斷處理
{
RI=0; //清除接收中斷標志
UA_TMP=SBUF; //將接收到的數據放入緩存
UART(UA_TMP); //將收到的數據發送回去
P0=UA_TMP; //將收到的數據通過P0的LED顯示
}
}
voidreg_init()
{
uart_init();
TX_IF=0;
UA_TMP=0;
P0=P1=P2=P3=0xFF;
}
voidmain()
{
reg_init(); //寄存器初始化
while(1);
}
Ⅲ 本人 自學單片機, 剛剛入門,請高人指點 今後的學習方向。
其實你沒要去問的這么詳細……你開始最需要的就是學會用單片機,現在沒必要知道單片機的原理,除非你非得用匯編語言,至少C語言可以快速上手,推薦看郭天祥的十天征服單片機,看完你會有很大的收獲的,然後最好就是從你的開發板做起,把每一項都玩兒完了,就像玩兒玩具一樣,很簡單的,有啥想法就去實踐一下,自己動手做做,最好少泡論壇去問問題,去等待別人的解答,自己要學會獨立思考問題的能力,不要依賴任何東西,不會了就查資料,文庫里多的是,其次就是你說的看時序只是一部分,一定要學會看datasheet,看電氣參數,允許電壓電流之類的,看引腳功能,看操作方法,時序只是屬於操作方法,學會歸類總結,最後說一下時序圖的看法,把時序圖上標號的引腳都定義好了,先看第一條線,是高還是低,就把引腳置高拉低,然後如果後再看第二根設置狀態,再依次類推,如果後邊有平線就延時一下,這樣一點點的寫下去,因為時序圖實際上就是邏輯操作圖,所以要以一個計算機的思想去描述他,記住計算機不是人,沒有發散思維,做啥事兒都是一根線的操作,即使思路分叉了也只能去走一根……十天征服單片機,相信真能的,加油啊
Ⅳ 求郭天祥51單片機10天征服你視頻的百度雲盤鏈接。謝謝
書還可以!我買了一本,裡面帶光碟的,視頻垃圾很……
視頻的話你可以在網上看看雲龍電子的!單片機不是看你學了多少高級命令,而是看你如何發揮初級命令的能力!當初級命令非常熟練了高級命令只要見過別人用一兩次就會了
Ⅳ 有哪位知道學習單片機的網站
郭天祥老師的十天學會單片機和C語言視頻教材,很好的,可以在網路搜下下載,我有下載好的,不過容量好大