STC單片機如何實現輸出固定的脈衝個數

2020-12-05 電子發燒友

STC單片機如何實現輸出固定的脈衝個數

21ic 發表於 2019-10-24 15:43:40

實現方法:運用PWM輸出功能輸出一定頻率(F)的脈衝,在一定的時間、以一定的頻率輸出的脈衝個數是確定的。所以根據所要輸出的脈衝個數(PlusCount)可以確定輸出脈衝的時間(TimePlus)。

TimePlus=PlusCount/F;

定時我們採用T0的工作方式3,即自動重裝模式。

EA=1

TMOD=0x02;//自動重裝模式

AUXR = 0x80;//T0 為12T模式

TH0=TL0=256;

void Timer0() interrupt 1

{

TimeCount++;

if(TimeCount==InitCount)

{

CR = TR0=0;//停止T00; // PLUS STOP

TimeCount=0;

}

}

因此,中斷一次的時間(T)為:256us

脈衝輸出方式為:SYSclk/2

因此,F=12M/2/256

所需要中斷的次數(InitCount)為,

InitCount=TimeCount/T

=PlusCount/F/T = PlusCount/12M/2/256/256us = PlusCount/6

原始碼如下:

#include「stc12cxx.h」

#include 「intrins.h」

#define uchar unsigned char

#define uint unsigned int

unsigned long TimeCount=0,InitCount;

void Init()//初始化子程序

{EA=1;

ET0=1;

P1M0 = 0xff;

P1M1 = 0xff; //Set all P1 as Open-Drain mode

TMOD=0x02;//自動重裝模式

AUXR = 0x00;//T0 為12T模式

TH0=TL0=256;

}

void PWM_heat(uchar pwm_num)

{

CCON = 0;

CL = 0;

CH = 0;

//CMOD = 0x00; //SYSclk/12

CMOD = 0x02; //SYSclk/2

//CMOD = 0x04; //T0產生

CCAP0H = CCAP0L = pwm_num; //佔空比

CCAPM0 = 0x42; //脈寬調節模式

}

void PulsOut(unsigned long PulsCount)

{

InitCount =PulsCount/6;//(PulsCount/23435)*4000;

PWM_heat(0x7f);

TR0=CR = 1; //啟動1;//啟動T0

}

void main()

{

Init();

PulsOut(234500);

while (1);

{

}

}

void Timer0() interrupt 1

