1.jpg (264.16 KB, 下載次數: 41)
下載附件
部分知識點
2022-4-25 00:06 上傳
2.jpg (153.5 KB, 下載次數: 53)
下載附件
仿真圖
2022-4-25 00:06 上傳
附件有工程文件,努力學習吧少年。
注釋得非常詳細的單片機源程序如下:
- /*********************************************************************************************************************************************************************************************
- 表1.6.1 * 表1.6.2 * 表1.6.2 * 表1.6.4 * 表1.6.5 *
- 常用數據類型 關鍵字 所占位數 表示數的范圍 * 算數運算符 含義 * 關系(邏輯)運算符 含義 * 位運算符 含義 * 基礎語句 類型 *
- 無符號字符型 unsigned char 8 0~255 * * > 大于 * & 邏輯與 * if 選擇語句 *
- 有符號字符型 char 8 -128~127 * + 加法 * >= 大于等于 * | 邏輯或 * while 循環語句 *
- 無符號整型 unsigned int 16 0~65535 * - 減法 * < 小于 * ^ 異或 * for 循環語句 *
- 有符號整型 int 16 -32768~32767 * * 乘法 * <= 小于等于 * ~ 取反 * switch/case 多分支選擇語句 *
- 無符號長整型 unsigned iong 32 * / 除法(或求模運算) * == 測試相等 * >> 右移 * do-while 循環語句 *
- 無符號長整型 iong 32 * ++ 自加 * != 測試不等 * << 左移 * *
- 單精度實型 float 32 3.4e-38~3.4e38 * -- 自減 * && 按位與 * * *
- 雙精度實型 double 64 17.e-308~1.7e30 * % 求佘運算 * || 按位或 * * *
- 位類型 bit 1 0~1 * * ! 非 * * *
- **********************************************************************************************************************************************************************************************/
- #include <REGX52.H> //頭文件 【正式語句】
- sbit led1=P1^0; // 聲明單片機P1口() 【正式語句】 在Pro仿真中:LED-YELLOW燈泡腳連接P1.0口
- /*********************************************************************************************************************************************************************************************
- 知識點:main()主函數的寫法
- 格式:void main() 注意:后面沒有分號。
- 特點:無返回值,無參數。
- 1、無返回值表示該函數執行完成后不返回任何值,上面main前面的void表示“空”,即不返回值的意思,后面我們會講到有返回值的函數,到時大家一對比便會更加明白。
- 2、無參數表示該函數不帶任何參數,即main后面的括號中沒有任何參數,我們只寫“()”就可以了,也可以在括號里寫上void,表示“空”的意思,如void main(void)。
- 3、任何一個單片機C程序有且僅有一個main函數,它是整個程序開始執行的入口。大家注意看,在寫完main()之后,在下面有兩個花括號,這是C語言中函數寫法的基本
- 要求之一,即在一個函數中,所有的代碼都寫在這個函數的兩個大括號內,每條語句結束后都要加上分號,語句與語言之間可以用空格或回車嗝開。
- 例如:
- void main()
- {
- 總程序從這里開始執行;
- 其他語句;
- .....
- }
- **********************************************************************************************************************************************************************************************/
- void main() //主函數 【正式語句】
- {
- led1=0; //點亮第一個發光二極管 【正式語句】
- /*********************************************************************************************************************************************************************************************
- "led1=0;" 語句,也就是該程序中最核心的語句。在數字電路中,電平只有兩種狀態:高電平- 1;低電平- 0。顯然,該語句的意思是,讓P1囗的最低位清0,由于沒有操作其他口,
- 所以其余口均保持原來狀態不變。
- **********************************************************************************************************************************************************************************************/
- while(1); //【正式語句】
- }
- /*****************************************************************
- 如何讓程序停止在某處呢? 我們用while語句就可以實現。
- 知識點:while()語句
- 格式:while(表達式)
- {內部語句(內部可為空)}
- 特點:先判斷表達式,后執行內部語句。
- 原則:若表達式不是0,即為真,那么執行語句。否則跳出while語句,執行后面的語句。
- 需要注意的三點:
- (1)在C語言中我們一般把"0"認為是"假","非0"認為是"真" ,也就是說,只要不是0就是真,所以1、2、3等都是真。
- (2)內部語句可為空,就是說while后面的大括號里什么都不寫也是可以的,如“while(1){};”中“;” 一定不能少,否則while()會把跟在它后面第一個分號前的語句認為是它的內部語句。
- 例如:while(1)
- P1=123;
- P1=121;
- ....
- 上面這個例子中,while()會把“P1=123;”當做它的語句,即使這條語句并沒有加大括號。既然如此,那么我們以后在寫程序時,如果while()內部只有一條語句,我們就可以省去大括號,而直接將這條語句跟在它的后面。
- 例如:while(1)
- P1=123;
- (3)表達式可以是一個常數、一個運算或一個帶返回值的函數。
- 有了上面的介紹,我們在程序最后加上“while(1)” 這樣一條語句就可以讓程序停止。因為該語句表達式值為1,內部語句為空,執行時先判斷表達式值,因為為真,所以什么也不執行,然后再判斷表達式,仍然為真,又不
- 執行,因為只有當表達式值為0時才可跳出while()語句,所以程序將不停地執行這條語句,也就是說單片機點亮發光管后將永遠重復執行這條語句。
- 單片機是不能停止工作的,只有它有電,有晶振在起振,它就不停止工作,每過一個機器周期,它內部的程序指針就要加1,程序指針就指向下一條要執行的指令。不過我們可以將單片機設置為休眠狀態或掉電模式,這樣可以最大限度地降低它的功耗。
- *****************************************************************/
復制代碼
51hei.png (5.21 KB, 下載次數: 49)
下載附件
2022-4-25 00:36 上傳
Keil代碼與Proteus仿真下載:
自學實例.rar
(68.39 KB, 下載次數: 6)
2022-4-25 00:09 上傳
點擊文件名下載附件
實例 下載積分: 黑幣 -5
|