資源描述:
《基于C語(yǔ)言的單片機(jī)應(yīng)用2(續(xù)2)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、第二次課(續(xù))AT89S52單片機(jī)硬件結(jié)構(gòu)文件結(jié)構(gòu)、數(shù)據(jù)的類型C51數(shù)據(jù)類型的取值范圍NanjingcollegeofinformationTechnology數(shù)據(jù)類型長(zhǎng)度(bit)長(zhǎng)度(byte)值域bit110,1unsignedchar810~255signedchar81–128~127unsignedint1620~65535signedint162–32768~32767unsignedlong3240~4294967295signedlong324–2147483648~2147483647float324±1.176E–38~±3.40E+38(6位數(shù)字)數(shù)
2、據(jù)類型的選用由于51系列是8位機(jī),它只能直接處理8位無(wú)符號(hào)數(shù)的運(yùn)算,單片機(jī)C語(yǔ)言編程和程序存儲(chǔ)器資源結(jié)合起來(lái),只有bit和char等數(shù)據(jù)類型是是機(jī)器語(yǔ)言直接支持的數(shù)據(jù)類型,用此類數(shù)據(jù)類型的語(yǔ)句所生成的代碼較短;而其它的數(shù)據(jù)類型如整型、浮點(diǎn)型等數(shù)據(jù)要有一定的內(nèi)部程序或內(nèi)部函數(shù)的支持,相對(duì)來(lái)說(shuō)用該類數(shù)據(jù)類型的語(yǔ)句生成的代碼要長(zhǎng)。因此我們應(yīng)盡可能地使用bit,char等機(jī)器語(yǔ)言直接支持的數(shù)據(jù)類型.在程序設(shè)計(jì)中,都盡量采用無(wú)符號(hào)數(shù)以提高運(yùn)算速度,以此避免進(jìn)行多余運(yùn)算。在運(yùn)算時(shí),可以進(jìn)行定點(diǎn)運(yùn)算的盡量進(jìn)行定點(diǎn)運(yùn)算,避免進(jìn)行浮點(diǎn)運(yùn)算。如*2或/2,就可以使用移位操作來(lái)代替除法運(yùn)算。這樣
3、不僅可以減少代碼量,同時(shí),還能大大提高程序執(zhí)行效率,變量類型的選用實(shí)例三請(qǐng)改正下列程序中的錯(cuò)誤#definepi=3.1415926;Main(){inta=b=v=5,d;charch=‘a(chǎn)’;floatenum,pi;d=a+1=b;}一、C51數(shù)據(jù)的存儲(chǔ)類型與存儲(chǔ)器模式C51是面向51系列單片機(jī)及其硬件控制系統(tǒng)的開(kāi)發(fā)語(yǔ)言,它定義的任何變量必須定位在單片機(jī)的某一個(gè)區(qū)域中,否則便沒(méi)有意義。存儲(chǔ)器程序存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的尋址空間是分開(kāi)的,屬于哈佛存儲(chǔ)結(jié)構(gòu)。片內(nèi)存儲(chǔ)器片外存儲(chǔ)器片內(nèi)存儲(chǔ)器片外存儲(chǔ)器四個(gè)物理上獨(dú)立的空間(一)MCS-51的存儲(chǔ)器(一)MCS-
4、51的存儲(chǔ)器存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器RAM程序存儲(chǔ)器ROM,4KB/8KB(8051/52)通用存儲(chǔ)器RAM,128B/256B(8051/52)特殊功能寄存器,21/26個(gè)(8051/52)存放運(yùn)算中間或臨時(shí)數(shù)據(jù)等可擴(kuò)展至64KB專用寄存器每個(gè)不得隨便定義用途,如累加器A,定時(shí)器/計(jì)數(shù)器等。不能擴(kuò)展存放用戶程序、常數(shù)及表格等??蓴U(kuò)展至64KB1、數(shù)據(jù)存儲(chǔ)器配置數(shù)據(jù)存儲(chǔ)器配置圖數(shù)據(jù)存儲(chǔ)器用于存放運(yùn)算的中間結(jié)果、數(shù)據(jù)暫存及數(shù)據(jù)緩沖等。數(shù)據(jù)存儲(chǔ)器RAM也包括:一個(gè)片內(nèi)數(shù)據(jù)存儲(chǔ)器和一個(gè)片外數(shù)據(jù)存儲(chǔ)器可尋址空間。片內(nèi)數(shù)據(jù)存儲(chǔ)器工作寄存器區(qū)(00H-1FH)位尋址區(qū)(20H-2FH)通用區(qū)(
5、30H-7FH)特殊功能寄存器區(qū)(80H-FFH)通用區(qū)(80H-FFH):直接尋址間接尋址直接尋址和間接尋址僅52子系列有位尋址區(qū)位地址分配表2、片外數(shù)據(jù)存儲(chǔ)器片外數(shù)據(jù)存儲(chǔ)器可尋址空間是指MCS-51單片機(jī)對(duì)片外擴(kuò)展數(shù)據(jù)存儲(chǔ)器的最大尋址能力。51單片機(jī)是64KB。片外擴(kuò)展的數(shù)據(jù)存儲(chǔ)器與片內(nèi)數(shù)據(jù)存儲(chǔ)器不是統(tǒng)一編址的,邏輯上、物理都是獨(dú)立的兩個(gè)空間。3、專用寄存器(SFR)特殊功能寄存器的地址離散的分布在80H~FFH的空間中。MCS-51系列單片機(jī)有21個(gè)可字節(jié)尋址特殊功能寄存器。52子系列比51子系列多了一個(gè)定時(shí)器/計(jì)數(shù)器T2,增加了5個(gè)特殊功能寄存器。符號(hào)名稱地址ACC
6、累加器0E0HBB寄存器0F0HPSW程序狀態(tài)字0D0HSP堆棧指針81HDPTR數(shù)據(jù)指針(包括高位DPH和低位DPL)83H(高位)82H(低位)P0P0口鎖存寄存器80HP1P1口鎖存寄存器90HP2P2口鎖存寄存器0A0HP3P3口鎖存寄存器0B0HIP中斷優(yōu)先級(jí)控制寄存器0B8HIE中斷允許控制寄存器0A8HTMOD定時(shí)/計(jì)數(shù)器工作方式、狀態(tài)寄存器89HT2CON*定時(shí)/計(jì)數(shù)器2控制寄存器0C8HTCON定時(shí)/計(jì)數(shù)器控制寄存器88H符號(hào)名稱地址TH0定時(shí)/計(jì)數(shù)器0(高字節(jié))8CHTL0定時(shí)/計(jì)數(shù)器0(低字節(jié))8AHTH1定時(shí)/計(jì)數(shù)器1(高字節(jié))8DHTL1定時(shí)/計(jì)數(shù)
7、器1(低字節(jié))8BHTH2*定時(shí)/計(jì)數(shù)器2(高字節(jié))0CDHTL2*定時(shí)/計(jì)數(shù)器2(低字節(jié))0CCHRCAP2H*定時(shí)/計(jì)數(shù)器2記錄寄存器(高字節(jié))0CBHRCAP2L*定時(shí)/計(jì)數(shù)器2記錄寄存器(低字節(jié))0CAHSCON串行口控制寄存器98HSBUF串行數(shù)據(jù)緩沖器99HPCON電源控制寄存器97H這些特殊功能寄存器,可以以字節(jié)尋址,部分也可以位尋址??晌粚ぶ返募拇嫫?,是該寄存器的地址是8的整倍數(shù)。有11個(gè)可位尋址寄存器等。在位尋址時(shí),某特殊功能寄存器的字節(jié)地址,就是該特殊功能寄存器最低位(D0)的位地址,其它位地址