目錄
- 新建項目
- 選擇型號
- 添加新文件到該項目
- 設置字體和utf-8編碼
- 二極管如何區分正負極
- 原理:CPU通過寄存器來控制硬件電路
- 用P2寄存器的值控制第一個燈亮
- 進制轉換
- 編譯
- 查看P2寄存器的地址
- 生成HEX文件
- 把代碼下載到單片機中
新建項目
選擇型號
stc是中國生產的、這個里面沒有包括stc型號,可以用Atmel中的AT89C52代替
添加新文件到該項目
設置字體和utf-8編碼
二極管如何區分正負極
VCC是LED模塊中的正極。(VCC,是Volt Current Condenser的簡寫,意思是電路的供電電壓)
左邊的紅色部分是負極、它們的編號對應引腳部分的編號。
LED模塊藍色的框是電阻、對應上圖紅框圈著的東西。
電阻是一千歐的。
1000歐對應102。
102 = 10 x 10^2 = 1000歐473 = 47 x 10^3 = 47 000歐1001 = 100 x 101002 = 100 x 10^2
高電流是5V、低電流是0V
燈直接接5V的話可能會燒毀、所以需要電阻。
原理:CPU通過寄存器來控制硬件電路
寄存器的八位對應LED的低電流端的8個引腳
寄存器的1代表高電流 5V。
0代表低電流0V
用P2寄存器的值控制第一個燈亮
當最上面的設置為0,那么就對應低電流,D1就可以亮。
其它的設置為1、那么負極設置成高電流、設置為1的不會亮。
從而只讓第一個燈亮。
P2 = 1111 110
直接這樣寫系統會認為是十進制、所以需要進制轉換。
進制轉換
十六進制就是十進制到10的時候編程A、然后15的時候變成F
二進制1111 1110 可以轉換為 0xFE
void main()
{P2 = 0xFE; // 相當于二進制1111 1110
}
這樣的話第一個端口是低電流,其它都是高電流。
編譯
點擊編譯發現報錯說P2沒有定義。
導入:
#include <REGX52.H>
查看P2寄存器的地址
導入項目之后,右鍵這個包可以打開里面的內容:
P2已經被定義為0xA0;
導入包之后代碼就不會報錯了,因為會把P2自動識別為0xA0這個地址的寄存器。
點擊編譯。
生成HEX文件
然后重新編譯。
如果不生成HEX文件,是無法將代碼弄到單片機中的。
把代碼下載到單片機中
找到項目的Objects文件,打開hex后綴的文件
點擊打開之后點擊下載