① stc8h單片機如何設置pwm頻率
首先,STC8H不需要外部晶振和外部復位,也可以外接。它的時鍾4M-36M。和其它stc晶元的區別是它的運行速度夠快,8路16位的高級pwm定時器,4路可以輸出互補的脈沖信號,在用這個晶元的時候我發現手冊上有些地方講的不是太清楚,對照了32的手冊才明白了原理,今天著重說一下高級定時器的那部分。
STC8H 系列的單片機內部集成了 8 通道 16 位高級 PWM 定時器,分成兩組周期可不同的 PWM,分別命名為 PWMA 和 PWMB可分別單獨設置。第一組 PWM/PWMA 可配置成 4 組互補/對稱/死區控制的 PWM 或捕捉外部信號,第二組 PWM/PWMB 可配置成 4 路 PWM 輸出或捕捉外部信號。
pwmA可配置成輸出比較,輸入捕獲以及pwm模式,pwm有邊沿對齊以及中間對齊模式,可直接驅動一些小型的電機,在驅動一些小型的電機時一定要將相應的io口配成推挽輸出在,不然驅動不起來,具體的原理就不寫了,主要說一下主要寄存器以及主要模式的配置。
選擇計數器時鍾(內部、外部或者預分頻器(PSCR)),我用的都是內部。
預分頻器看你想要輸出的頻率范圍自己設置
2. 將相應的數據寫入 PWMA_ARR(設頻率) 和 PWMA_CCRi (設占空比)寄存器中。頻率=時鍾/(PSCR+1)/(ARR+1)
3. 如果要產生一個中斷請求,設置 CCiIE 位,在中斷判斷SR1狀態位,PWMA和PWMB不是一個中斷號。
4. 選擇輸出模式步驟:
1. 設置 OCiM=011,在計數器與 CCRi 匹配時翻轉 OCiM 管腳的輸出
2. 設置 OCiPE = 0,禁用預裝載寄存器
3. 設置 CCiP = 0,選擇高電平為有效電平,開始輸出高電平。
4. 設置 CCiE = 1,使能輸出
5. 設置 PWMA_CR1 寄存器的 CEN 位來啟動計數器。
輸入捕獲配置:
先設置PSCR,根據你的所測頻率范圍來設數據。設ARR一般為最大值
1.選擇有效輸入端,設置 PWMA_CCMR1 寄存器中的 CC1S=01,此時通道被配置為輸入,並且PWMA_CCR1 寄存器變為只讀。
2. 根據輸入信號 TIi 的特點,可通過配置 PWMA_CCMR1 寄存器中的 IC1F 位來設置相應的輸入濾波器的濾波時間。假設輸入信號在最多 5 個時鍾周期的時間內抖動,我們須配置濾波器的帶寬長於 5 個時鍾周期;因此我們可以連續采樣 8 次,以確認在 TI1 上一次真實的邊沿變換,即在PWMA_CCMR1 寄存器中寫入 IC1F=0011,此時,只有連續采樣到 8 個相同的 TI1 信號,信號才為有效(采樣頻率為 fMASTER)。
3. 選擇 TI1 通道的有效轉換邊沿,在 PWMA_CCER1 寄存器中寫入 CC1P=0(上升沿)。
4. 配置輸入預分頻器。在本例中,我們希望捕獲發生在每一個有效的電平轉換時刻,因此預分頻器被禁止(寫 PWMA_CCMR1 寄存器的 IC1PS=00)。
5. 設置 PWMA_CCER1 寄存器的 CC1E=1,允許捕獲計數器的值到捕獲寄存器中。
6. 如果需要,通過設置
PWMA_IER 寄存器中的 CC1IE 位允許相關中斷請求。
7.使能計數器設置 PWMA_CR1 寄存器的 CEN 位來啟動計數器。
② 學單片機用多大帶寬的示波器合適
如果是學習單片機,示波器遠遠不能滿足需要的,最好購置一台邏輯分析儀,如果是學習51系列等8位的,個人認為,50M以下16、25通道足夠使用,也可以考慮購置虛擬的USB介面的邏輯分析儀。
③ 有誰把TCP IP協議應用於51單片機通信中嗎,能不能給點經驗
單片機80C51+乙太網控制器RTL8019構成的乙太網節點,其中微處理器是使用80C51內核的P89C60負責RTL8019AS初始化及通過控制RTL8019AS實現網路協議,進行數據的接收和發送等通信任務。RTL8019AS是台灣REALTEK公司生產的一種兼容NE2000的ISA匯流排乙太網控制晶元。其主要特點如下:
該晶元符IEEE802.3 10BaseT標准。
網路傳輸速率為10Mbit/sec,支持CSMA/CD傳輸協議。
自動奇偶檢測及糾錯。
支持即插即用(PnP),非即插即用(Non-PnP),可通過軟體進行設置,並能夠設置中斷,輸入輸出地址等網路參數。
支持兩種介面類型,並能自動偵測介質類型,BNC口用於連接同軸電纜,RJ45口用於非屏蔽雙絞線。
支持全雙工模式。
選取用RTL8019AS的原因:它是一種NE2000類型的兼容網卡晶元,與其它網路晶元如DM9008,DP839011A等兼容,軟體移植性好;與51單片機介面簡單,不用轉換晶元如PCI-ISA橋;價格低、貨源好;相對51單片機而言RTL8019AS的帶寬充裕。
其中,RTL8019AS的數據線SD0~SD7與80C51的AD0~AD7(P0口)相連,地址線A0~A4與80C51的A0~A4(P0口鎖存後的信號)連接。讀寫信號經16V8產生,RTL8019AS的基地址為0x5000。按照上圖電路連接後,當訪問地址的范圍為0x5000~0x501F時,80C51實現對RTL8019AS讀寫操作。
RTL8019AS支持3種工作方式:
1) 即插即用方式,I/O地址和中斷都由操作系統管理,用戶不必過多干預,當然這種方式要耗費系統資源多一些;
2) 跳線方式,網卡的I/O地址和中斷都由跳線決定;
3) 免跳線方式,網卡的I/O和中斷由外接的E2PROM 93C46中的內容決定。
在這三種方式里,我們的設計使用第二種跳線工作方式。第一種方式對於51系列單片機來說無法實現。未用第三種又可以省掉一片93C46晶元,不但減少了連線,而且降低了成本。
RTL8019AS的引腳懸空時輸入狀態為低電平,因為晶元引腳內部已經接了一個100K的下拉電阻。
I/O地址:RTL8019AS的第65腳JP決定網卡的工作方式,本設計中JP腳接高電平(VCC),即使用跳線方式。此時,RTL8019AS的I/O地址由引腳85,84,82,81(IOS3..IOS0)決定,本設計中因為IOS3..IOS0都是懸空,選擇的基地址為0300H。基地址的確定詳見RTL8019AS的數據手冊。
中斷:晶元的中斷由引腳80,79,78(IRQS2..IRQS0)決定。全部懸空時,選擇IRQ0。考慮到單片機的資源比較緊張,我們的單片機程序設計中沒有使用中斷方式而使用的查詢方式。
網路介面類型:由74,77(PL0,PL1)引腳決定,使用自動檢測。設計中64腳AUI懸空,使用RJ45介面。
BROM:設計中未用BROM,引腳72,71,69,68,67(BS4..BS0)懸空即可。
匯流排模式:RTL8019AS的IOCS16B引腳通過一個27K的電阻拉低,使得RTL8019AS工作在8位數據匯流排的模式。
詳細電路請參考網上資料。