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

📄 c8051f33xhighspeed.c

📁 一些C8051f330的C程序
💻 C
字号:
//-----------------------------------------------------------------------------
//
// 文件名:highspeed.c
//
// 编写人:宁太阳 
//
// 编写时间:2005/01/06
//
// 目标器件: C8051F33x
//
// 编译工具: Silicon Laboratories IDE
//
//------------------------------------------------------------------------------------
//
//程序描述
//-----------------------------------------------------------------------------
//    这个程序可以实现PCA的高速输出功能,P0.0为系统时钟输出,用示波器可以在P0.1
//引脚上观察到“高速输出”的波形。
//
//-----------------------------------------------------------------------------
//头文件包含
//-----------------------------------------------------------------------------
#include <c8051f330.h>                   
//
//-----------------------------------------------------------------------------
//  定义定时器2的16位特殊功能寄存器
//-----------------------------------------------------------------------------
//
sfr16 TMR2RL   = 0xca;                    
sfr16 TMR2     = 0xcc;            
//
//-----------------------------------------------------------------------------
// 常量定义
//-----------------------------------------------------------------------------
#define SYSCLK       24500000 / 8         //  系统工作频率 
//
//-----------------------------------------------------------------------------
// 位定义
//-----------------------------------------------------------------------------
sbit LED = P1^3;                          // LED所接的引脚                 
//
//-----------------------------------------------------------------------------
// 定义函数
//-----------------------------------------------------------------------------
void SYSCLK_Init (void);
void PORT_Init (void);
void PCA_Init(void);
void PCA0_ISR(void);
//
//-----------------------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------------------
void main (void) {

   PCA0MD &= ~0x40;                 //禁止看门狗定时器                    
                                  

   SYSCLK_Init ();                  //系统时钟初始化                  
                                       
   PORT_Init ();                    //交叉开关和通用I/O口初始化    
   PCA_Init();                      //PCA初始化                                   

   EA = 1;	                        // 总中断使能						   

while (1)
 {                          
 }

}

//-----------------------------------------------------------------------------
// 系统时钟初始化
//-----------------------------------------------------------------------------

void SYSCLK_Init (void)
{

   OSCICN = 0x80;                  // 系统时钟初始化为片内的 24.5MHz / 8                    
                                        
   RSTSRC = 0x04;                  // 使能时钟丢失检测器                    
}

//-----------------------------------------------------------------------------
// I/O口及交叉开关初始化
//-----------------------------------------------------------------------------

void PORT_Init (void)
{

   XBR0     = 0x08;              //系统时钟输出             
   XBR1     = 0x43;              //交叉开关使能,PCA的CEX0、CEX1、CEX2分配到引脚上     
   P0MDIN   = 0xFF;
   P0MDOUT  = 0x03;               //P0.0、P0.1设为推挽方式                  
}

//-------------------------------------------------------------------------------
// PCA 初始化
//---------------------------------------------------------------------------   
void PCA_Init(void)
{
   PCA0CN  = 0x40;               //使能PCA计数/定时器 
   PCA0MD  = 0x02;               //选择PCA的时钟源,0x00、0x02、0x08分别为系统时钟的12、4、及      
   PCA0CPM0 =0x6d;//8f;          //不分频 
   PCA0L    =0x00;               //PCA计数/定时寄存器低字节
   PCA0H    = 0x00;               //PCA计数/定时寄存器高字节
   PCA0CPL0 = 0x50;              //PCA捕捉比较寄存器低字节         
   PCA0CPH0 = 0x20;              //PCA捕捉比较寄存器高字节  
   EIE1 |= 0x10;                 //	使能PCA中断
}

//----------------------------------------------------------------
//PCA 中断处理
//----------------------------------------------------------------
 void PCA0_ISR(void) interrupt  11          
   {
    CCF0  =0;            //PCA模块0捕捉/比较标志位清0      
   }

⌨️ 快捷键说明

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