當前位置:編程學習大全網 - 編程軟體 - 8052單片機 用C語言編程 由P0.2輸出脈沖寬度1μs,信號周期4μs的脈沖序列,占空比為0.25

8052單片機 用C語言編程 由P0.2輸出脈沖寬度1μs,信號周期4μs的脈沖序列,占空比為0.25

用這個改改占空比可調 把參數改下就行

/*

占空比可調方波 晶振為12MHz:

P2^7和P2^6;接2個按鈕,

P2^7控制頻率10HZ到50HZ,按壓改變

P2^6控制占比10%到90%,按壓改變

*/

#include<reg52.h>

#define uint unsigned int

#define uchar unsigned char

typedef int int16;

typedef char int8;

typedef unsigned int uint16;

typedef unsigned char uint8;

uint16 t=0,f=100,w=50;

sbit OUT=P0^0; // 輸出端

sbit KF=P2^7; // 改變頻率按鈕

sbit KW=P2^6; // 改變占寬按鈕

void init()

{

TMOD=0x01;

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

ET0=1;

TR0=1;

EA=1;

}

void time0() interrupt 1

{

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

t++; //t為1ms

if(t>=f) t=0;

}

void main()

{

init();

while(1)

{

if(KF==0) //改變頻率

{

f=f-10;

if(f<=10) f=100;

while(KF==0);

w=f/10;

}

if(KW==0) //改變占比

{

w=w+f/10;

if(w>=f) w=f/10;

while(KW==0);

}

if(t<w) OUT=1; //單個周期

else OUT=0;

}

}

  • 上一篇:三壹485挖掘機空氣濾芯有油怎麽了
  • 下一篇:我初學java中的類和對象老是學不懂,根本弄不懂它們的概念
  • copyright 2024編程學習大全網