『壹』 如何用c語言編寫一段方波,頻率為1M。
如果是模擬出來的話,頻率是1Mhz,首先你要有一個1Mx2的定時,這個2Mhz的定時每次計數到達的時候將對應的io口翻轉,頻率為1M周期為1us的方波就出來了。
大部分單片機都有pwm功能直接配置寄存器使能就可以輸出對應的頻率方波。
『貳』 用c語言實現在p1.0和p1.1 5khz方波輸出及1khz占空比為百分之十的矩形波輸出
/*用keil3與proteus7.4聯調,自己下載後開啟聯調設置,在proteus中畫個最小單片機系統,再用單片機連接keil的編譯文件.HEX即可。假設時鍾頻率12MHz,執行一條語句所用時間1us,2kHz為500us,即定時器頻率定時500us,如果用T0,則初值為TH0=0x1f,TL0=0x40;占空比7:10,脈沖寬度350us,用T1,初值TH1=0x15,TL1=0xe0。*/
#include<reg51.h>
sbit OUTW=P1^0;
void init()
{
EA=1;
TMOD=0x11;
ET0=1;
ET1=1;
TR0=1;
TR1=0;
OUTFW=0;
}
void main()
{
init();
while(1);
}
void timer0 interrupt 1
{
TH0=0x1f;
TL0=0x40;
TH1=0x15;
TL1=0xe0;
OUTW=1;
TR1=1;
}
void timer1 interrupt 3
{
OUTW=0;
TR1=0;
}
//注意:調頻就是在IO變數在不同的時間置1,調寬就是在不同的時間置0
『叄』 求助C51測頻率C語言程序一個,輸入為5v的占空比近似50%的方波(2000hz-8000hz),求出其頻率。
單片機可以輸出很多組不同占空比的方波。前提是頻率不要超過單片機的速度。如果要輸出幾組不同占空比,找出最大公約數,設置為 T0,每次中斷進行累加,輸出不同頻率和占空比的波形,如果頻率不高的話,每個管腳都可以輸出一個方波,這只是理論上的,還要看你的具體要求
『肆』 用c語言編程++由P0.0輸出方波信號,周期200us,由定時器1控制,用示波器測試波形的周期和頻率
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
sbit LED=P0^0; //定義LED埠
/*------------------------------------------------ 定時器初始化子程序------------------------------------------------*/void Init_Timer1(void){ TMOD |= 0x10; //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響 TH1=(65535 - 100)/256; //給定初值,這里使用定時器最大值從0開始計數一直到65535溢出 TL1=(65535 - 100)/256; EA=1; //總中斷打開 ET1=1; //定時器中斷打開 TR1=1; //定時器開關打開}/*------------------------------------------------ 主程序------------------------------------------------*/main(){ Init_Timer1(); while(1);}/*------------------------------------------------ 定時器中斷子程序------------------------------------------------*/void Timer1_isr(void) interrupt 3 using 1{ TH1=(65535 - 100)/256; TL1=(65535 - 100)/256; LED=~LED; //LED閃爍}
『伍』 基於單片機測方波電壓,頻率 c語言編程 經過AD 幫幫忙啊大家~~
這個應該不難呀。。
首先用ad測電壓是非常簡單的,就是直接處理數據。。
至於頻率,可能有點麻煩,如果電壓方波電壓足夠下或足夠大可以達到單片機的高低電平容限,那麼可以直接用方波觸發單片機的外部中斷,利用單片機的外部上升沿中斷。二次中斷的時間間隔就是方波周期。
如果方波幅度不能夠達到觸發中斷的電平,只能採用采樣法估算了。。當ad的值二次變化間即為一個周期。多采幾次。。
希望能幫到你。。
『陸』 單片機怎樣連續產生一個不同頻率的方波,求C語言寫的
void delay (time)
{
for (;time>0;time--)
}
void main (void)
{
unsigned char i ;
while (1)
{
for (i=0; i<255; i++)
{
pin_out = 0 ;
delay(i) ;
pin_out = 1 ;
delay (i) ;
}
}
}
『柒』 C語言寫單片機產生頻率2kHz的方波時,TH0=0x06
根據系統的晶振給定時器賦不同的值,現在有專門的軟體填寫上你要的時間間隔,晶振多少,自己能算出定時器的值來。
『捌』 c語言測量方波頻率程序
頻率低的單片機中斷可以搞定,很高的話就用高級單片機比如說dsp stm32等,他們的捕獲模式很精確,而且可以測量很高的頻率。。
『玖』 怎樣用C語言編寫一個產生40KHz方波的程序
和所用的晶元也有一定的關系。因為晶元不同,定時器、I/O埠也不同。
『拾』 晶振頻率12mhz,編寫c語言程序使p2.0引腳產生300ms的方波
#include<reg51.h>
unsigned ms;
main()
{
TMOD=0x02;
ET0=1;
EA=1;
TH0=TL0=6;
TR0=1;
while(1);
}
void T0() interrupt 1
{
if(++ms==600){ms=0;P2_0=~P2_0;}
}
以上按占空比50%計算。使用T0中斷,計數值250次產生中斷,中斷一次250微秒,600次150毫秒,每隔150毫秒P2.0輸出相反的電平,即得到方波