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

📄 main.c

📁 此源程序是一个基于61单片机开发的一个时钟定时小程序
💻 C
字号:
//===============================================================
//
//        The information contained herein is the exclusive property of
//      Sunplus Technology Co. And shall not be distributed, reproduced,
//      or disclosed in whole in part without prior written permission.
//
//            (C) COPYRIGHT 2001   SUNPLUS TECHNOLOGY CO.
//                           ALL RIGHTS RESERVED
//
//    The entire notice above must be reproduced on all authorized copies.
//
//==============================================================

//============================================================
//  工程名称:   Timer.spj
//  功能描述:    通过TimerA定时,使发光二极管以0.6秒为周期闪烁,即每0.3秒点亮或熄灭一次。          
//				参考外围接线:IOA0接发光二极管               
//  文件来源:   《61板傻瓜书》第八章
//  IDE环境:   SUNPLUS u'nSPTM  IDE 1.8.0(or later)
//
//  涉及的库:	(a) C-Lib:  (CMacro.lib);
//            	
//
//  组成文件:
//    			 main.c
//				 
//  日期:        2005-3-13
//===========================================================
#define P_TimerA_Data		(volatile unsigned int *)0x700A		//定义P_TimerA_Data指针,使其指向0x7000的地址单元
#define P_TimerA_Ctrl		(volatile unsigned int *)0x700B		//定义P_TimerA_Ctrl指针,使其指向0x7000的地址单元
#define P_IOA_Data			(volatile unsigned int *)0x7000		//定义P_IOA_Data指针,使其指向0x7000的地址单元
#define P_IOA_Dir			(volatile unsigned int *)0x7002		//定义P_IOA_Dir指针,使其指向0x7000的地址单元
#define P_IOA_Attrib		(volatile unsigned int *)0x7003		//定义P_IOA_Attrib指针,使其指向0x7000的地址单元
#define P_Watchdog_Clear 	(volatile unsigned int *)0x7012		//定义P_Watchdog_Clear指针,使其指向0x7000的地址单元

main()
{
	int LED_Flag=0;						//LED灯亮灭标志

	*P_IOA_Dir = 0x0001;				//设置IOA0为同相输出     
	*P_IOA_Attrib = 0x0001;

	*P_IOA_Data = 0x0000;				//LED初始状态为熄灭
	
	*P_TimerA_Ctrl = 0x0032;			//计数频率32768Hz
	*P_TimerA_Data = 0;					//计数器初值设为0    
	
	while(1)
	{
		if(*P_TimerA_Data>=9830)		//计数达到9830   
		{
			*P_TimerA_Data = 0;			//计数清 0   
			if(LED_Flag == 0)			//如果LED的状态是熄灭的
			{
				*P_IOA_Data = 0x0001;	//点亮LED   
				LED_Flag = 1;			//改变状态标志
			}
			else						//如果LED的状态是点亮的
			{
				*P_IOA_Data = 0x0000;	//熄灭LED   
				LED_Flag = 0;			//改变状态标志
			}
		}
		*P_Watchdog_Clear = 0x0001;		//清看门狗
	}
}

⌨️ 快捷键说明

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