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

📄 main.c

📁 spce061单片机的一些程序!C语言和汇编语言都有
💻 C
字号:
//=====================================================================
//	The information contained herein is the exclusive property of
//	Sunnnorth Technology Co. And shall not be distributed, reproduced,
//	or disclosed in whole in part without prior written permission.
//	(C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO.
//	ALL RIGHTS RESERVED
//	The entire notice above must be reproduced on all authorized copies.
//======================================================================

//=========================================================================
//	工程名称:	ex2_Led_4Mul4_Key
//	功能描述:	《实验指导书》综合实验
//				数码管显示与4*4键盘
//	涉及的库:	CMacro1016.lib
//	组成文件:	main.c
//              isr.asm,Dig.asm,Key.asm
//              Dig.inc,SPCE061A.inc,Key.inc
//              Dig.h,SPCE061A.h,Key.h
//	硬件连接:	IOA口低8位连接1*8数码管的段选
//				IOB口IOB15 、IOB14、IOB13、IOB12、IOB2、IOB1、IOB0连接位选
//				IOA口高8位连接4*4键盘
//	维护记录:	2005-10-14	v1.0
//              
//===========================================================================

//========================================================
//	文件名称:	main.c
//	功能描述:	数码管显示
//	维护记录:	2005-10-14	v1.0
//========================================================

#include "SPCE061A.h"
#include "Dig.h"
#include "Key.h"

unsigned int g_Data[11] = {0x003f,0x0006,0x005b,0x004f,0x0066,0x006d,0x007d,0x0007,0x007f,0x006f};
						   //0,	     1,		2,		3,		4,	  5,	6,		7,		8,		9
