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

📄 led.c

📁 此程序用于测试8个发光二极管
💻 C
字号:

// 文件名:LEDTEST.c
//
// 目标器件: C8051F02x
//
// 编译工具: Silicon Laboratories IDE
//程序说明:
//  此程序用于测试8个发光二极管,正常情况下应轮流点亮.
//---------------------------------------------------------------------
// 头文件包含
//-------------------------------------------------------------------------
#include <c8051f020.h>                   

//-------------------------------------------------------------------------
// 16位特殊寄存器定义
//------------------------------------------------------------------------
sfr16 TMR3RL   = 0x92;            
sfr16 TMR3     = 0x94;                
//---------------------------------------------------------------------------
// 常量定义
//----------------------------------------------------------------------
#define SYSCLK 2000000                     //系统工作频率
//---------------------------------------------------------------------
//全局变量定义
//-----------------------------------------------------------------------------
 unsigned char i=0xfe;
//---------------------------------------------------------------------------
// 函数定义
//---------------------------------------------------------------------------
void PORT_Init (void);
void Timer3_Init (int counts);
void Timer3_ISR (void);

//---------------------------------------------------------------------------
// 主程序
//----------------------------------------------------------------------------
void main (void) {

   WDTCN = 0xde;
   WDTCN = 0xad;   //禁止看门狗定时器
	
   PORT_Init ();
   Timer3_Init(SYSCLK * 1024 );                                       
   REF0CN=0x02;
   EA = 1;			
   while (1) {                          
   }
}
//-------------------------------------------------------------------------
//函数名称:      PORT_Init ()
//函数功能:      通用I/O口及交叉开关初始化
//入口参数:      无
//出口参数:      无
//全局变量引用:  无
//调用模块:      无
//----------------------------------------------------------------------
void PORT_Init (void)
{
   XBR2    = 0x40;				/*使能交叉开关*/
   P74OUT |= 0x000;             /*推挽输出*/
}
//--------------------------------------------------------------------
//函数名称:      Timer3_Init ()
//函数功能:      定时器3初始化
//入口参数:      int counts
//出口参数:      无
//全局变量引用:  无
//调用模块:      无
//----------------------------------------------------------------------
void Timer3_Init (int counts)
{
   TMR3CN = 0x00;                                            
   TMR3RL  = -counts;         
   TMR3    = 0xffff;            
   EIE2   |= 0x01;                 
   TMR3CN |= 0x04;                    
}
//-------------------------------------------------------------------
//函数名称:     Timer3_ISR ()
//函数功能:      定时器3中断服务程序
//入口参数:      无
//出口参数:      无
//全局变量引用:  无
//调用模块:      无
//-------------------------------------------------------------------
void Timer3_ISR (void) interrupt 14
{
   TMR3CN &= ~(0x80);		/*清中断标志*/
   P4=i;					/*送数据到P4*/
   i<<=1;
   i = i | 0x01;    
   if(i==0xff)
     i=0xfe;
}

⌨️ 快捷键说明

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