{

TimeCount++;

if(TimeCount==InitCount)

{

CR = TR0=0;//停止T00; // PLUS STOP

TimeCount=0;

}

}
來源;21ic

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 一文看懂STC單片機冷啟動和復位有什麼區別
    stc單片機的優缺點   stc單片機優點:   1、抗幹擾能力強;   2、保密性能強悍   為什麼STC單片機要冷啟動   stc的程序分引導區和程序區。引導區的代碼主要負責ISP在線燒錄。而stc的冷啟動順序就是先從引導區然後啟動到程序區的。而熱啟動就是普通的51啟動方式,只能從程序區頭部開始重新執行。所以你必須冷啟動。另外STC提供了一個特殊的寄存器地址,通過設置他能通過軟體實現硬復位的功能直接跳轉到引導區。
  • 基於STC系列單片機的SPWM波形實現
    對SPWM的控制有多種實現方法,其一是採用模擬電路、數字電路等硬體電路產生SPWM波形,該方法波形穩定準確,但電路複雜、體積龐大、不能進行自動調節;其二是藉助單片機、DSP等微控制器來實現SPWM的數字控制方法,由於其內部集成了多個控制電路,如PWM電路、可編程計數器陣列(PCA)等,使得這種方法具有控制電路簡單、運行速度快、抗幹擾性強等優點。
  • 如何在KEIL中添加STC單片機
    首先,看一下STC公司的解答:1.把STC單片機,當成Intel的8052/87C52/87C54/87C58,本文引用地址:http://www.eepw.com.cn/article/201611/315906
  • STC單片機的種類與區別介紹
    本文引用地址:http://www.eepw.com.cn/article/201611/318545.htm如 STC,12,C,20,52,ADSTC:出品的公司名12:產品大系列,STC單片機有89、90、10、11、12、15這幾個大系列,每個系列都有自己的特點。89系列是老舊而傳統的單片機,可以和AT89系列完全兼容,是12T單片機。
  • 用STC 單片機設計脈衝發生器,改進線切割工具機高頻電源
    傳統的電火花線切割工具機脈衝電源主控電路利用石英晶體產生控制脈衝信號,其輸出脈寬脈間數字調節範圍較小且調節不穩定等缺點。針對這些缺點,選用STC89C52RC單片機來設計脈衝發生器,以此對其主控電路進行改進。這樣的改進投入極少,並且能夠提高工具機的工作效率和加工質量。高頻脈衝電源是線切割工具機加工專用電源,它的好壞直接關係到工具機的加工質量。
  • 關於STC單片機的幾點建議
    ——定時器和計數器 CPU時序的有關知識振蕩周期:為單片機提供定時信號的振蕩源的周期(晶振周期或外加振蕩周期)狀態周期:2個振蕩周期為1個狀態周期,用S表示。1個機器周期含6個狀態周期,12個振蕩周期。機器周期=1/單片機的時鐘頻率。時鐘頻率:外部時鐘的12分頻。也就是說當外部晶振的頻率輸入到單片機裡面的時候要進行12分頻。比如說你用的是12MHZ的晶振,那麼單片機內部的時鐘頻率就是12/12MHZ,當你使用12MHZ的外部晶振的時候。機器周期=1/1M=1us。指令周期:完成1條指令所佔用的全部時間,它以機器周期為單位。
  • 基於單片機及傳感器的機器人設計與實現
    當檢測器檢測到白色時,其輸出低電平;當檢測到黑色時,則輸出高電平。    為提高檢測精度,採用了多傳感器信息融合技術。設計中,在車頭均勻布置三個光電傳感器,其中,中間一個(Q1)安裝在小車正中央。若兩側某一傳感器檢測到黑線,表明小車正脫離軌道,將3個檢測點的結果融合後作為單片機的輸入,機器人按照單片機P1口信息進行判斷調整,實現路徑跟蹤和自動糾偏[3]。
  • 單片機低頻脈衝發生器的開發及應
    鑑此我們研製成功了採用單片機技術並具有4位數碼顯示、可連續調頻的方波脈衝發生器 。 2 系統設計思想 我們對本單片機低頻脈衝發生器的設計原則是:在保證系統可靠工作、頻率穩定的條件下,力圖減小尺寸、降低成本。
  • 以STC12C5A60S2單片機為系統控制單元的系留飛艇地面監測系統設計
    STC12C5A60S2單片機有4個16 bit定時器,2個全雙工異步串行口,2個外部中斷入口,具有先進的指令集結構,符合系統設計需要,故選擇此款單片機作為艇載模塊的控制單元,實現系統功能。 1.2 旋轉編碼器 本系統採用增量脈衝雙脈衝輸出旋轉編碼器,其供電電壓為5 V,主要技術參數為1 000線/360 ℃(即每轉有1 000個脈衝),其兩路輸出為兩組相位差90 ℃的脈衝,這樣通過這兩組脈衝就可以判斷旋轉方向。其兩相輸出脈衝見圖2。應用電路見圖3。
  • 投幣器的輸出信號脈衝檢測
    為了與不同電平的檢測晶片接口配合,市場上一般普通型的投幣器的輸出信號是一個開集電極的信號, 也就是輸出信號本身是沒有電壓輸出的。需要通過外部接上拉電阻的方式實現。 如圖所示: 外部上拉電源的電壓值決定了外部脈衝信號的電壓高低。4、、投幣器的輸出NO/NC,是什麼意思?如何選擇?
  • STC單片機下載不進程序及解決辦法
    這批板子一共是5塊兒,但其中的三塊我很輕鬆的就把程序下載進去了,只有2個,不管怎麼弄就是不行,蘇工說出現這種情況可能跟單片機本身有關係,特性不是很穩定。自己琢磨了倆小時都沒弄清楚,最後還是蘇工一句話就給解決了,唉!
  • stc單片機IO口輸入輸出方式
    推挽工作方式:LED正負極分別接在兩個IO口上,然後設置正極IO接口為推輓輸出,負極IO接口為標準雙向灌電流輸入。推挽方式具有強上拉能力,可以實現高電平驅動LED。而LPC900系列單片機的I/O口特性有一定的不同,它們可以被配置成4種不同的工作模式:準雙向I/O、推輓輸出、高阻輸入、開漏。
  • 一種基於CPLD的單片機脈衝信號源設計
    單片機產生的脈衝信號源由於是靠軟體實現的,所以輸出頻率及步進受單片機時鐘頻率、指令數和指令執行周期的限制。  MAX7000S是MAX7000系列的增強型,具有高密度,是通過工業標準4引腳JTAG接口實現在線可編程的,在線編程電壓為5V。EPM7128SLC84—10有128個邏輯宏單元,2500個門電路,8個邏輯陣列塊,68個L/O管腳,速度等級為一6(傳輸延遲 6ns),最高時鐘頻率為147.1MHz。整個信號產生及數碼顯示控制電路(不包括驅動)集成在一片中。
  • 單片機實現步進電機控制系統設計的方法
    步進電機是數字控制電機,將脈衝信號轉換成角位移,電機的轉速、停止的位置取決於脈衝信號的頻率和脈衝數,而不受負載變化的影響,非超載狀態下,根據上述線性關係,再加上步進電機只有周期性誤差而無累積誤差,因此步進電機適用於單片機控制。步進電機通過輸入脈衝信號進行控制,即電機的總轉動角度由輸入脈衝總數決定,而電機的轉速由脈衝信號頻率決定。步進電機的驅動電路是根據單片機產生的控制信號進行工作。
  • 51單片機測變周期脈衝信號的簡便方法
    脈衝信號是工程中一類較常見的信號,如光電位移、速度、轉速等傳感器輸出的信號,而脈衝寬度和脈衝周期是其基本參數,往往需對它們進行測量。
  • 單片機控制步進電機的原理
    步進電機區別於其他控制電機的最大特點是,它是通過輸入脈衝信號來進行控制的,即電機的總轉動角度由輸入脈衝數決定,而電機的轉速由脈衝信號頻率決定。它具有高精度的定位、位置及速度控制、具定位保持力、動作靈敏、開迴路控制不必依賴傳感器定位、中低速時具備高轉矩、高信賴性、小型、高功率等特徵,使其具有廣泛的應用。
  • 用單片機和CPLD實現步進電機的控制
    單片機可以專注於處理輸入信號與輸出信息之間的轉換等複雜的算法.不必佔用過多的CPU資源去直接控制電機,也減小了由此引入幹擾的可能性;CPLD只需把單片機傳送過來的信息轉換成電機的控制信號。這樣就發揮了單片機和CPLD兩者的優點。
  • 基於單片機與旋轉編碼器的閉環線速度控制系統
    1 000個脈衝。因此,根據在一定時間內檢測到的脈衝數,就可以計算出電纜的走線速度。實際應用中,將其與一加工精度極高、周長為500 mm的旋轉編碼器測量主動輪與旋轉編碼器同軸安裝,主動輪與電纜接觸。在電纜生產運動過程中,依靠摩擦力拉動測量輪旋轉,這樣就把電纜的直線位移(長度)轉化為旋轉編碼器的脈衝數位訊號輸出。
  • 如何利用MCS-51單片機對周期波頻率進行測量
    本文介紹了用目前應用比較廣泛的MCS-51系列單片機對周期波頻率進行測量,並通過LED以數字形式直觀地示出頻率,實現測量的智能化,省去間接對頻率計算的麻煩與錯誤。文章對其測量原理,設計和實現作了說明,介紹了主要程序,並進行了誤差分析。 目前單片機廣泛應用到國民經濟建設和日常生活的許多領域,成為測控技術現代化不可缺少的重要工具。
  • 基於51單片機控制的數字氣壓計設計與實現
    其中氣壓傳感器用來將被測氣壓轉換為電壓信號;用V/F轉換器則可把氣壓傳感器輸出的電壓信號轉換成具有一定頻率的脈衝信號;以便用單片機接收該脈衝信號,並根據單位時間內得到的脈衝數,依據電壓與頻率的線性關係式計算出所對應的氣壓值,最後在單片機控制下由LED顯示出來。