久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

用C8051F330實(shí)現(xiàn)鋸齒波的C程序

 liukai007 2009-05-29
用C8051F330實(shí)現(xiàn)鋸齒波的C程序(2006-08-25 10:33:36)
   鋸齒波:
 
#include <c8051f330.h>                  
#include <stdio.h>
//-----------------------------------------------------------------------------
// 定義16位寄存器
//-----------------------------------------------------------------------------
sfr16 DAC0     = 0x96;                 // 10位DAC寄存器地址
sfr16 TMR3RL   = 0xca;                 //  定時(shí)器3數(shù)據(jù)寄存器地址
sfr16 TMR3     = 0xCC;                 //  定時(shí)器3計(jì)數(shù)寄存器
//常量賦值
//-----------------------------------------------------------------------------
#define SYSCLK       49000000         
#define SAMPLE_RATE  50000 
// 定義函數(shù)
//------------------------------------------------------------------------------------
void SYSCLK_Init (void);
void PORT_Init (void);
void Timer3_Init (int counts);
void DAC0_Init(void);
void Timer3_ISR (void);
void DAC0_CNVS_DAC0h(void);
// 定義全局變量
//-----------------------------------------------------------------------------
long int i=0;                       
// 函數(shù)
//------------------------------------------------------------------------------------
void main (void)
 {
   PCA0MD &= ~0x40;                                //關(guān)閉看門狗  
   SYSCLK_Init ();                                 //系統(tǒng)時(shí)鐘初始化
   PORT_Init ();                                   //I/O口初始化   
 
   Timer3_Init (SYSCLK/SAMPLE_RATE);  //定時(shí)器3溢出作為DAC的轉(zhuǎn)換啟動(dòng)信號(hào)
   DAC0_Init();                                   
   EA=1;
   while(1)
         
          }
}
 // 端口初始化
//------------------------------------------------------------------------------------
void PORT_Init (void)
{
   P0SKIP  |= 0x41;             
   XBR1    = 0x40;               
}
//-----------------------------------------------------------------------------
// 系統(tǒng)時(shí)鐘初始化
//-----------------------------------------------------------------------------
void SYSCLK_Init (void)
{
   OSCICN |= 0x03;          //SYSCLK為內(nèi)部H-F振蕩器的頻率           
   RSTSRC  = 0x04;                    
}
//-----------------------------------------------------------------------------
// 定時(shí)器3初始化
//-----------------------------------------------------------------------------
void Timer3_Init (int counts)
  
   TMR3CN = 0x00;                                    
   CKCON |= 0x40;                    
   TMR3RL  = -counts;              
   TMR3    = TMR3RL;                 
   EIE1 |= 0x80;                     
   TMR3CN |= 0x04;       
}
// 數(shù)模轉(zhuǎn)換初始化
//-----------------------------------------------------------------------------
void DAC0_Init (void)
 {
   IDA0CN = 0xb2;       //設(shè)置為0x82,0x92,0xa2,0xb2時(shí)分別是用定時(shí)器0,1,,2,,3          
   REF0CN = 0x03;       //的溢出作為IDAC的更新輸出          
  }
// 外部觸發(fā)轉(zhuǎn)換程序
//-----------------------------------------------------------------------------
void DAC0_CNVS_DAC0h(void)

    IDA0H=i;                           
   i=i+16;
   if(i==0xffff)
   {
   i=0;}
}
 //-----------------------------------------------------------------------------
//  定時(shí)器3中斷
//-----------------------------------------------------------------------------
void Timer3_ISR (void) interrupt 14
  TMR3CN &= ~0x80;                             
   DAC0=i;
   i=i+16;
   if(i==0xfff)
   {
   i=0;}
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多