㈠ 大學生電子設計大賽 設計的作品都能用 51單片機來做么
我是STM32(與ARM同級)的玩家,坦誠的告訴您:51本身很簡單,但他的外圍程序其實比ARM更難,因為ARM有庫函數,51的幾乎沒有,比如SPI,51要軟體模擬,ARM直接調用庫函數。我看過1萬多行的51的程序,你說51簡單?!
大學生電子設計大賽我參加了,2等獎。用51完全可以!但你要開闊眼界!別總局限於一個.c,試著自己寫庫。建議學單片機從51學起,轉ARM學ARM不是因為ARM比51強大多少,是為了讓你開闊眼界。但直接學ARM您會很受打擊的,所以還是一步一步來吧,呵呵。
㈡ 求一段為51單片機編寫的LCD電子時鍾的設計,簡單就好!高分伺候!
簡單的時鍾,不用1302即可辦到。
題目要求的設計已經完成,電路圖如下。
程序稍長,放在我的網路空間了。
可以用網路、網頁,進行查找:
做而論道用LCD1602顯示的時鍾
網路一下,即可查到。
㈢ 有沒有什麼基於51單片機的創意設計
可以做個遙控飛機,用一對無線接收和發送模塊就行了
㈣ 51單片機,用c語言,如何用矩陣鍵盤為一個變數char a賦值已設計出一個函數,使得每按一個矩陣
/***4×4矩陣按鍵構架——火柴天堂作品-20110921***/
/***源程序默認硬體環境:52單片機,12MHz晶振,P1口 4×4矩陣鍵盤,詳細布局如下***/
/* 默認矩陣布局,按鍵掃描方式1使用
P0 P1 P2 P3
│ │ │ │
P4─┼──┼──┼──┤ S1 S2 S3 S4
│ │ │ │
P5─┼──┼──┼──┤ S5 S6 S7 S8
│ │ │ │
P6─┼──┼──┼──┤ S9 S10 S11 S12
│ │ │ │
P7─┴──┴──┴──┘ S13 S14 S15 S16
*/
#include"reg52.h" //包含52頭文件
#define TRUE 1 //定義布爾量'1':真
#define FALSE 0 //定義布爾量'0':假
#define uchar unsigned char //定義 無符號字元型數據 簡稱
#define uint unsigned int //定義 無符號整型數據 簡稱
#define KeyPort P1
#define Key1Value 1
#define Key2Value 2
//uchar code KeyCodeList[16]={0xee,0xed,0xeb,0xe7,0xde,0xdd,0xeb,0xe7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77};//按鍵代碼列表,按鍵掃描方式2使用,可按需要隨意修改順序
uchar KeyScan() //按鍵掃描函數(方式1,需配合源程序矩陣布局,返回值0表示無按鍵,1-16為對應按鍵),缺點:無法掃描組合鍵(同時按2個按鍵以上)
{
uchar temp_h,temp_l,scan_value,i;
KeyPort=0xf0; //設置低4位為0(掃描線),准備讀取高4位(返回線)狀態
if(KeyPort==0xf0) return 0; //若高4位狀態不變,表示無按鍵,返回無按鍵 鍵值0
temp_h=~KeyPort>>4; //若高4位狀態改變,表示有按鍵,讀取高4位,並將結果轉成正邏輯(按鍵對應 行線 為 1 )存在temp_h低位上
KeyPort=0x0f; //設置高4位為0(掃描線),准備讀取低4位(返回線)狀態
temp_l=~(KeyPort|0xf0); //讀取低4位,並將結果轉成正邏輯(按鍵對應 列線 為 1 )存在temp_l低位上
while(i<4) //將 按鍵行線號 轉成數值
{
if((temp_h>>i)==0x01) break; //讀取按鍵行線號
i++;
}
if(i==4) return 0; //若讀取出錯,返回無按鍵
temp_h=i; //將 按鍵行線數值 結果存於 temp_h
i=0;
while(i<4) //將 按鍵列線號 轉成數值
{
if((temp_l>>i)==0x01) break; //讀取按鍵列線號
i++;
}
if(i==4) return 0; //若讀取出錯,返回無按鍵
temp_l=i; //將 按鍵列線號 結果存於 temp_l
scan_value=(temp_h<<2)+temp_l+1; //合並行列線數值,並轉成按鍵值,每條行線鍵值差為 4(temp_h<<2),按鍵值從1開始(+1,0為無按鍵 鍵值)
return scan_value; //返回 按鍵值
}
/*
uchar KeyScan() //按鍵掃描函數(方式2,需配合 按鍵代碼列表 數組 進行 鍵值 查詢,返回值0表示無按鍵,1-16為代碼表順序對應按鍵),缺點:無法掃描組合鍵
{
uchar temp,i;
KeyPort=0xf0; //設置低4位為0(掃描線),准備讀取高4位(返回線)狀態
if(KeyPort==0xf0) return 0; //若高4位狀態不變,表示無按鍵,返回無按鍵 鍵值0
temp=KeyPort|0x0f; //若高4位狀態改變,表示有按鍵,讀取高4位,並將結果存於 temp 的高4位
KeyPort=0x0f; //設置高4位為0(掃描線),准備讀取低4位(返回線)狀態
temp&=(KeyPort|0xf0); //讀取低4位,並將結果存於 temp 的低4位
while(i<16) //將按鍵行列線代碼轉換成鍵值
{
if(temp==KeyCodeList[i]) break; //將 行列線 代碼與 按鍵代碼表 進行對比,若一致則結束對比
i++; //進行下一個對比
}
if(i==16) return 0; //若查詢出錯,或 行列線代碼 不在 按鍵代碼表中,返回無按鍵 鍵值0
return i+1; //返回按鍵值1~16(按鍵代碼列表中元素下標+1,0為無按鍵 鍵值)
}
*/
void KeyResp() //按鍵響應函數
{
static uchar KeyValue; //定義靜態變數-按鍵值,
static bit KeyDownFlag,KeyReadyFlag; //定義靜態標志位-按鍵按下標志,按鍵准備(響應)標志
uchar key_value=KeyScan(); //調用掃描函數,並將結果臨時存放於key_value 中
if(key_value) //若掃描結果為真(即有按鍵)
{
KeyValue=key_value; //保存掃描結果
KeyDownFlag=TRUE; //按鍵按下標志 置位
KeyReadyFlag=TRUE; //按鍵准備(響應)標志 置位
}
else KeyDownFlag=FALSE; //若掃描結果為假(即無按鍵),則清空按鍵按下標志
if(KeyReadyFlag && !KeyDownFlag) //若 按鍵已准備(響應),且無按鍵按下,(可知為 按下後又鬆手情況)
{
switch(KeyValue) //查找 按鍵值 對應的 按鍵處理
{
case Key1Value:break; //按鍵1處理
case Key2Value:break; //按鍵2處理
//case Key3Value:break;//......... //按鍵N處理
default:break; //無對應按鍵,或其它按鍵值處理
}
KeyValue=0; //清除按鍵值
KeyReadyFlag=FALSE; //清空 按鍵准備(響應)標志
}
}
void main() //主函數
{
while(1) //循環系統
{
KeyResp(); //調用 按鍵響應函數
}
}
㈤ 新概念51單片機C語言教程的作品目錄
第1篇入門篇
1.1單片機概述
1.1.1什麼是單片機
1.1.2單片機標號信息及封裝類型
1.1.3單片機能做什麼
1.1.4如何開始學習單片機
1.251單片機外部引腳介紹
1.3電平特性
1.4二進制與十六進制
1.4.1二進制
1.4.2十六進制
1.5二進制的邏輯運算
1.5.1與
1.5.2或
1.5.3非
1.5.4同或
1.5.5異或
1.6單片機的C51基礎知識介紹
1.6.1利用C語言開發單片機的優點
1.6.2C51中的基本數據類型
1.6.3C51數據類型擴充定義
1.6.4C51中常用的頭文件
1.6.5C51中的運算符
1.6.6C51中的基礎語句
1.6.7學習單片機應該掌握的主要內容
2.1Keil工程建立及常用按鈕介紹
2.1.1Keil工程的建立
2.1.2常用按鈕介紹
2.2點亮第一個發光二極體
2.3while語句
2.4for語句及簡單延時語句
2.5Keil模擬及延時語句的精確計算
2.6不帶參數函數的寫法及調用
2.7帶參數函數的寫法及調用
2.8利用C51庫函數實現流水燈
第2篇內外部資源操作篇
3.1數碼管顯示原理
3.2數碼管靜態顯示
3.3數碼管動態顯示
3.4中斷概念
3.5單片機的定時器中斷
4.1獨立鍵盤檢測
4.2矩陣鍵盤檢測
5.1模擬量與數字量概述
5.2A/D轉換原理及參數指標
5.3ADC0804工作原理及其實現方法
5.4D/A轉換原理及其參數指標
5.5DAC0832工作原理及實現方法
5.6DAC0832輸出電流轉換成電壓的方法
第6章串列口通信原理及操作流程
6.1並行與串列基本通信方式
6.2RS-232電平與TTL電平的轉換
6.3波特率與定時器初值的關系
6.451單片機串列口結構描述
6.5串列口方式1編程與實現
6.6串列口列印在調試程序中的應用
第7章通用型1602,12232,12864液晶操作方法
7.1液晶概述
7.2常用1602液晶操作實例
7.3常用12232液晶操作實例
7.4常用12864液晶操作實例
第8章I2C匯流排AT24C02晶元應用
8.1I2C匯流排概述
8.2單片機模擬I2C匯流排通信
8.3E2PROMAT24C02與單片機的通信實例
第9章基礎運放電路專題
9.1運放概述及參數介紹
9.2反相放大器
9.3同相放大器
9.4電壓跟隨器
9.5加法器
9.6差分放大器
9.7微分器
9.8積分器
第3篇提高篇
第10章定時器/計數器應用提高
10.1方式0應用
10.2方式2應用
10.3方式3應用
10.452單片機定時器2介紹
10.5計數器應用
第11章串列口應用提高
11.1方式0應用
11.2方式2和方式3應用
11.3單片機雙機通信
11.4單片機多機通信
第12章指針
12.1指針與指針變數
12.1.1內存單元、地址和指針
12.1.2指針變數的定義、賦值與引用
12.2指針變數的運算
12.3指針與數組
12.3.1指針與一維數組
12.3.2指針與多維數組
12.4指針與函數
12.4.1指針作為函數的參數
12.4.2指向函數的指針
12.4.3指針型函數
12.5指針與字元串
12.5.1字元串的表達形式
12.5.2字元指針作為函數參數
12.5.3使用字元指針與字元數組的區別
12.6指針數組與命令行參數
12.6.1指針數組的定義和使用
12.6.2指向指針的指針
12.6.3指針數組作為main()函數的命令行參數
12.7指針小結
12.7.1指針概念綜述
12.7.2指針運算小結
12.7.3等價表達式
12.8C51中指針的使用
12.8.1指針變數的定義
12.8.2指針應用
第13章STC系列51單片機功能介紹
13.1單片機空閑與掉電模式應用
13.2「看門狗」概念及其應用
13.3用軟體實現系統復位
13.4內部擴展RAM的應用
13.5擴展P4口的應用
13.6內部E2PROM的應用
13.7STC89系列單片機內部A/D應用
13.8STC12系列單片機內部A/D應用
13.9STC12系列單片機的PCA/PWM介紹
13.10STC12系列單片機的SPI介面介紹
13.11STC12系列單片機的「576MHz」超速運行
第4篇實戰篇
第14章利用51單片機的定時器設計一個時鍾
14.1如何從矩陣鍵盤中分解出獨立按鍵
14.2原理圖分析
14.3實例講解
第15章使用DS12C887時鍾晶元設計高精度時鍾
15.1時鍾晶元概述
15.2DS12C887時鍾晶元介紹
15.3如何用TX-1C實驗板擴展本實驗
15.4原理圖分析
15.5實例講解
第16章使用DS18B20溫度感測器設計溫控系統
16.1溫度感測器概述
16.2DS18B20溫度感測器介紹
16.3實例講解
第17章太陽能充/放電控制器
17.1控制器原理圖分析
17.2控制器板上元件介紹
17.3實例講解
第18章VC、VB(MSCOMM控制項)與單片機通信實現溫度顯示
18.1VCMSCOMM控制項與單片機通信實現溫度顯示
18.2VBMSCOMM控制項與單片機通信實現溫度顯示
第5篇拓展篇
第19章使用Protell99繪制電路圖全過程
19.1繪制電路板概述
19.2建立工程
19.3製作元件庫
19.4添加封裝及製作PCB封裝庫
19.5錯誤檢查及生成PCB
19.6布線電氣特性設置
19.7自動布線和手動布線
第20章ISD400x系列語音晶元應用
20.1ISD400x系列語音晶元介紹
20.2ISD400x系列語音晶元操作規則
20.3ISD400x系列語音晶元應用實現
第21章電機專題
21.1直流電機原理及應用
21.2步進電機原理及應用
21.3舵機原理及其應用
第22章常用元器件介紹
22.1二極體
22.2電容
22.3場效應管
22.4光耦
22.5蜂鳴器
22.6繼電器
22.7自恢復保險
22.8瞬態電壓抑制器
22.9晶閘管(可控硅)
22.10電荷泵
第23章直流穩壓電源專題
23.1整流電路
23.2濾波電路
23.3穩壓電路
23.4集成穩壓模塊的使用
23.5串聯開關型穩壓電源
第24章運放擴展專題
24.1簡單低通濾波器
24.2「電流-電壓」轉換電路
24.3光電放大器
24.4精密電流源
24.5可調參考電壓源
24.6復位穩定放大器
24.7模擬乘法器
24.8全波整流器和平均值濾波器
24.9正弦波振盪器
24.10三角波發生器
24.11自動跟蹤對稱電源
24.12可調實驗電源
24.13運放相關術語表
附錄A天祥電子開發實驗板簡介
A.1TX-1C51單片機開發板(配套詳細視頻教程)
A.2AVR單片機開發板(配套詳細視頻教程)
A.3PIC單片機開發板(配套詳細視頻教程)
A.4J-Link全功能ARM模擬器
A.5三星S3C44B0ARM7入門級開發板
A.6三星S3C44B0ARM7提高級開發板
A.7TX-51STAR51單片機開發板(配套詳細視頻教程)
參考文獻
㈥ 51單片機的區別
同樣的一段程序,在各個單片機廠家的硬體上運行的結果都是一樣的,如ATMEL的89C51(已經停產)、89S51, PHILIPS,和WINBOND等,我們常說的已經停產的89C51指的是ATMEL公司的 AT89C51單片機,同時是在原基礎上增強了許多特性,如時鍾,更優秀的是由Flash(程序存儲器的內容至少可以改寫1000次)存儲器取代了原來的ROM(一次性寫入),AT89C51的性能相對於8051已經算是非常優越的了。
不過在市場化方面,89C51受到了PIC單片機陣營的挑戰,89C51最致命的缺陷在於不支持ISP(在線更新程序)功能,必須加上ISP功能等新功能才能更好延續MCS-51的傳奇。89S51就是在這樣的背景下取代89C51的,89S51已經成為了實際應用市場上新的寵兒,作為市場佔有率第一的Atmel公司已經停產AT89C51,將用AT89S51代替。89S51在工藝上進行了改進,89S51採用0.35新工藝,成本降低,而且將功能提升,增加了競爭力。89SXX可以向下兼容89CXX等51系列晶元。同時,Atmel不再接受89CXX的定單,大家在市場上見到的89C51實際都是Atmel前期生產的巨量庫存而以。如果市場需要,Atmel當然也可以再恢復生產AT89C51。
89S51相對於89C51增加的新功能包括:
-- 新增加很多功能,性能有了較大提升,價格基本不變,甚至比89C51更低!
-- ISP在線編程功能,這個功能的優勢在於改寫單片機存儲器內的程序不需要把晶元從工作環境中剝離。是一個強大易用的功能。
-- 最高工作頻率為33MHz,大家都知道89C51的極限工作頻率是24M,就是說S51具有更高工作頻率,從而具有了更快的計算速度。
-- 具有雙工UART串列通道。
-- 內部集成看門狗計時器,不再需要像89C51那樣外接看門狗計時器單元電路。
-- 雙數據指示器。
-- 電源關閉標識。
-- 全新的加密演算法,這使得對於89S51的盜版變為不可能,程序的保密性大大加強,這樣就可以有效的保護知識產權不被侵犯。
-- 兼容性方面:向下完全兼容51全部字系列產品。比如8051、89C51等等早期MCS-51兼容產品。也就是說所有教科書、網路教程上的程序(不論教科書上採用的單片機是8051還是89C51還是MCS-51等等),在89S51上一樣可以照常運行,這就是所謂的向下兼容。
比較結果:就如同INTEL的P3向P4升級一樣,雖然都可以跑Windows98,不過速度是不同的。從AT89C51升級到AT89S51 ,也是同理。和S51比起來,C51就要遜色一些,實際應用市場方面技術的進步是永遠向前的。
㈦ 我的畢業設計為 51單片機製作電子琴 需要改進哪些地方才能使相似度低一些,或者說更像我的作品 謝謝
1:增加些功能,比如力度,觸後,滑音,顫音等等等等,可參見指令表;
2:簡化演奏,比如直接按出3連音之類的;
3:增加輔助功能,比如教學按鍵發光指示;
。。。。。。想怎麼搞就怎麼搞吧~
㈧ 51單片機可以做哪些東西
1.燈光控制。如模擬交通燈,心形流水燈,光立方,廣州塔,配上不同顏色的LED燈和蜂鳴器或音樂播放器,表白神器,送給心儀的妹子(小心被拉黑)
2.電子時鍾,配上按鍵,數碼管或LCD顯示屏,蜂鳴器,實現校準,鬧鍾,報點等功能。
3.智能小車或機器人。紅外尋跡避障,超聲波測距,也可以通過手機藍牙或wifi控制。智能小車比賽專場。
4.智能家居系統。數字密碼鎖(指紋),電子相冊,溫濕度檢測,紅外感應,煙霧報警,配上通信模塊實現與簡訊或電話提醒等。
5.還有很多什麼智能防丟器,智能檢測系統,計費收費系統,圖書館管理系統等,無非就是用各種感測器採集數據,經過數據處理然後實現相應的功能,在LCD屏顯示。
6.沒有做不到的,只有想不到的,去各種電子比賽可以看到很多有趣的作品,當51單片機滿足不了的時候就可以換上16位,32位單片機。
㈨ 求51單片機風扇轉速監控程序 C語言
給你個我寫的基於89c52的單片機測頻率的程序,你參考下
#include<reg52.h>
#include<intrins.h>
#include<stdlib.h>
#defineucharunsignedchar
#defineuintunsignedint
#defineLCD_dataP0
sbitLCD_RS=P2^0;
sbitLCD_RW=P2^1;
sbitLCD_EN=P2^2;
sbitLCD_PSB=P2^3;
bitflag=0;
uintnum1=0,num2=0,count=0;
voiddisplay();
voiddelayms(uintx)
{
uinti,j;
for(j=0;j<x;j++)
for(i=0;i<110;i++)
;
}
voidwrite_cmd(ucharcmd) //12864寫命令函數
{
LCD_RS=0;
LCD_RW=0;
LCD_EN=0;
P0=cmd;
delayms(5);
LCD_EN=1;
delayms(5);
LCD_EN=0;
}
voidwrite_dat(uchardat) //12864寫數據函數
{
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
P0=dat;
delayms(5);
LCD_EN=1;
delayms(5);
LCD_EN=0;
}
voidlcd_pos(ucharX,ucharY) //12864寫位置函數
{
ucharpos;
if(X==0)
X=0x80;
elseif(X==1)
X=0x90;
elseif(X==2)
X=0x88;
elseif(X==3)
X=0x98;
pos=X+Y;
write_cmd(pos);
}
voidlcd_init() //12864初始化函數
{
LCD_PSB=1;
write_cmd(0x30);
delayms(5);
write_cmd(0x0c);
delayms(5);
write_cmd(0x01);
delayms(5);
}
voidTime2_Init(void) //T2定時器自動重裝初值定時1s
{
EA=1;
ET2=1;
TR2=1;
RCAP2L=(65535-46083)%256;
RCAP2H=(65535-46083)/256;
}
voiddisplay() //12864顯示函數
{
lcd_pos(0,0);
write_dat(num1/1000+'0');
write_dat(num1/100%10+'0');
write_dat(num1/10%10+'0');
write_dat(num1%10+'0');
lcd_pos(1,0);
write_dat(num2/1000+'0');
write_dat(num2/100%10+'0');
write_dat(num2/10%10+'0');
write_dat(num2%10+'0');
}
main()
{
lcd_init();
Time2_Init();
TMOD=0x55;
TR0=1;
TR1=1;
while(1)
{
TH0=0;
TL0=0;
TH1=0;
TL1=0;
flag=0;
while(!flag);
num1=TH0<<8|TL0; //num1為T0在1s內統計的下降沿次數,輸入引腳為P3.4
num2=TH1<<8|TL1; //num2為T1在1s內統計的下降沿次數,輸入引腳為P3.5
display();
}
}
voidTime2(void)interrupt5 //T2定時器中斷1s
{
TF2=0;
count++;
if(count==20)
{
flag=1;
count=0;
}
}
㈩ 51單片機擦除24C128的程序怎麼寫
吳鑒鷹單片機開發板。
從剛開始接觸單片機,到現在已經有4年的時間了,在這期間學習和使用了51單片機、飛思卡爾單片機,LPC2138,PIC16F887等系列的單片機,每接觸一款單片機,都會經歷熟悉其基本開發,然後將其用於項目中的過程,對於如何學習一款單片機,自己做了如下的總結。
大家都知道,51單片機是最容易入門的,不僅因為其編程簡單,更重要的是網上的資料非常豐富。所以一般學習單片機開發的都將51單片機作為入門開發的首選。我學習51單片機的時候是採用這樣的一個步驟進行學習的:
第一步(熟悉的過程):買了一款51單片機開發板,然後就開始了我的學習之旅,剛開始的時候沒有去看視頻教程,而是對著一本實驗教材進行學習,那本實驗教材的名字記不清楚了,但是其內容就是圍繞單片機的LED燈進行控制,將51單片機內部的各個功能部件全部都使用到了,這樣就能使我在很短的時間內,通過控制LED燈的亮、滅熟悉了51單片機的內部的各種資源,這時對51單片機也就沒有感到陌生了。所以,個人覺得,學習單片機,要從實驗入手,先熟悉單片機再說,開發語言開始使用的是C語言。
第二步(進階的過程):有了第一步的基礎之後,接下來的便是進階的過程,當時,我看的是郭天祥十天學會單片機的視頻教程,因為這個教程從基礎到復雜的編程慢慢深入,講的比較的全面,而且也生動,所以那一階段,也是我學習單片機進步最快的階段,每次聽課的時候,按照上面的實驗,以及課堂上面調試程序時出現的一些問題,自己認真的在電腦上進行調試,並分析產生故障的原因,讓我有了一定的開發基礎。在看完了視頻教程之後,後面又對基礎的知識進行了下補習,主要是看單片機原理性的教材,因為有些細節性的東西還是要從教材上面獲得。
第三步(項目實戰的階段):學習單片機的時候,雖然也編寫了一些程序,但是那些都是一些很小的模塊程序,並沒有起到綜合應用的目的,所以在這之後,我和另外一個學習硬體的同學一起組成了一個小的團隊,進行項目實踐開發,那時候,實驗室的條件比價好,有很多的器件可以自己使用。所以,我們就設計了我們的第一個作品,基於單片機的液體點滴監控系統。做這個系統時,就將以前單片機所學的知識,做了一個綜合的應用,包括有LCD1602控制,串口的控制等。
經過以上三個步驟的學習之後,對於51單片機的開發基本上就算入門了。而對於其他類型的單片機,如飛思卡爾單片機,LPC2148 ARM7單片機,PIC16F887等,雖然每個系列的功能不一樣,但是最基本的編程思想還是一樣的,不同的可能就是編譯器,程序下載的軟體等差別,所以有了51單片機的開發基礎之後,學習其他單片機所採用的方法就是一個差異化的學習,學習各種單片機不同的地方,這樣,就能很快的熟悉一款新的型號的單片機。
如在學習PIC16F887這個系列的單片機時,我首先做的工作不是去閱讀數據手冊,而是先拿著DEMO代碼,在編譯軟體中編譯、鏈接、生成HEX文件,然後將其下載到開發板中跑起來,這個過程主要就是學習其軟體的基本操作,有了這個基礎之後,就能自己進行編程、測試。之後就是熟悉其編程的模式,所謂其編程模式,就是寄存器的控制,中斷程序的編寫,熟悉了這個操作,也就能控制其他的功能模塊了,如串口的控制、I2C硬體控制器的控制。這些基本的開發熟悉了之後,接下來便是學習差異的部分,例如PIC單片機C語言中,其堆棧深度不能超過8級,超過了之後,將會使得程序出現跑飛的現象。而且內存的分配完全要靠自己來控制,分成了4個BANK的數據,BANK0,BANK1,BANK2,BANK3 等。這些就是每個系列單片機所獨有的一些東西,這些東西需要詳細的了解,因為它們可能為你的編程帶來很大的便利。
以上就是我學習單片機的總結,如果大家有更好的學習方法,希望大家能夠提出來,一起討論,共同進步。