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

📄 main.c

📁 1 系统简介 与本文档配套的超声波测距模组为 V2.0 版本。 1.1 基本特性与参数指标 超声波传感器谐振频率:40KHz; 模组传感器工作电压:4.5V~9V 模组接口电压:4
💻 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 2004   SUNPLUS TECHNOLOGY CO.
//                           ALL RIGHTS RESERVED
//
//    The entire notice above must be reproduced on all authorized copies.
//
//==============================================================
//============================================================
//  工程名称:20HzOut.spj
//  作者: xinqiang  (email: xinqiang@sunnorth.com.cn)    
//  联系方式:010-62981668-2916
//  适应芯片: SPCE061A
//  实现功能: 超声波测距模组的应用范例程序,适合短距离测距使用
//
//  系统要求: PC with CPU 233MHz,128MB RAM,
//                      SUNPLUS u'nSP IDE 1.8.4(or later)
//
//   涉及的库:(a) sacmv26.lib
//             (b) 
//
// 组成文件:
//     main.c/IntDocument.c/Speech.c/UserFunction.c
//     DataOS_A.asm/hardware.asm/Key.asm 
//     hardware.h/hardware.inc
//
//  当前版本:  V1.4
//  日期:  2005-12-19
//  
//  参考文件:
//  维护记录:	V1.0 2004-7-24    
//				V1.2 2005-6-5
//				V1.3 2005-8-9
//--------------------------------------------------------------------------------------------------------
//  Version   YYYY-MM-DD-INDEX   Modified By         Description
//
//===============================================

//========================================================================================
//文件名称: main.c
//描述:  超声波测距Demo的主程序,本程序用于模配合模组中测距模式选择为短距测量时用
//		即J1 COMLINE跳线接在LOW     选择模组工作在短距测距模式下
//		IOB2--BACK_PLUS				IOB2口为外部中断输入口,检测回波脉冲
//		IOB4--PLUS_EN1				IOB4设为输出口,以控制模组发射40KHz方波
//
//		模组上J2跳线接上
//		J9 Power接口的跳线接在5V一端  
//========================================================================================
#define P_INT_Ctrl_New			(volatile unsigned int *)0x702d
#define P_Watchdog_Clear		(volatile unsigned int *)0x7012 

#define M_KEY_ENTER		  0x0001	//按键  进行一次测量

//for Key
extern void F_Key_Scan_Initial(void);
extern void F_Key_Scan_ServiceLoop(void);
extern unsigned int  SP_GetCh(void);
//......end
//for Measure
extern void InitMeasure(void);
extern unsigned int  BeginMeasure(void);
extern void ErrorOS(void);
//..end
extern void Speech_Result(unsigned int uiResult);

int main()
{	
	unsigned int uiKey_Data;
	unsigned int Back_Data;			//测量返回数值
	
	__asm("INT OFF");
	InitMeasure();					//测量初始化
	F_Key_Scan_Initial();			//键盘初始化
	uiKey_Data = 0;
	//主循环  等待中断	
	while(1)
	{
		uiKey_Data = SP_GetCh();	//获取键值,直接返回,无延时
		switch(uiKey_Data)			//扫键,根据按键值进入不同的操作
		{
			case M_KEY_ENTER: 
				Back_Data = BeginMeasure();
				if(Back_Data==0)		//返回值为零时则进入出错处理
				{
					ErrorOS();
				}
				else
				{						//测回正确数据,播报
					Speech_Result(Back_Data);
				}
				break;					//
			case 2: break;	
			case 3: break;
			default: break;
		}
		F_Key_Scan_ServiceLoop();		//后台扫键的循环服务程序
		*P_Watchdog_Clear = 0x0001;		//清看门狗
	}
}


⌨️ 快捷键说明

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