串行口的4種工作方式中的方式0是移位寄存器工作方式,主要用于擴展并行I/O用,并不用于串行通信。串行口的方式1~3是用于串行通信的,下面介紹串行口的方式1~3的雙機串行通信軟件編程。應(yīng)當(dāng)說明的
1.實現(xiàn)實時時鐘的基本思想 時鐘的最小計時單位是秒,如何獲得1s的定時時間呢?使用定時器方式1,最大的定時時間也只能達到131 ms??蓪⒍〞r器的定時時間定為100 ms,采用中斷方式進行溢出次
方式3下的T0和Tl大不相同。T0工作在方式3時,TL0和TH0被分成兩個獨立的8位定時器/計數(shù)器。其中,TL0可作為8位的定時器/計數(shù)器,而TH0只能作為8位的定時器。此時T1只能工作在方式0、1或2?! ?/p>
方式2是一個可以自動重新裝載初值的8位計數(shù)器/定時器。這種工作方式可以省去用戶程序中重新裝入初值的指令。 當(dāng)AT89S51的某個定時器/計數(shù)器不使用時,可為AT89S51擴展一個負跳沿觸發(fā)的外部
AT89S51單片機的定時器/計數(shù)器結(jié)構(gòu)如下圖所示,定時器/計數(shù)器T0由特殊功能寄存器TH0、TL0構(gòu)成,定時器/計數(shù)器Tl由特殊功能寄存器TH1、TL1構(gòu)成。 兩個定時器/計數(shù)器都具有定時器和計數(shù)器
AT89S51為用戶提供兩個外部中斷請求輸入端INT0(的反)和INT1(的反),實際的應(yīng)用系統(tǒng)中,兩個外部中斷請求源往往不夠用,需對外部中斷源進行擴充。下面介紹一種擴充外部中斷源的方法。 如
中斷系統(tǒng)的運行必須與中斷服務(wù)子程序配合才能正確使用。設(shè)計中斷服務(wù)子程序需要首先明確以下幾個問題?! ≈袛喾?wù)子程序設(shè)計的任務(wù) 中斷服務(wù)子程序設(shè)計的基本任務(wù)有下列4條:
某個中斷請求被響應(yīng)后,就存在著一個中斷請求的撤銷問題。下面接中斷請求源的類型分別說明中斷請求的撤銷方法?! ?.定時器/計數(shù)器中斷請求的撤銷 定時器/計數(shù)器中斷的中斷請求被響
實現(xiàn)中斷允許控制和中斷優(yōu)先級控制分別由特殊功能寄存器區(qū)中的中斷允許寄存器IE和中斷優(yōu)先級寄存器IP來實現(xiàn)的。下面介紹這兩個特殊功能寄存器?! ≈袛嘣试S寄存器IE AT89S51的CPU對各中
分支轉(zhuǎn)移程序的特點是程序中含有轉(zhuǎn)移指令,轉(zhuǎn)移指令又分為無條件轉(zhuǎn)移和有條件轉(zhuǎn)移,因此分支程序也可分為無條件分支轉(zhuǎn)移程序和有條件分支轉(zhuǎn)移程序。無條件分支轉(zhuǎn)移程序很簡單,這里不再討論。有條件
數(shù)據(jù)排序就是將一批數(shù)由小到大(升序)排列,或由大到小(降序)排列。下面介紹無符號數(shù)據(jù)升序排序程序設(shè)計。 最常用的數(shù)據(jù)排序算法是冒泡法。冒泡法是相鄰數(shù)互換的排序方法,因其過程類似水
數(shù)據(jù)極值查找就是在指定的數(shù)據(jù)區(qū)中找出最大值(或最小值)。 極值查找操作的主要內(nèi)容是進行數(shù)值大小的比較,從這批數(shù)據(jù)中找出最大值(或最小值)并存于某一單元中?! ?片內(nèi)RAM中存放一
關(guān)鍵字查找實際就是在表中查找關(guān)鍵字的操作,也稱為數(shù)據(jù)檢索。數(shù)據(jù)檢索有兩種方法,即順序檢索和對分檢索?! ?.順序檢索 如果要檢索的表是無序的,檢索時只能從第1項開始逐項順序查找
許多應(yīng)用系統(tǒng)中都需要進行程序代碼升級,如果程序代碼在外部Flash存儲器中,實現(xiàn)程序代碼升級可以對外部Flash直接操作。但對于在單片機內(nèi)部的一些系統(tǒng)程序代碼,就要求此單片機支持IAP(In-ApplICati
在實際的程序設(shè)計中,常常將那些需多次應(yīng)用的、完成相同的某種基本運算或操作的程序段從整個程序中獨立出來,單獨編成一個程序段,需要時通過子程序調(diào)用指令進行調(diào)用。這樣的程序段稱為子程序?! ?/p>