51單片機(jī)入門(mén)教程-2020版 程序全程純手打 從零開(kāi)始入門(mén)

P4--點(diǎn)亮一個(gè)LED燈
1)通過(guò)PCB原理圖可以知道控制LED燈亮滅的是P2口的,并且接入+VCC5V即高電平1,LED燈要那個(gè)亮的話那個(gè)線,P2端要設(shè)置為0,不亮就設(shè)置為1,有電勢(shì)差,即有電流流過(guò)燈亮;
2)P2=1111 1110,即第一個(gè)燈亮其他燈不亮,但是我們讀取是從下面的,所有不是(P2=0111 1111)這樣寫(xiě);
3)用到P2口,所有要導(dǎo)入頭文件#....鼠標(biāo)右鍵點(diǎn)擊就可以加進(jìn)來(lái);
4)不能識(shí)別 P2=1111 1110這樣的類(lèi)型,所有將它轉(zhuǎn)為16進(jìn)制,開(kāi)頭用0x表示16進(jìn)制的數(shù)
P2=0xFE ; //1111 1110 轉(zhuǎn)換可以網(wǎng)上搜索,計(jì)算器也可以直接算;
5)一個(gè)亮一個(gè)滅P2=0x55; //0101 0101

P5---一個(gè)LED燈亮滅交替
1)用STC可以生成延遲函數(shù):根據(jù)晶振改系統(tǒng)頻率,還有其他信息;
2)復(fù)制生成代碼到主函數(shù)上面,如下圖代碼:(void:無(wú)返回值,這里()可以設(shè)置參數(shù));while、do...while都表示循環(huán);

3)_nop_(),表示空語(yǔ)句,什么都不做,這個(gè)函數(shù)要加頭文件如下:

4)要在主函數(shù),及程序入口調(diào)用才可以實(shí)現(xiàn)延遲:如下

P6--流水燈---->1)-3)即可實(shí)現(xiàn),4)后面為-->優(yōu)化
1)將P5延遲的代碼復(fù)制過(guò)來(lái);
2)在main函數(shù)里面控制P2口燈的亮滅,代碼如下,如上圖放在while循環(huán)里面;

3)下載到板子上測(cè)試即可
4)生成延遲1秒函數(shù),復(fù)制到main()函數(shù)前面


5)修改生成的延遲函數(shù),可設(shè)置控制延時(shí)時(shí)間

6)主函數(shù)修改延時(shí)加參數(shù)就可以了

P7------獨(dú)立按鍵---------


1)(上圖)一端接GND,另一端接IO口,單片機(jī)上電,所有io口默認(rèn)都是高電平,沒(méi)按下高電平,按下低電平;

2)把上面的頭文件加上X就可以單獨(dú)設(shè)置:

3)如下,單獨(dú)設(shè)置:

4)K1接P3_1(看芯片網(wǎng)絡(luò)標(biāo)號(hào)RXD對(duì)應(yīng)的引腳)上得到對(duì)應(yīng)連接:


5)按下亮松開(kāi)滅第一個(gè),P3_1是控制開(kāi)關(guān)的,P2_0控制燈;

p8---------獨(dú)立按鍵控制LED燈狀態(tài)

1)消除抖動(dòng)的方法,延時(shí)代碼生成:

2)粘貼到main函數(shù)上方,修改延時(shí)代碼如下:

3)實(shí)現(xiàn)一個(gè)LED燈亮滅未用按鍵:

4)監(jiān)測(cè)按下按鍵是否松手,一直按著要一直監(jiān)測(cè),松手了才操作,像鼠標(biāo)點(diǎn)擊關(guān)閉瀏覽器,點(diǎn)到X的位置,不松還沒(méi)關(guān)閉,松手了才關(guān)閉:(28行代碼取反的意思,原來(lái)亮,取反就是不亮)

p9----延遲函數(shù)同P8 獨(dú)立按鍵控制LED------
1)通過(guò)工具,生成延時(shí)函數(shù),復(fù)制到mian.c文件

2)修改延時(shí)函數(shù),將延時(shí)設(shè)置為可改變的,帶參數(shù)函數(shù);

3)主函數(shù)調(diào)用延時(shí)函數(shù),實(shí)現(xiàn)LED燈亮滅,P3_1為控制按鈕,P2控制燈亮滅,LEDNum控制移動(dòng):

P10----代碼---延遲同P9
1)把前面的延遲函數(shù)復(fù)制過(guò)來(lái),延遲函數(shù)放在main函數(shù)前面,也可以放到后面,如果放到后面要把下面選中的藍(lán)色部分復(fù)制到到現(xiàn)在的位置加分號(hào)“;”:

2)延時(shí)函數(shù)在后面時(shí),代碼如下,要在前面聲明:

3)位移的情況,下面是左移<<

4)左移操作實(shí)現(xiàn):

5)板上的操作實(shí)現(xiàn),只控制第一個(gè)按鈕,按其他沒(méi)用,燈往箭頭方向移動(dòng):

6)實(shí)現(xiàn)右移操作(看行數(shù),接5)代碼):

P11 ----靜態(tài)數(shù)碼管顯示------
1)常見(jiàn)數(shù)碼管使用

2)板中數(shù)碼管,可控制顯示各個(gè)位置顯示不同數(shù)字

3)控制數(shù)碼管顯示的原理圖


4)管腳定義(對(duì)應(yīng)字母控制對(duì)應(yīng)位置亮):上面的為共陰極、下面的為共陽(yáng)極(可以理解為3,8管腳處為供電,三角形尖尖有一橫的是負(fù)極,所有共陰極),兩個(gè)圖中的數(shù)字為引腳:

5)用共陰極(因?yàn)楣碴帢O所有3、8號(hào)公共端要接地,即為0)連接顯示數(shù)字6的操作,有電勢(shì)差即有電流流過(guò)燈才會(huì)亮,所有下面的1為亮,0不亮:(位選:10111110:顯示6)

6)共陽(yáng)極,接VCC為1,下面的為0才亮,有電流流過(guò),有電勢(shì)差燈才亮:

7)下面為多個(gè)數(shù)碼管,PCB板的4個(gè)為一體,同樣上面為共陰極、下面為共陽(yáng)極的原理圖:


8)共陰極,那么我們公共端(12、9、8、6)接地給0才會(huì)亮,及可以控制第幾個(gè)亮;顯示的數(shù)字則通過(guò)下面(11、7、4、2、1、10、5、3即對(duì)應(yīng)字母ABCDEFG)控制,給1才亮,給0不亮(電勢(shì)差);下圖顯示結(jié)果:第三亮,顯示數(shù)字1:(共引腳,其他亮的話數(shù)字也一樣)

9)原理圖是共陰極(上面給0、下給1亮)

10)上圖完整版:

11)輸入3(ABC,讀的時(shí)候是從下讀 C B A )個(gè)口,控制輸出8個(gè)口,輸出口連接共陰極的,是0還是1,在這里控制:使能端連接(按下圖給1和0就可以用了)

12)通過(guò)CBA給數(shù)字0和1二進(jìn)制轉(zhuǎn)換10進(jìn)制(得到數(shù)字幾)就控制Y幾,Y0頭上“—”是表示低電平有效(即給0):

13)雙向緩沖,高電平往低電平送數(shù)據(jù)

14)CC2電容作用:濾波電容,穩(wěn)定電源,確定電路穩(wěn)定性,提高電路工作性能可靠運(yùn)行;
RP4:排阻,限流,防止電流過(guò)大

15)這里的P01......P07,就是用P0口,后面代碼就是通過(guò)P0口控制燈的

16)只有Y5為0,其他Y0...Y7都為1;

17)讀取順序都是從下到上

18)代碼控制公共端,從下往上寫(xiě):

19)二進(jìn)制101轉(zhuǎn)換為1十進(jìn)制為5,控制Y5,即公共端的LED6;

20)要顯示下圖的數(shù)字6

21)代碼實(shí)現(xiàn)如下(P2控制共陰極,P0控制顯示數(shù)字)及結(jié)果;


22)要顯示的數(shù)字對(duì)應(yīng)的值

23)優(yōu)化操作代碼,代碼第三行如上表內(nèi)容,下面//8表示第一個(gè)燈Y7即LED8,在最左邊那個(gè)

24)函數(shù)調(diào)用(前面參數(shù)為顯示位置,后面為顯示數(shù)字),接上面代碼:

P12---動(dòng)態(tài)數(shù)碼管顯示-----
1)將P11代碼復(fù)制粘貼到這里項(xiàng)目;
2)生成延遲函數(shù)復(fù)制過(guò)來(lái),修改一下:


3)動(dòng)態(tài)顯示,放循環(huán)里面

4)注釋掉上面的延時(shí)調(diào)用,旁邊的管會(huì)有些影響,需要消影,段選、位選影響造成串位,如下代碼消除;

5)了解

P13--模塊化編程----

1)驅(qū)動(dòng),先會(huì)用,后續(xù)有詳細(xì)內(nèi)容:

2)模塊化,功能函數(shù)用點(diǎn)C文件寫(xiě),點(diǎn)H文件聲明函數(shù),在main函數(shù)文件引入頭文件直接調(diào)用:

3)注意事項(xiàng)

4)預(yù)編譯

5)寫(xiě)代碼
6)延時(shí)函數(shù)文件

7)頭文件延遲

8)主函數(shù)文件程序入口:

9)數(shù)碼管模塊,用到的頭文件要引用:

10)數(shù)碼管模塊頭文件

11)函數(shù)調(diào)用

12)顯示

P14--LCD1602調(diào)試工具-------

1)調(diào)試工具原理圖

2)模塊化代碼,可以自己去下(我沒(méi)有板不下),下完放到自己工程目錄下:

3)將下好的兩個(gè)文件添加到工程:

4)文件主要內(nèi)容如下:

5)main函數(shù)調(diào)用:

6)顯示其他管腳沖突,所有會(huì)一起顯示:

7)其他函數(shù)的調(diào)用及功能,可以設(shè)置顯示位置和范圍:

8)需要用到延遲函數(shù):可以直接將前面模塊化文件復(fù)制到工程目錄下,添加進(jìn)來(lái)引用即可;
P15---矩陣按鍵-----

掃描矩陣按鍵代碼





P16,其他代碼同上

P17定時(shí)器
