51單片機特殊功能寄存器(SFR)介紹
圖5 C語言編程中需撐握的15個寄存器
這15寄存器中,根據(jù)前面講的51單片機內(nèi)部四大功能模塊又可分為四大部分:
I/O口相關(guān):P1 P2 P3 P4
中斷相關(guān):IP IE
定時器相關(guān):TMOD TCON TL0、TH0、TL1、TH1
串口通信相關(guān):PCON SBUF
注意:
在這四大部分中,除I/O口操作相關(guān)P1 P2 P3 P4相對獨立外,其它11個寄存器使用時通常會相互結(jié)合使用,也就是說中斷、定時器和串口通信三者通常會結(jié)合起來用,如外部中斷時,設(shè)置邊沿觸發(fā)還是電平觸發(fā)需設(shè)置TCON寄存器中的TR0和TR1位,使用定時器時又可能用到中斷,而串口通信時設(shè)置波特率又直接跟定時器相關(guān)。
總之51單片機其實最難的就是對除I/O口外的11個寄存器的操作,但難歸難,但畢竟只有11個,只要肯定花功夫和時間,多寫寫程序,多調(diào)試,一定可以學(xué)得好,現(xiàn)在我也記不到,每次遇到時總得去查相關(guān)的書籍,而且感覺腦對這一塊還是很亂,再看哈書,看后面能不能總結(jié)出好的方法來。
4、參考例程
下面附出中斷、定時器及串口通信的三個例子,供大家參考:
前面講到過,51單片機內(nèi)部共有21個特殊功能寄存器,如下圖所示。如果用C語言進行編程時只需考慮15個寄存器,這15個寄存器按單片機內(nèi)部功能模塊以可分成四大類,分別為:
I/O口操作相關(guān):P1 P2 P3 P4
中斷相關(guān):IP IE
定時器相關(guān):TMOD TCON TL0、TH0、TL1、TH1
串口通信相關(guān):SCONPCON SBUF
這15個寄存器中,P1 P2 P3 P4 TL0 TH0 TL1 TH1 SBUF這9個操作相對簡單,而PCON為電源控制寄存器,平時只有在串口通信編程中會用到最高位SMOD,當(dāng)SMOD=1,波特率會倍增,所以對這個寄存器只需要考慮這點就可以了,而對于IP寄存器為中斷優(yōu)先寄存器,對于單片機初學(xué)者基本上用不到,這里先不作介紹。
剩下的就只有IE、TCON、SCON和TMOD4個寄存器了,如圖1中綠色圓圈的四個,分別為中斷允許寄存器(IE),定時器控制寄存器(TCON),定時器模式及工作方式寄存器(TMOD),串行口控制寄存器(SCON)。4個寄存器相對來說較難記住,下面分別對這4個寄存器及每一位進行說明。
評論