⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mc.c

📁 定时中断产生可调占空比方波脉冲,是用汇编语言编的
💻 C
字号:
//本程序利用定时中断T0产生固定频率为2KHz的脉冲方波信号,通过示波器进行观察//
//初始脉宽为高电平3ms,低电平2ms;//
//占空比可通过按键循环调整,步进宽度为0.1ms//

#include <AT89X52.H>
//=========================================================================//
bit GD=1;                      //定义翻转标志位//
unsigned int i;                //定义脉宽调整变量//
void chushi_T0(void);        
void ZengJia(void);          //函数声明//
void JianShao(void);        
//=========================================================================//
main()
 {
  i=3000;
  chushi_T0();           
  while(1) 
   {
   ZengJia();
   JianShao();
   }               
 }
//=========================================================================//
void chushi_T0(void)            //T0中断初始化子函数//
 {
  ET0=1;
  TF0=0;
  TMOD=(TMOD&0xF0)|0x01;         //T0模式设置为方式一,定时,不需外部控制,T1模式不变//
  TH0=(-i)>>8;
  TL0=(-i);
  TR0=1;
  EA=1;
 }
//=========================================================================//
void int_T0(void) interrupt 1          //T0中断子函数//
 {
  EA=0;
  TR0=0;
  GD=!GD;                        //每次中断溢出GD标志翻转//
  P1_1=GD;
  if(GD)                 
   {
    TH0=(-i)>>8;              //根据标志位不同给不同的初值//
	TL0=(-i);                 
   }                          //初始高电平宽度3ms// 
  else                        
   {
    TH0=(-(5000-i))>>8;       //初始低电平宽度2ms//
	TL0=(-(5000-i));
   }
  TR0=1;
  EA=1;
 }
//=========================================================================//
void ZengJia(void)            //高电平脉宽增加子函数//
 {
  if(P3_1==0)
   {
    while(P3_1==0);
    i=i+100;
   }
  if(i==5000)                //补充脉宽调整循环条件//
   i=100;
 }
//=========================================================================//
void JianShao(void)          //高电平脉宽减少子函数//
 {
  if(P3_5==0)
   {
    while(P3_5==0);
	 i=i-100;
   }
  if(i==0)                   //补充脉宽调整循环条件//      
   i=4900; 
 }
//=========================================================================//

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -