爆改直流电机,DA转换器
main.c
#include <REGX52.H>
#include "Delay.h"
#include "Timer0.h"sbit DA=P2^1;unsigned char Counter,Compare;
unsigned char i;void main()
{Timer0_Init();while(1){for(i=0;i<100;i++){Compare=i; Delay(10);}for(i=100;i>0;i--){Compare=i; Delay(10);}}
}void Timer0_Routine() interrupt 1
{TL0 = 0x9C; TH0 = 0xFF; Counter++;Counter%=100; if(Counter<Compare) {DA=1; }else {DA=0; }
}
Delay.c
void Delay(unsigned int xms)
{unsigned char i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}
Delay.h
#ifndef __DELAY_H__
#define __DELAY_H__void Delay(unsigned int xms);#endif
Timer0.c
#include <REGX52.H>
void Timer0_Init(void)
{TMOD &= 0xF0; TMOD |= 0x01; TL0 = 0x9C; TH0 = 0xFF; TF0 = 0; TR0 = 1; ET0=1;EA=1;PT0=0;
}
Timer0.h
#ifndef __TIMER0_H__
#define __TIMER0_H__void Timer0_Init(void);#endif