一、C51語言基礎
【考點】存儲類型
data是低128字節
code是ROMidata是高128字節
pdata是外部RAM可以用R0 R1尋址的,也叫頁
xdata是外部RAM,可以用DPTR尋址或總線擴展
其中data、code、idata、pdata、xdata均為字節類型的,bdata是對位尋址的
【考點】數據類型
char是單字節,unsigned char是無符號單字節
int是雙字節,是有符號的,即有正負
【考點】中斷服務程序的寫法
返回值必須是 void 類型,傳遞參數也必須是 void 類型
ISR 是中斷服務程序,是inter interrupt server routine的縮寫
xx需要寫具體的中斷名字
interrupt是關鍵字,是C51語言中特有的
第一個2 代表中斷號 51單片機有5個中斷(S表示串行口)
第二個2 代表工作寄存器組
【考點】指針
p是指針,聲明的時候前面需要加*,表明這是一個指針類型
&x 表示取x的地址,& 為取地址符
【考點】數組的應用
在定義數組時,加 [ ] ,用來區分數組和普通變量
C語言編譯器會自動在 [ ] 中填入數組元素的個數
【考點】與運算
與上0001 1111B,為零的地方會被清掉,只保留了1的部分
【考點】循環語句的用法
非零即真
unsigned char是單字節類型,范圍是00H~FFH
初始值為1,也就是說 i 從1開始加到255,255再加1為0
【考點】STC單片機
模擬輸入接AD轉換器
推挽輸出:頂天立地
開漏輸出:導通時相當于接地,輸出為0V
關斷時,引腳和三極管(或MOS管)沒有關系,此時不能輸出高電平
若要輸出高電平,可以在芯片外面接一個上拉電阻,此時可以輸出高電平1
二、請逐行解釋keil編譯后輸出的提示信息
【考點】對編譯器的理解
啟動文件優先于主函數main運行
C語言需要先生成匯編語言再翻譯為機器碼
匯編語言需要翻譯成機器碼
啟動文件和C文件經過處理后會變成兩大段機器碼,這兩大段機器碼的順序由鏈接器來決定,最終形成所要用的機器碼
無論是變量還是機器碼都要放到存儲器中
51單片機中有4KB個字節
Objects是指目標文件
0錯誤,0警告僅代表程序在語法上沒有問題
三、鍵盤掃描驅動設計
注意時間是計數值*時間
開始連續時間為(80-30)*10ms
自動連續時間為(100-80)*10ms
按鍵按下時相當于接地,即為0,注意右側為高位
四、模擬交通燈設計
五、LED數碼管設計
CD4094_Data_L代表CD4094 Data = 0
先發送最高位D7
位驅動和段碼驅動都是通過4094實現的
用4094實現數碼管的驅動不需要消隱,因為其位碼和段碼是同時輸出的