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

📄 main.c

📁 凌阳单片机实现时钟并语音报时的源代码 很有趣 当毕业设计不错
💻 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.
//
//=================================================================
//  工程名称: Clock_Time.spj  
//  功能描述: (1)上电时,时、分、秒显示为00时、00分、00秒。
//			  (2)控制按扭,时钟以秒为单位开始计时。
//			  (3)运行状态下,按动控制按扭,时钟暂停,停止在已计时状态,显示已计时数值。
//			  (4)停状态下,按动控制按扭,时钟复位(清零),并进入下一次计时准备状态。 
//        		 
//  文件来源: 课程设计《单片机实现时钟计时功能》
//  IDE环境:  SUNPLUS u'nSPTM  IDE 1.8.4(or later)
//  硬件连接: SPCE061A  ----  LED
//			  -------------------------------
//			   PB0-PB6   ----  A-G 
//             PB8-PB15  ----  COM1-COM6
//			  -------------------------------
// 功能描述:
//				KEY1		时间加的功能
//			 -------------------------------------------------
//				KEY2 		按下开始计时
//							再按下停止
//							再按下清为0
//							第二功能在KEY3选择后做时间减的功能
//			 ------------------------------------------------
//				KEY3		第一下做分钟的设定
//							第二下做小时的设定
//							确定功能
//  涉及的库: C-Lib:  (CMacro.lib);
//            	
//  组成文件:
//				main.c
//    			hardware.asm\hardware.h
//				isr.asm
//          	time.c
//				key.asm\key.inc
//          	key_down.c
//  日期:   2004/1/14      											
//===============================================================
#include "hardware.h"
#include "a2000.h"
#include "Clock_Time.h"

//======================== 全局变量定义 =========================
int gActivated;							// 该变量用于检测是否有触发命令,当有识别出语句		                    						
int G_TimeCount;						// 1秒计数		
int G_SecTime;							// 2毫秒计数							

int G_KeyCount;							// key2按键次数
int G_KeyCount1;						// key1按键次数
int G_KeyCount2;						// key2闹铃按键次数
int G_KeyCount3;						// key3按键次数

int G_Sec ;                           	// 秒计数
int G_SecH ;							// 秒显示的高位
int G_SecL ;							// 秒显示的低位
int G_Step ;							// 程序运行的步骤
int G_MiunteH ;							// 分钟显示高位
int G_MiunteL;							// 分钟显示低位
int G_Miunte ;							// 分钟计数
int G_HourH ;							// 小时显示高位
int G_HourL ;							// 小时显示低位
int G_Hour ;							// 小时计数

int G_Destine_MiunteH ;					// 闹钟分钟设定的高位
int G_Destine_MiunteL ;					// 闹钟分钟设置的低位
int G_Destine_Miunte ;					// 闹钟分钟的设置
int G_Destine_Hour ;					// 闹钟小时的设置
int G_Destine_HourH ;					// 闹钟小时设置高位
int G_Destine_HourL ;					// 闹钟小时设置低位

int G_Key_Vaule;						// 键值
//=============================================================================================== 
// 函数:main()
// 语法:int main()
// 描述:主函数
// 参数:无
// 返回:无
//============================================================================================
main()
{	
	int I_Key,I_Step,KK;
		
 	G_KeyCount = 0;							// 各参数初始化
 	G_KeyCount3 = 0;
 	G_KeyCount2 = 0;			
 	G_Key_Vaule = 0;
	G_Step = 5;
	I_Step = 0;
 	G_Sec = 1;                           	// 秒计数
 	G_SecH = 0;							 	// 秒显示的高位
	G_SecL = 0;								// 秒显示的低位
	G_Step = 5;								// 程序运行的步骤
 	G_MiunteH = 0;							// 分钟显示高位
 	G_MiunteL = 0;							// 分钟显示低位
	G_Miunte = 0;							// 分钟计数
	G_HourH = 0;							// 小时显示高位
	G_HourL = 0;							// 小时显示低位
	G_Hour = 0;								// 小时计数
	
	G_Destine_MiunteH = 0;
	G_Destine_MiunteL = 0;
	G_Destine_Miunte = 0;
	G_Destine_Hour = 0;
	G_Destine_HourH = 0;
	G_Destine_HourL = 0;
	
	Clear_WatchDog();
	SP_Init_IOA(0x0000,0x0000,0x0000);			// 带下拉电阻的输入口
	SP_Init_IOB(0xffff,0x0000,0xffff);          // 带数据缓存器的高电平输出	初始化A口为输出口 	
	SP_Export(Port_IOB_Data ,0x7f3f);			// 显示全0
	SP_INT_TIMEA(); 							// 初始化中断为1ms定时中断源 
	
	G_TimeCount = 0;	
	G_SecTime = 0;	
	
	while(1)
	{
		Key_Down();									// 	判断是否有键按下						
		switch (G_Key_Vaule)
		{
			case 1:						
				break;								// 便于程序的添加
			case 2:									
				G_TimeCount = 0;	
				G_SecTime = 0;																	
				Key_Down();							// 是否有键按下
				Key2_Vaule();						// 计时功能							
				break;
			case 3:
				SP_Export(Port_IOB_Data ,0x7f3f);	// 显示全0
				Key_Down();		
				Alarm_Clock();						// 预约定时闹铃的功能
				break;
			default:
				break;	 			
		}
	}
}
		
	

⌨️ 快捷键说明

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