文章目錄
- 安裝教程
- 使用介紹
- 案例展示
接下來進行keil5軟件的相關學習使用
安裝教程
參考視頻鏈接bilibili 51單片機 大約在8分鐘位置處
使用介紹
- 首先新建project
- 選擇對應的芯片型號(例如:STC89C52 —— 由于STC系列是國產,keil5軟件不支持,改用AT系列即可 AT89C52)
- 創建C語言main.c文件
#include <REGX52.H>void main()
{while (1){// 設置P2端口的信號值8位,由于C語言中會將8位2進制數視為10進制,所以將信號值表示為16進制形式//點亮最后一個燈P2 = 0xFE; //1111 1110 }
}
-
軟件界面介紹
1處是build
按鈕,用于編譯項目文件
2處是設置編譯目標文件,點擊2處,得到以下界面
勾選Create HEX File
,生成.hex文件,用于燒錄進單片機 -
通過STC-ISP軟件
下載/編程
將.hex文件燒錄進單片機,再通過冷啟動后,即可執行程序
-
設置延時函數
再STC-ISP中設置對應頻率、延時時間等,生成對應的函數,復制到main.c中使用,需要引用#include <INTERINS.H>
-
數據運算
這也是C語言中常見的運算符,包括單目運算符和雙目運算符等,其中要區別邏輯運算符和位運算符之間的區別,例如&&
和&
-
基本語句
C語言常見的語句形式:條件語句、循環語句、選擇語句
int i; for(i=1; i<-8; i++) {fprint(i); }
-
數據類型
這里補充一個C語言中的知識:- char:它的具體類型由編譯器來決定,可能是有符號的,也可能是無符號的。在大多數編譯器環境中,char 會被當作 signed char 來處理,但你不能對這一點進行假設。
- unsigned char:這是無符號類型,其取值范圍是 0 到 255(以 8 位為例)。
- signed char:屬于有符號類型,采用補碼形式表示數值,取值范圍為 -128 到 127(以 8 位為例)
-
我
案例展示
- 獨立按鍵控制LED移位,通過原理圖可以看到,LED模塊對應P2接口,獨立按鈕對應P3_0-P3_3接口



#include <REGX52.H>
void Delay(unsigned int xms); \\延時函數,延時xms毫秒
unsigned char LEDNum;void main()
{P2 = ~0x01; \\ 初始化右側第一個燈亮while(1){if(P3_1 == 0) \\ 實現左移{Delay(20); \\延遲是因為獨立按鍵模塊需要調節穩定時間,大約是20ms,不進行延時科恩那個回導致多次觸發while(P3_1 == 0); \\ 檢測松手,按鍵開關松開Delay(20);LEDNum++;if(LEDNum >= 8)LEDNum = 0;P2 =~(0x01<<LEDNum);}if(P3_0 == 0) \\ 實現右移{Delay(20);while(P3_0 == 0);Delay(20);if(LEDNum == 0)LEDNum = 7;elseLEDNum--;P2 =~(0x01<<LEDNum);}}
}void Delay(unsigned int xms)
{unsigned char i, j;while(xms--){i = 2;j = 239;do {while (--j);}while (--i);}
}