#include "c8051f020.h"
unsigned int xdata tab[200]={2048,2112,2176,2240,2304,2368,2431,2494,2557,2619,2680,2741,2801,2861,2919,2977,3034,3090,3145,3198,3251,3302,3353,3402,3449,3495,3540,3583,3625,3665,3704,3741,3776,3810,3842,3872,3900,3927,3951,3974,3995,4014,4031,4046,4059,4070,4079,4086,4091,4094,4095,4094,4091,4086,4079,4070,4059,4046,4031,4014,3995,3974,3951,3927,3900,3872,3842,3810,3776,3741,3704,3665,3625,3583,3540,3495,3449,3402,3353,3302,3251,3198,3145,3090,3034,2977,2919,2861,2801,2741,2680,2619,2557,2494,2431,2368,2304,2240,2176,2112,2048,1983,1919,1855,1791,1727,1664,1601,1538,1476,1415,1354,1294,1234,1176,1118,1061,1005,950,897,844,793,742,693,646,600,555,512,470,430,391,354,319,285,253,223,195,168,144,121,100,81,64,49,36,25,16,9,4,1,0,1,4,9,16,25,36,49,64,81,100,121,144,168,195,223,253,285,319,354,391,430,470,512,555,600,646,693,742,793,844,897,950,1005,1061,1118,1176,1234,1294,1354,1415,1476,1538,1601,1664,1727,1791,1855,1919,1983};
char xdata *j=tab;
int k=0;
void main(void)
{
int i;
WDTCN=0xde;
WDTCN=0xad;
OSCXCN = 0x67;
for (i = 0; i < 3000; i++); // Wait 1ms for initialization
while ((OSCXCN & 0x80) == 0);
OSCICN = 0x08; //系统时钟50MHZ
//定时器2设置 定时0.0000050S (2.5MS),400K中断
CKCON = 0x20;//timer2使用系统时钟,timer0使用系统时钟的12分频
T2CON = 0x04;
RCAP2L = 0x05;
RCAP2H = 0xff;
TL2 = 0x05;
TH2 = 0xff;
//timer0
TMOD=0x01;
TH0=0x00;
TL0=0x00;
TCON=0x10;
//DAC设置
DAC0CN =0x80;
DAC1CN =0x80;
REF0CN=0x03;
IE=0xA2;
while (1);
}
void Timer2_interrupt(void) interrupt 5
{
TF2=0;
DAC0H=*j;
j++;
DAC0L=*j;
j++;
k++;
if(k==200)
{j=tab; k=0;}
}
评论0