//========================================================
//	语法格式:	int main(void)
//	实现功能:	数码管显示
//	参数:		无
//	返回值:	无
//========================================================
int main(void)
{   
	int Ent_Flag = 0;
	unsigned int uiKey;
	unsigned int uiData[6] = {1,0,0,0,0,1};
	uiData[0] = 0;
	uiData[5] = 0;
	Key_Init();
	DIG_Init();

	while(1)
	{	
		uiKey = Key_Get();
		switch(uiKey)
		{
			case KEY_0:                                           //数字“7”键按下
				if(Ent_Flag == 0)                                 //判断“ENT”键是否按下,即确认键是否按下?
				{
					uiData[0] = uiData[1];                        //显示数字左移一位
					uiData[1] = uiData[2];
					uiData[2] = uiData[3];
					uiData[3] = uiData[4];
					uiData[4] = uiData[5];
					uiData[5] = 7;                                //第六位数码管显示“7”
				}
				break;
			case KEY_1:                                           //数字“8”键按下
				if(Ent_Flag == 0)                                 //判断“ENT”键是否按下,即确认键是否按下?
				{
					uiData[0] = uiData[1];                        //显示数字左移一位
					uiData[1] = uiData[2];
					uiData[2] = uiData[3];
					uiData[3] = uiData[4];
					uiData[4] = uiData[5];
					uiData[5] = 8;                                //第六位数码管显示“8”
				}
				break; 
			case KEY_2:                                           //数字“9”键按下
				if(Ent_Flag == 0)                                 //判断“ENT”键是否按下,即确认键是否按下?
				{
					uiData[0] = uiData[1];                        //显示数字左移一位
					uiData[1] = uiData[2];
					uiData[2] = uiData[3];
					uiData[3] = uiData[4];
					uiData[4] = uiData[5];
					uiData[5] = 9;                                //第六位数码管显示“9”
				}
				break;
			case KEY_3:                                          //保留“F1”键
				break;
			case KEY_4:                                          //数字“4”键按下
				if(Ent_Flag == 0)                                //判断“ENT”键是否按下,即确认键是否按下?
				{
					uiData[0] = uiData[1];                       //显示数字左移一位
					uiData[1] = uiData[2];
					uiData[2] = uiData[3];
					uiData[3] = uiData[4];
					uiData[4] = uiData[5];
					uiData[5] = 4;                               //第六位数码管显示“4”
				}
				break;
			case KEY_5:                                          //数字“5”键按下
				if(Ent_Flag == 0)                                //判断“ENT”键是否按下,即确认键是否按下?
				{
					uiData[0] = uiData[1];                       //显示数字左移一位
					uiData[1] = uiData[2];
					uiData[2] = uiData[3];
					uiData[3] = uiData[4];
					uiData[4] = uiData[5];
					uiData[5] = 5;                               //第六位数码管显示“5”
				}			
				break;
			case KEY_6:	                                          //数字“6”键按下
				if(Ent_Flag == 0)                                 //判断“ENT”键是否按下,即确认键是否按下?
				{
					uiData[0] = uiData[1];                        //显示数字左移一位
					uiData[1] = uiData[2];
					uiData[2] = uiData[3];
					uiData[3] = uiData[4];
					uiData[4] = uiData[5];
					uiData[5] = 6;                                //第六位数码管显示“6”
				}
				break;
			case KEY_7:                                           //保留“F2”键按下
				break;
			case KEY_8:                                           //数字“1”键按下
				if(Ent_Flag == 0)                                 //判断“ENT”键是否按下,即确认键是否按下?
				{
					uiData[0] = uiData[1];                        //显示数字左移一位
					uiData[1] = uiData[2];
					uiData[2] = uiData[3];
					uiData[3] = uiData[4];
					uiData[4] = uiData[5];
					uiData[5] = 1;                                ////第六位数码管显示“1”
				}
				break;
			case KEY_9:                                           //数字“2”键按下
				if(Ent_Flag == 0)                                 //判断“ENT”键是否按下,即确认键是否按下?
				{
					uiData[0] = uiData[1];                        //显示数字左移一位
					uiData[1] = uiData[2];
					uiData[2] = uiData[3];
					uiData[3] = uiData[4];
					uiData[4] = uiData[5];
					uiData[5] = 2;                                //第六位数码管显示“2”
				}
				break;
			case KEY_A:                                           //数字“3”键按下
				if(Ent_Flag == 0)                                 //判断“ENT”键是否按下,即确认键是否按下?
				{
					uiData[0] = uiData[1];                        //显示数字左移一位
					uiData[1] = uiData[2];
					uiData[2] = uiData[3];
					uiData[3] = uiData[4];
					uiData[4] = uiData[5];
					uiData[5] = 3;                                //第六位数码管显示“3”
				}
				break;
			case KEY_B:                                           //保留“F3”键按下
			    break;
			case KEY_C:                                           //功能“DEL”键按下
				if(Ent_Flag == 0)                                 //判断“ENT”键是否按下,即确认键是否按下?
				{
					uiData[5] = uiData[4];                        //显示数字右移一位
					uiData[4] = uiData[3];
					uiData[3] = uiData[2];
					uiData[2] = uiData[1];
					uiData[1] = uiData[0];
					uiData[0] = 0;                                //第一位数码管显示“0”
				}
				break;
			case KEY_D:                                           //数字“0”键按下
				if(Ent_Flag == 0)                                 //判断“ENT”键是否按下,即确认键是否按下?
				{
					uiData[0] = uiData[1];                        //显示数字左移一位
					uiData[1] = uiData[2];
					uiData[2] = uiData[3];
					uiData[3] = uiData[4];
					uiData[4] = uiData[5];
					uiData[5] = 0;                                //第六位数码管显示“0”
				}
				break;
			case KEY_E:                                           //保留“F4”键按下
				break;
			case KEY_F:                                           //功能“ENT”键按下
				Ent_Flag = 1;
				break;
			default:
				break;
		}
		DIG_Set(1,g_Data[uiData[0]]);                              //第一位数码管显示
		DIG_Set(2,g_Data[uiData[1]]);                              //第二位数码管显示
		DIG_Set(3,g_Data[uiData[2]]);                              //第三位数码管显示
		DIG_Set(4,g_Data[uiData[3]]);                              //第四位数码管显示
		DIG_Set(5,g_Data[uiData[4]]);                              //第五位数码管显示
		DIG_Set(6,g_Data[uiData[5]]);                              //第六位数码管显示
		*P_Watchdog_Clear = 0x0001;                                //清看门狗
	}
}

⌨️ 快捷键说明

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